Lines Matching refs:data

120 	struct usbtmc_device_data *data = to_usbtmc_data(kref);  in usbtmc_delete()  local
122 usb_put_dev(data->usb_dev); in usbtmc_delete()
128 struct usbtmc_device_data *data; in usbtmc_open() local
137 data = usb_get_intfdata(intf); in usbtmc_open()
138 kref_get(&data->kref); in usbtmc_open()
141 filp->private_data = data; in usbtmc_open()
148 struct usbtmc_device_data *data = file->private_data; in usbtmc_release() local
150 kref_put(&data->kref, usbtmc_delete); in usbtmc_release()
154 static int usbtmc_ioctl_abort_bulk_in(struct usbtmc_device_data *data) in usbtmc_ioctl_abort_bulk_in() argument
164 dev = &data->intf->dev; in usbtmc_ioctl_abort_bulk_in()
169 rv = usb_control_msg(data->usb_dev, in usbtmc_ioctl_abort_bulk_in()
170 usb_rcvctrlpipe(data->usb_dev, 0), in usbtmc_ioctl_abort_bulk_in()
173 data->bTag_last_read, data->bulk_in, in usbtmc_ioctl_abort_bulk_in()
196 current_setting = data->intf->cur_altsetting; in usbtmc_ioctl_abort_bulk_in()
199 data->bulk_in) in usbtmc_ioctl_abort_bulk_in()
208 dev_dbg(&data->intf->dev, "wMaxPacketSize is %d\n", max_size); in usbtmc_ioctl_abort_bulk_in()
215 rv = usb_bulk_msg(data->usb_dev, in usbtmc_ioctl_abort_bulk_in()
216 usb_rcvbulkpipe(data->usb_dev, in usbtmc_ioctl_abort_bulk_in()
217 data->bulk_in), in usbtmc_ioctl_abort_bulk_in()
240 rv = usb_control_msg(data->usb_dev, in usbtmc_ioctl_abort_bulk_in()
241 usb_rcvctrlpipe(data->usb_dev, 0), in usbtmc_ioctl_abort_bulk_in()
244 0, data->bulk_in, buffer, 0x08, in usbtmc_ioctl_abort_bulk_in()
269 rv = usb_bulk_msg(data->usb_dev, in usbtmc_ioctl_abort_bulk_in()
270 usb_rcvbulkpipe(data->usb_dev, in usbtmc_ioctl_abort_bulk_in()
271 data->bulk_in), in usbtmc_ioctl_abort_bulk_in()
299 static int usbtmc_ioctl_abort_bulk_out(struct usbtmc_device_data *data) in usbtmc_ioctl_abort_bulk_out() argument
306 dev = &data->intf->dev; in usbtmc_ioctl_abort_bulk_out()
312 rv = usb_control_msg(data->usb_dev, in usbtmc_ioctl_abort_bulk_out()
313 usb_rcvctrlpipe(data->usb_dev, 0), in usbtmc_ioctl_abort_bulk_out()
316 data->bTag_last_write, data->bulk_out, in usbtmc_ioctl_abort_bulk_out()
336 rv = usb_control_msg(data->usb_dev, in usbtmc_ioctl_abort_bulk_out()
337 usb_rcvctrlpipe(data->usb_dev, 0), in usbtmc_ioctl_abort_bulk_out()
340 0, data->bulk_out, buffer, 0x08, in usbtmc_ioctl_abort_bulk_out()
361 rv = usb_clear_halt(data->usb_dev, in usbtmc_ioctl_abort_bulk_out()
362 usb_sndbulkpipe(data->usb_dev, data->bulk_out)); in usbtmc_ioctl_abort_bulk_out()
383 static int send_request_dev_dep_msg_in(struct usbtmc_device_data *data, size_t transfer_size) in send_request_dev_dep_msg_in() argument
396 buffer[1] = data->bTag; in send_request_dev_dep_msg_in()
397 buffer[2] = ~data->bTag; in send_request_dev_dep_msg_in()
403 buffer[8] = data->TermCharEnabled * 2; in send_request_dev_dep_msg_in()
405 buffer[9] = data->TermChar; in send_request_dev_dep_msg_in()
410 retval = usb_bulk_msg(data->usb_dev, in send_request_dev_dep_msg_in()
411 usb_sndbulkpipe(data->usb_dev, in send_request_dev_dep_msg_in()
412 data->bulk_out), in send_request_dev_dep_msg_in()
416 data->bTag_last_write = data->bTag; in send_request_dev_dep_msg_in()
419 data->bTag++; in send_request_dev_dep_msg_in()
420 if (!data->bTag) in send_request_dev_dep_msg_in()
421 data->bTag++; in send_request_dev_dep_msg_in()
425 dev_err(&data->intf->dev, "usb_bulk_msg in send_request_dev_dep_msg_in() returned %d\n", retval); in send_request_dev_dep_msg_in()
435 struct usbtmc_device_data *data; in usbtmc_read() local
446 data = filp->private_data; in usbtmc_read()
447 dev = &data->intf->dev; in usbtmc_read()
453 mutex_lock(&data->io_mutex); in usbtmc_read()
454 if (data->zombie) { in usbtmc_read()
459 if (data->rigol_quirk) { in usbtmc_read()
462 retval = send_request_dev_dep_msg_in(data, count); in usbtmc_read()
465 if (data->auto_abort) in usbtmc_read()
466 usbtmc_ioctl_abort_bulk_out(data); in usbtmc_read()
477 if (!data->rigol_quirk) { in usbtmc_read()
485 retval = send_request_dev_dep_msg_in(data, this_part); in usbtmc_read()
488 if (data->auto_abort) in usbtmc_read()
489 usbtmc_ioctl_abort_bulk_out(data); in usbtmc_read()
495 retval = usb_bulk_msg(data->usb_dev, in usbtmc_read()
496 usb_rcvbulkpipe(data->usb_dev, in usbtmc_read()
497 data->bulk_in), in usbtmc_read()
504 data->bTag_last_read = data->bTag; in usbtmc_read()
508 if (data->auto_abort) in usbtmc_read()
509 usbtmc_ioctl_abort_bulk_in(data); in usbtmc_read()
514 if ((done == 0) || !data->rigol_quirk) { in usbtmc_read()
518 if (data->auto_abort) in usbtmc_read()
519 usbtmc_ioctl_abort_bulk_in(data); in usbtmc_read()
525 if (data->auto_abort) in usbtmc_read()
526 usbtmc_ioctl_abort_bulk_in(data); in usbtmc_read()
530 if (buffer[1] != data->bTag_last_write) { in usbtmc_read()
531 dev_err(dev, "Device sent reply with wrong bTag: %u != %u\n", buffer[1], data->bTag_last_write); in usbtmc_read()
532 if (data->auto_abort) in usbtmc_read()
533 usbtmc_ioctl_abort_bulk_in(data); in usbtmc_read()
545 if (data->auto_abort) in usbtmc_read()
546 usbtmc_ioctl_abort_bulk_in(data); in usbtmc_read()
554 if (data->rigol_quirk) { in usbtmc_read()
611 mutex_unlock(&data->io_mutex); in usbtmc_read()
619 struct usbtmc_device_data *data; in usbtmc_write() local
628 data = filp->private_data; in usbtmc_write()
634 mutex_lock(&data->io_mutex); in usbtmc_write()
635 if (data->zombie) { in usbtmc_write()
654 buffer[1] = data->bTag; in usbtmc_write()
655 buffer[2] = ~data->bTag; in usbtmc_write()
675 retval = usb_bulk_msg(data->usb_dev, in usbtmc_write()
676 usb_sndbulkpipe(data->usb_dev, in usbtmc_write()
677 data->bulk_out), in usbtmc_write()
685 data->bTag_last_write = data->bTag; in usbtmc_write()
686 data->bTag++; in usbtmc_write()
688 if (!data->bTag) in usbtmc_write()
689 data->bTag++; in usbtmc_write()
692 dev_err(&data->intf->dev, in usbtmc_write()
694 if (data->auto_abort) in usbtmc_write()
695 usbtmc_ioctl_abort_bulk_out(data); in usbtmc_write()
705 mutex_unlock(&data->io_mutex); in usbtmc_write()
710 static int usbtmc_ioctl_clear(struct usbtmc_device_data *data) in usbtmc_ioctl_clear() argument
721 dev = &data->intf->dev; in usbtmc_ioctl_clear()
729 rv = usb_control_msg(data->usb_dev, in usbtmc_ioctl_clear()
730 usb_rcvctrlpipe(data->usb_dev, 0), in usbtmc_ioctl_clear()
748 current_setting = data->intf->cur_altsetting; in usbtmc_ioctl_clear()
751 if (desc->bEndpointAddress == data->bulk_in) in usbtmc_ioctl_clear()
769 rv = usb_control_msg(data->usb_dev, in usbtmc_ioctl_clear()
770 usb_rcvctrlpipe(data->usb_dev, 0), in usbtmc_ioctl_clear()
794 rv = usb_bulk_msg(data->usb_dev, in usbtmc_ioctl_clear()
795 usb_rcvbulkpipe(data->usb_dev, in usbtmc_ioctl_clear()
796 data->bulk_in), in usbtmc_ioctl_clear()
820 rv = usb_clear_halt(data->usb_dev, in usbtmc_ioctl_clear()
821 usb_sndbulkpipe(data->usb_dev, data->bulk_out)); in usbtmc_ioctl_clear()
833 static int usbtmc_ioctl_clear_out_halt(struct usbtmc_device_data *data) in usbtmc_ioctl_clear_out_halt() argument
837 rv = usb_clear_halt(data->usb_dev, in usbtmc_ioctl_clear_out_halt()
838 usb_sndbulkpipe(data->usb_dev, data->bulk_out)); in usbtmc_ioctl_clear_out_halt()
841 dev_err(&data->usb_dev->dev, "usb_control_msg returned %d\n", in usbtmc_ioctl_clear_out_halt()
848 static int usbtmc_ioctl_clear_in_halt(struct usbtmc_device_data *data) in usbtmc_ioctl_clear_in_halt() argument
852 rv = usb_clear_halt(data->usb_dev, in usbtmc_ioctl_clear_in_halt()
853 usb_rcvbulkpipe(data->usb_dev, data->bulk_in)); in usbtmc_ioctl_clear_in_halt()
856 dev_err(&data->usb_dev->dev, "usb_control_msg returned %d\n", in usbtmc_ioctl_clear_in_halt()
863 static int get_capabilities(struct usbtmc_device_data *data) in get_capabilities() argument
865 struct device *dev = &data->usb_dev->dev; in get_capabilities()
873 rv = usb_control_msg(data->usb_dev, usb_rcvctrlpipe(data->usb_dev, 0), in get_capabilities()
893 data->capabilities.interface_capabilities = buffer[4]; in get_capabilities()
894 data->capabilities.device_capabilities = buffer[5]; in get_capabilities()
895 data->capabilities.usb488_interface_capabilities = buffer[14]; in get_capabilities()
896 data->capabilities.usb488_device_capabilities = buffer[15]; in get_capabilities()
909 struct usbtmc_device_data *data = usb_get_intfdata(intf); \
911 return sprintf(buf, "%d\n", data->capabilities.name); \
936 struct usbtmc_device_data *data = usb_get_intfdata(intf); in TermChar_show() local
938 return sprintf(buf, "%c\n", data->TermChar); in TermChar_show()
946 struct usbtmc_device_data *data = usb_get_intfdata(intf); in TermChar_store() local
950 data->TermChar = buf[0]; in TermChar_store()
960 struct usbtmc_device_data *data = usb_get_intfdata(intf); \
962 return sprintf(buf, "%d\n", data->name); \
969 struct usbtmc_device_data *data = usb_get_intfdata(intf); \
976 data->name = val; \
998 static int usbtmc_ioctl_indicator_pulse(struct usbtmc_device_data *data) in usbtmc_ioctl_indicator_pulse() argument
1004 dev = &data->intf->dev; in usbtmc_ioctl_indicator_pulse()
1010 rv = usb_control_msg(data->usb_dev, in usbtmc_ioctl_indicator_pulse()
1011 usb_rcvctrlpipe(data->usb_dev, 0), in usbtmc_ioctl_indicator_pulse()
1037 struct usbtmc_device_data *data; in usbtmc_ioctl() local
1040 data = file->private_data; in usbtmc_ioctl()
1041 mutex_lock(&data->io_mutex); in usbtmc_ioctl()
1042 if (data->zombie) { in usbtmc_ioctl()
1049 retval = usbtmc_ioctl_clear_out_halt(data); in usbtmc_ioctl()
1053 retval = usbtmc_ioctl_clear_in_halt(data); in usbtmc_ioctl()
1057 retval = usbtmc_ioctl_indicator_pulse(data); in usbtmc_ioctl()
1061 retval = usbtmc_ioctl_clear(data); in usbtmc_ioctl()
1065 retval = usbtmc_ioctl_abort_bulk_out(data); in usbtmc_ioctl()
1069 retval = usbtmc_ioctl_abort_bulk_in(data); in usbtmc_ioctl()
1074 mutex_unlock(&data->io_mutex); in usbtmc_ioctl()
1098 struct usbtmc_device_data *data; in usbtmc_probe() local
1106 data = devm_kzalloc(&intf->dev, sizeof(*data), GFP_KERNEL); in usbtmc_probe()
1107 if (!data) in usbtmc_probe()
1110 data->intf = intf; in usbtmc_probe()
1111 data->id = id; in usbtmc_probe()
1112 data->usb_dev = usb_get_dev(interface_to_usbdev(intf)); in usbtmc_probe()
1113 usb_set_intfdata(intf, data); in usbtmc_probe()
1114 kref_init(&data->kref); in usbtmc_probe()
1115 mutex_init(&data->io_mutex); in usbtmc_probe()
1116 data->zombie = 0; in usbtmc_probe()
1119 data->rigol_quirk = 0; in usbtmc_probe()
1121 le16_to_cpu(data->usb_dev->descriptor.idVendor), in usbtmc_probe()
1122 le16_to_cpu(data->usb_dev->descriptor.idProduct)); in usbtmc_probe()
1124 if ((usbtmc_id_quirk[n].idVendor == le16_to_cpu(data->usb_dev->descriptor.idVendor)) && in usbtmc_probe()
1125 (usbtmc_id_quirk[n].idProduct == le16_to_cpu(data->usb_dev->descriptor.idProduct))) { in usbtmc_probe()
1127 data->rigol_quirk = 1; in usbtmc_probe()
1133 data->bTag = 1; in usbtmc_probe()
1134 data->TermCharEnabled = 0; in usbtmc_probe()
1135 data->TermChar = '\n'; in usbtmc_probe()
1138 iface_desc = data->intf->cur_altsetting; in usbtmc_probe()
1145 data->bulk_in = endpoint->bEndpointAddress; in usbtmc_probe()
1147 data->bulk_in); in usbtmc_probe()
1157 data->bulk_out = endpoint->bEndpointAddress; in usbtmc_probe()
1159 data->bulk_out); in usbtmc_probe()
1164 retcode = get_capabilities(data); in usbtmc_probe()
1187 kref_put(&data->kref, usbtmc_delete); in usbtmc_probe()
1193 struct usbtmc_device_data *data; in usbtmc_disconnect() local
1197 data = usb_get_intfdata(intf); in usbtmc_disconnect()
1201 mutex_lock(&data->io_mutex); in usbtmc_disconnect()
1202 data->zombie = 1; in usbtmc_disconnect()
1203 mutex_unlock(&data->io_mutex); in usbtmc_disconnect()
1204 kref_put(&data->kref, usbtmc_delete); in usbtmc_disconnect()