uint8_t sample_delay_l;
};
-struct dslogic_fpga_config {
+struct fpga_config {
uint32_t sync;
uint16_t mode_header;
* Get the session trigger and configure the FPGA structure
* accordingly.
*/
-static void set_trigger(const struct sr_dev_inst *sdi,
- struct dslogic_fpga_config *cfg)
+static void set_trigger(const struct sr_dev_inst *sdi, struct fpga_config *cfg)
{
struct sr_trigger *trigger;
struct sr_trigger_stage *stage;
cfg->ch_en = enabled_channel_mask(sdi);
- cfg->trig_mask0[0] = 0xffff;
- cfg->trig_mask1[0] = 0xffff;
-
- cfg->trig_value0[0] = 0;
- cfg->trig_value1[0] = 0;
-
- cfg->trig_edge0[0] = 0;
- cfg->trig_edge1[0] = 0;
-
- cfg->trig_logic0[0] = 2;
- cfg->trig_logic1[0] = 2;
-
- cfg->trig_count[0] = 0;
-
- cfg->trig_glb = num_enabled_channels << 4;
-
- for (i = 1; i < NUM_TRIGGER_STAGES; i++) {
+ for (i = 0; i < NUM_TRIGGER_STAGES; i++) {
cfg->trig_mask0[i] = 0xffff;
cfg->trig_mask1[i] = 0xffff;
cfg->trig_value0[i] = 0;
}
}
- cfg->trig_glb |= num_trigger_stages;
+ cfg->trig_glb = (num_enabled_channels << 4) | (num_trigger_stages - 1);
}
static int fpga_configure(const struct sr_dev_inst *sdi)
struct dev_context *devc;
struct sr_usb_dev_inst *usb;
uint8_t c[3];
- struct dslogic_fpga_config cfg;
+ struct fpga_config cfg;
uint16_t v16;
uint32_t v32;
int transferred, len, ret;
WL32(&cfg.end_sync, DS_CFG_END);
/* Pass in the length of a fixed-size struct. Really. */
- len = sizeof(struct dslogic_fpga_config) / 2;
+ len = sizeof(struct fpga_config) / 2;
c[0] = len & 0xff;
c[1] = (len >> 8) & 0xff;
c[2] = (len >> 16) & 0xff;
set_trigger(sdi, &cfg);
- len = sizeof(struct dslogic_fpga_config);
+ len = sizeof(struct fpga_config);
ret = libusb_bulk_transfer(usb->devhdl, 2 | LIBUSB_ENDPOINT_OUT,
(unsigned char *)&cfg, len, &transferred, USB_TIMEOUT);
if (ret < 0 || transferred != len) {