X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=hardware%2Fikalogic-scanalogic2%2Fprotocol.c;h=87218de57eb09d5f057b673f9f142f988fb477ff;hb=6c60facc190a03c50aa66d4b1d17c825fec5d20e;hp=75c78aca24c45b0ca611a58d2d396c7fc9ba4273;hpb=79914b3a62adb1b0b054d23c2721ce80eb7ba9ea;p=libsigrok.git diff --git a/hardware/ikalogic-scanalogic2/protocol.c b/hardware/ikalogic-scanalogic2/protocol.c index 75c78aca..87218de5 100644 --- a/hardware/ikalogic-scanalogic2/protocol.c +++ b/hardware/ikalogic-scanalogic2/protocol.c @@ -26,17 +26,14 @@ extern uint64_t sl2_samplerates[NUM_SAMPLERATES]; static void stop_acquisition(struct sr_dev_inst *sdi) { + struct drv_context *drvc = sdi->driver->priv; struct dev_context *devc; struct sr_datafeed_packet packet; - unsigned int i; devc = sdi->priv; /* Remove USB file descriptors from polling. */ - for (i = 0; i < devc->num_usbfd; i++) - sr_source_remove(devc->usbfd[i]); - - g_free(devc->usbfd); + usb_source_remove(drvc->sr_ctx); packet.type = SR_DF_END; sr_session_send(devc->cb_data, &packet); @@ -46,17 +43,14 @@ static void stop_acquisition(struct sr_dev_inst *sdi) static void abort_acquisition(struct sr_dev_inst *sdi) { + struct drv_context *drvc = sdi->driver->priv; struct dev_context *devc; struct sr_datafeed_packet packet; - unsigned int i; devc = sdi->priv; /* Remove USB file descriptors from polling. */ - for (i = 0; i < devc->num_usbfd; i++) - sr_source_remove(devc->usbfd[i]); - - g_free(devc->usbfd); + usb_source_remove(drvc->sr_ctx); packet.type = SR_DF_END; sr_session_send(devc->cb_data, &packet); @@ -127,8 +121,8 @@ static void process_sample_data(const struct sr_dev_inst *sdi) /* * Adjust the position of the first sample to be * processed because possibly more samples than - * necessary might have been aquired. This is because - * the number of aquired samples is always rounded up + * necessary might have been acquired. This is because + * the number of acquired samples is always rounded up * to a multiple of 8. */ k = k - (devc->pre_trigger_bytes * 8) + @@ -292,7 +286,9 @@ SR_PRIV void sl2_receive_transfer_in( struct libusb_transfer *transfer) return; } - sr_spew("State changed from %i to %i.", devc->state, devc->next_state); + if (devc->state != devc->next_state) + sr_spew("State changed from %i to %i.", + devc->state, devc->next_state); devc->state = devc->next_state; if (devc->state == STATE_WAIT_DATA_READY) { @@ -421,7 +417,9 @@ SR_PRIV void sl2_receive_transfer_out( struct libusb_transfer *transfer) return; } - sr_spew("State changed from %i to %i.", devc->state, devc->next_state); + if (devc->state != devc->next_state) + sr_spew("State changed from %i to %i.", + devc->state, devc->next_state); devc->state = devc->next_state; if (devc->state == STATE_IDLE) { @@ -655,7 +653,7 @@ SR_PRIV int sl2_get_device_info(struct sr_usb_dev_inst usb, USB_INTERFACE); if (ret < 0) { - sr_err("Failed to detach kernel driver: %i.", + sr_err("Failed to detach kernel driver: %s.", libusb_error_name(ret)); libusb_close(usb.devhdl); return SR_ERR; @@ -734,7 +732,7 @@ SR_PRIV int sl2_get_device_info(struct sr_usb_dev_inst usb, ret = libusb_release_interface(usb.devhdl, USB_INTERFACE); if (ret < 0) { - sr_err("Failed to release interface: %i.", + sr_err("Failed to release interface: %s.", libusb_error_name(ret)); libusb_close(usb.devhdl); return SR_ERR; @@ -748,7 +746,7 @@ SR_PRIV int sl2_get_device_info(struct sr_usb_dev_inst usb, SR_PRIV int sl2_transfer_in(libusb_device_handle *dev_handle, uint8_t *data) { return libusb_control_transfer(dev_handle, USB_REQUEST_TYPE_IN, - USB_HID_SET_REPORT, USB_HID_REPORT_TYPE_FEATURE, USB_INTERFACE, + USB_HID_GET_REPORT, USB_HID_REPORT_TYPE_FEATURE, USB_INTERFACE, (unsigned char *)data, PACKET_LENGTH, USB_TIMEOUT); }