X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Fsaleae-logic16%2Fprotocol.c;h=9e5806e0ae4c89c620121e158b345753d38022dd;hb=c36f78f7728e8b5263bed440530a61caa6e30a26;hp=ac0316d4bd2bb86118a76e6b4951fccc09b59137;hpb=fe5a735553470fe372ff1c12eb55398bd0f098b8;p=libsigrok.git diff --git a/src/hardware/saleae-logic16/protocol.c b/src/hardware/saleae-logic16/protocol.c index ac0316d4..9e5806e0 100644 --- a/src/hardware/saleae-logic16/protocol.c +++ b/src/hardware/saleae-logic16/protocol.c @@ -470,8 +470,8 @@ SR_PRIV int logic16_setup_acquisition(const struct sr_dev_inst *sdi, reg1 &= ~0x20; if (devc->fpga_variant == FPGA_VARIANT_ORIGINAL && reg1 != 0x08) { - sr_dbg("Invalid state at acquisition setup: 0x%02x != 0x08.", reg1); - return SR_ERR; + sr_dbg("Invalid state at acquisition setup register 1: 0x%02x != 0x08. " + "Proceeding anyway.", reg1); } if ((ret = write_fpga_register(sdi, 1, 0x40)) != SR_OK) @@ -499,7 +499,7 @@ SR_PRIV int logic16_setup_acquisition(const struct sr_dev_inst *sdi, return ret; if (devc->fpga_variant == FPGA_VARIANT_ORIGINAL && reg1 != 0x48) { - sr_dbg("Invalid state at acquisition setup: 0x%02x != 0x48. " + sr_dbg("Invalid state at acquisition setup register 1: 0x%02x != 0x48. " "Proceeding anyway.", reg1); } @@ -507,9 +507,8 @@ SR_PRIV int logic16_setup_acquisition(const struct sr_dev_inst *sdi, return ret; if (devc->fpga_variant == FPGA_VARIANT_ORIGINAL && reg10 != clock_select) { - sr_dbg("Invalid state at acquisition setup: 0x%02x != 0x%02x.", - reg10, clock_select); - return SR_ERR; + sr_dbg("Invalid state at acquisition setup register 10: 0x%02x != 0x%02x. " + "Proceeding anyway.", reg10, clock_select); } return SR_OK; @@ -713,6 +712,7 @@ SR_PRIV void logic16_receive_transfer(struct libusb_transfer *transfer) struct dev_context *devc; size_t new_samples, num_samples; int trigger_offset; + int pre_trigger_samples; sdi = transfer->user_data; devc = sdi->priv; @@ -726,8 +726,8 @@ SR_PRIV void logic16_receive_transfer(struct libusb_transfer *transfer) return; } - sr_info("receive_transfer(): status %d received %d bytes.", - transfer->status, transfer->actual_length); + sr_info("receive_transfer(): status %s received %d bytes.", + libusb_error_name(transfer->status), transfer->actual_length); switch (transfer->status) { case LIBUSB_TRANSFER_NO_DEVICE: @@ -785,8 +785,9 @@ SR_PRIV void logic16_receive_transfer(struct libusb_transfer *transfer) devc->sent_samples += new_samples; } else { trigger_offset = soft_trigger_logic_check(devc->stl, - devc->convbuffer, new_samples * 2, NULL); + devc->convbuffer, new_samples * 2, &pre_trigger_samples); if (trigger_offset > -1) { + devc->sent_samples += pre_trigger_samples; packet.type = SR_DF_LOGIC; packet.payload = &logic; num_samples = new_samples - trigger_offset;