]> sigrok.org Git - libsigrok.git/blobdiff - src/hardware/fx2lafw/api.c
dslogic: Implement trigger functionality
[libsigrok.git] / src / hardware / fx2lafw / api.c
index 6f6c53fb09c215b68e3f7370aa7c99d47c25e145..fe5ba9fe9b49ce49aefe6e632f0edb5c3c09d9d8 100644 (file)
@@ -181,11 +181,6 @@ static const uint64_t dslogic_samplerates[] = {
 
 SR_PRIV struct sr_dev_driver fx2lafw_driver_info;
 
-static int init(struct sr_dev_driver *di, struct sr_context *sr_ctx)
-{
-       return std_init(di, sr_ctx);
-}
-
 static GSList *scan(struct sr_dev_driver *di, GSList *options)
 {
        struct drv_context *drvc;
@@ -669,7 +664,7 @@ static int start_transfers(const struct sr_dev_inst *sdi)
        devc->acq_aborted = FALSE;
        devc->empty_transfer_count = 0;
 
-       if ((trigger = sr_session_trigger_get(sdi->session))) {
+       if ((trigger = sr_session_trigger_get(sdi->session)) && !devc->dslogic) {
                int pre_trigger_samples = 0;
                if (devc->limit_samples > 0)
                        pre_trigger_samples = devc->capture_ratio * devc->limit_samples/100;
@@ -746,11 +741,11 @@ static void LIBUSB_CALL dslogic_trigger_receive(struct libusb_transfer *transfer
        } else if (transfer->status == LIBUSB_TRANSFER_COMPLETED
                        && transfer->actual_length == sizeof(struct dslogic_trigger_pos)) {
                tpos = (struct dslogic_trigger_pos *)transfer->buffer;
-               sr_dbg("tpos real_pos %.8x ram_saddr %.8x", tpos->real_pos, tpos->ram_saddr);
+               sr_info("tpos real_pos %d ram_saddr %d", tpos->real_pos, tpos->ram_saddr);
+               devc->trigger_pos  = tpos->real_pos;
                g_free(tpos);
                start_transfers(sdi);
        }
-
        libusb_free_transfer(transfer);
 }
 
@@ -891,7 +886,7 @@ SR_PRIV struct sr_dev_driver fx2lafw_driver_info = {
        .name = "fx2lafw",
        .longname = "fx2lafw (generic driver for FX2 based LAs)",
        .api_version = 1,
-       .init = init,
+       .init = std_init,
        .cleanup = std_cleanup,
        .scan = scan,
        .dev_list = std_dev_list,