Lines Matching full:data

72 /* This structure holds private data for each USBTMC device. One copy is
105 struct usbtmc_device_data *data = to_usbtmc_data(kref); in usbtmc_delete() local
107 usb_put_dev(data->usb_dev); in usbtmc_delete()
108 kfree(data); in usbtmc_delete()
114 struct usbtmc_device_data *data; in usbtmc_open() local
125 data = usb_get_intfdata(intf); in usbtmc_open()
126 kref_get(&data->kref); in usbtmc_open()
128 /* Store pointer in file structure's private data field */ in usbtmc_open()
129 filp->private_data = data; in usbtmc_open()
137 struct usbtmc_device_data *data = file->private_data; in usbtmc_release() local
139 kref_put(&data->kref, usbtmc_delete); in usbtmc_release()
143 static int usbtmc_ioctl_abort_bulk_in(struct usbtmc_device_data *data) in usbtmc_ioctl_abort_bulk_in() argument
153 dev = &data->intf->dev; in usbtmc_ioctl_abort_bulk_in()
158 rv = usb_control_msg(data->usb_dev, in usbtmc_ioctl_abort_bulk_in()
159 usb_rcvctrlpipe(data->usb_dev, 0), in usbtmc_ioctl_abort_bulk_in()
162 data->bTag_last_read, data->bulk_in, in usbtmc_ioctl_abort_bulk_in()
185 current_setting = data->intf->cur_altsetting; in usbtmc_ioctl_abort_bulk_in()
188 data->bulk_in) in usbtmc_ioctl_abort_bulk_in()
197 dev_dbg(&data->intf->dev, "wMaxPacketSize is %d\n", max_size); in usbtmc_ioctl_abort_bulk_in()
204 rv = usb_bulk_msg(data->usb_dev, in usbtmc_ioctl_abort_bulk_in()
205 usb_rcvbulkpipe(data->usb_dev, in usbtmc_ioctl_abort_bulk_in()
206 data->bulk_in), in usbtmc_ioctl_abort_bulk_in()
229 rv = usb_control_msg(data->usb_dev, in usbtmc_ioctl_abort_bulk_in()
230 usb_rcvctrlpipe(data->usb_dev, 0), in usbtmc_ioctl_abort_bulk_in()
233 0, data->bulk_in, buffer, 0x08, in usbtmc_ioctl_abort_bulk_in()
258 rv = usb_bulk_msg(data->usb_dev, in usbtmc_ioctl_abort_bulk_in()
259 usb_rcvbulkpipe(data->usb_dev, in usbtmc_ioctl_abort_bulk_in()
260 data->bulk_in), in usbtmc_ioctl_abort_bulk_in()
288 static int usbtmc_ioctl_abort_bulk_out(struct usbtmc_device_data *data) in usbtmc_ioctl_abort_bulk_out() argument
295 dev = &data->intf->dev; in usbtmc_ioctl_abort_bulk_out()
301 rv = usb_control_msg(data->usb_dev, in usbtmc_ioctl_abort_bulk_out()
302 usb_rcvctrlpipe(data->usb_dev, 0), in usbtmc_ioctl_abort_bulk_out()
305 data->bTag_last_write, data->bulk_out, in usbtmc_ioctl_abort_bulk_out()
325 rv = usb_control_msg(data->usb_dev, in usbtmc_ioctl_abort_bulk_out()
326 usb_rcvctrlpipe(data->usb_dev, 0), in usbtmc_ioctl_abort_bulk_out()
329 0, data->bulk_out, buffer, 0x08, in usbtmc_ioctl_abort_bulk_out()
350 rv = usb_clear_halt(data->usb_dev, in usbtmc_ioctl_abort_bulk_out()
351 usb_sndbulkpipe(data->usb_dev, data->bulk_out)); in usbtmc_ioctl_abort_bulk_out()
367 struct usbtmc_device_data *data; in usbtmc_read() local
377 /* Get pointer to private data structure */ in usbtmc_read()
378 data = filp->private_data; in usbtmc_read()
379 dev = &data->intf->dev; in usbtmc_read()
385 mutex_lock(&data->io_mutex); in usbtmc_read()
386 if (data->zombie) { in usbtmc_read()
404 buffer[1] = data->bTag; in usbtmc_read()
405 buffer[2] = ~(data->bTag); in usbtmc_read()
411 buffer[8] = data->TermCharEnabled * 2; in usbtmc_read()
413 buffer[9] = data->TermChar; in usbtmc_read()
418 retval = usb_bulk_msg(data->usb_dev, in usbtmc_read()
419 usb_sndbulkpipe(data->usb_dev, in usbtmc_read()
420 data->bulk_out), in usbtmc_read()
424 data->bTag_last_write = data->bTag; in usbtmc_read()
427 data->bTag++; in usbtmc_read()
428 if (!data->bTag) in usbtmc_read()
429 (data->bTag)++; in usbtmc_read()
433 if (data->auto_abort) in usbtmc_read()
434 usbtmc_ioctl_abort_bulk_out(data); in usbtmc_read()
439 retval = usb_bulk_msg(data->usb_dev, in usbtmc_read()
440 usb_rcvbulkpipe(data->usb_dev, in usbtmc_read()
441 data->bulk_in), in usbtmc_read()
446 data->bTag_last_read = data->bTag; in usbtmc_read()
449 dev_err(dev, "Unable to read data, error %d\n", retval); in usbtmc_read()
450 if (data->auto_abort) in usbtmc_read()
451 usbtmc_ioctl_abort_bulk_in(data); in usbtmc_read()
473 /* Bound amount of data received by amount of data requested */ in usbtmc_read()
497 mutex_unlock(&data->io_mutex); in usbtmc_read()
505 struct usbtmc_device_data *data; in usbtmc_write() local
514 data = filp->private_data; in usbtmc_write()
520 mutex_lock(&data->io_mutex); in usbtmc_write()
521 if (data->zombie) { in usbtmc_write()
540 buffer[1] = data->bTag; in usbtmc_write()
541 buffer[2] = ~(data->bTag); in usbtmc_write()
561 retval = usb_bulk_msg(data->usb_dev, in usbtmc_write()
562 usb_sndbulkpipe(data->usb_dev, in usbtmc_write()
563 data->bulk_out), in usbtmc_write()
571 data->bTag_last_write = data->bTag; in usbtmc_write()
572 data->bTag++; in usbtmc_write()
574 if (!data->bTag) in usbtmc_write()
575 data->bTag++; in usbtmc_write()
578 dev_err(&data->intf->dev, in usbtmc_write()
579 "Unable to send data, error %d\n", retval); in usbtmc_write()
580 if (data->auto_abort) in usbtmc_write()
581 usbtmc_ioctl_abort_bulk_out(data); in usbtmc_write()
591 mutex_unlock(&data->io_mutex); in usbtmc_write()
596 static int usbtmc_ioctl_clear(struct usbtmc_device_data *data) in usbtmc_ioctl_clear() argument
607 dev = &data->intf->dev; in usbtmc_ioctl_clear()
615 rv = usb_control_msg(data->usb_dev, in usbtmc_ioctl_clear()
616 usb_rcvctrlpipe(data->usb_dev, 0), in usbtmc_ioctl_clear()
634 current_setting = data->intf->cur_altsetting; in usbtmc_ioctl_clear()
637 if (desc->bEndpointAddress == data->bulk_in) in usbtmc_ioctl_clear()
655 rv = usb_control_msg(data->usb_dev, in usbtmc_ioctl_clear()
656 usb_rcvctrlpipe(data->usb_dev, 0), in usbtmc_ioctl_clear()
680 rv = usb_bulk_msg(data->usb_dev, in usbtmc_ioctl_clear()
681 usb_rcvbulkpipe(data->usb_dev, in usbtmc_ioctl_clear()
682 data->bulk_in), in usbtmc_ioctl_clear()
706 rv = usb_clear_halt(data->usb_dev, in usbtmc_ioctl_clear()
707 usb_sndbulkpipe(data->usb_dev, data->bulk_out)); in usbtmc_ioctl_clear()
719 static int usbtmc_ioctl_clear_out_halt(struct usbtmc_device_data *data) in usbtmc_ioctl_clear_out_halt() argument
728 rv = usb_clear_halt(data->usb_dev, in usbtmc_ioctl_clear_out_halt()
729 usb_sndbulkpipe(data->usb_dev, data->bulk_out)); in usbtmc_ioctl_clear_out_halt()
732 dev_err(&data->usb_dev->dev, "usb_control_msg returned %d\n", in usbtmc_ioctl_clear_out_halt()
743 static int usbtmc_ioctl_clear_in_halt(struct usbtmc_device_data *data) in usbtmc_ioctl_clear_in_halt() argument
752 rv = usb_clear_halt(data->usb_dev, in usbtmc_ioctl_clear_in_halt()
753 usb_rcvbulkpipe(data->usb_dev, data->bulk_in)); in usbtmc_ioctl_clear_in_halt()
756 dev_err(&data->usb_dev->dev, "usb_control_msg returned %d\n", in usbtmc_ioctl_clear_in_halt()
767 static int get_capabilities(struct usbtmc_device_data *data) in get_capabilities() argument
769 struct device *dev = &data->usb_dev->dev; in get_capabilities()
777 rv = usb_control_msg(data->usb_dev, usb_rcvctrlpipe(data->usb_dev, 0), in get_capabilities()
797 data->capabilities.interface_capabilities = buffer[4]; in get_capabilities()
798 data->capabilities.device_capabilities = buffer[5]; in get_capabilities()
799 data->capabilities.usb488_interface_capabilities = buffer[14]; in get_capabilities()
800 data->capabilities.usb488_device_capabilities = buffer[15]; in get_capabilities()
813 struct usbtmc_device_data *data = usb_get_intfdata(intf); \
815 return sprintf(buf, "%d\n", data->capabilities.name); \
840 struct usbtmc_device_data *data = usb_get_intfdata(intf); in show_TermChar() local
842 return sprintf(buf, "%c\n", data->TermChar); in show_TermChar()
850 struct usbtmc_device_data *data = usb_get_intfdata(intf); in store_TermChar() local
854 data->TermChar = buf[0]; in store_TermChar()
864 struct usbtmc_device_data *data = usb_get_intfdata(intf); \
866 return sprintf(buf, "%d\n", data->name); \
873 struct usbtmc_device_data *data = usb_get_intfdata(intf); \
880 data->name = val; \
902 static int usbtmc_ioctl_indicator_pulse(struct usbtmc_device_data *data) in usbtmc_ioctl_indicator_pulse() argument
908 dev = &data->intf->dev; in usbtmc_ioctl_indicator_pulse()
914 rv = usb_control_msg(data->usb_dev, in usbtmc_ioctl_indicator_pulse()
915 usb_rcvctrlpipe(data->usb_dev, 0), in usbtmc_ioctl_indicator_pulse()
941 struct usbtmc_device_data *data; in usbtmc_ioctl() local
944 data = file->private_data; in usbtmc_ioctl()
945 mutex_lock(&data->io_mutex); in usbtmc_ioctl()
946 if (data->zombie) { in usbtmc_ioctl()
953 retval = usbtmc_ioctl_clear_out_halt(data); in usbtmc_ioctl()
957 retval = usbtmc_ioctl_clear_in_halt(data); in usbtmc_ioctl()
961 retval = usbtmc_ioctl_indicator_pulse(data); in usbtmc_ioctl()
965 retval = usbtmc_ioctl_clear(data); in usbtmc_ioctl()
969 retval = usbtmc_ioctl_abort_bulk_out(data); in usbtmc_ioctl()
973 retval = usbtmc_ioctl_abort_bulk_in(data); in usbtmc_ioctl()
978 mutex_unlock(&data->io_mutex); in usbtmc_ioctl()
1002 struct usbtmc_device_data *data; in usbtmc_probe() local
1010 data = kmalloc(sizeof(struct usbtmc_device_data), GFP_KERNEL); in usbtmc_probe()
1011 if (!data) { in usbtmc_probe()
1016 data->intf = intf; in usbtmc_probe()
1017 data->id = id; in usbtmc_probe()
1018 data->usb_dev = usb_get_dev(interface_to_usbdev(intf)); in usbtmc_probe()
1019 usb_set_intfdata(intf, data); in usbtmc_probe()
1020 kref_init(&data->kref); in usbtmc_probe()
1021 mutex_init(&data->io_mutex); in usbtmc_probe()
1022 data->zombie = 0; in usbtmc_probe()
1025 data->bTag = 1; in usbtmc_probe()
1026 data->TermCharEnabled = 0; in usbtmc_probe()
1027 data->TermChar = '\n'; in usbtmc_probe()
1030 iface_desc = data->intf->cur_altsetting; in usbtmc_probe()
1037 data->bulk_in = endpoint->bEndpointAddress; in usbtmc_probe()
1039 data->bulk_in); in usbtmc_probe()
1049 data->bulk_out = endpoint->bEndpointAddress; in usbtmc_probe()
1051 data->bulk_out); in usbtmc_probe()
1056 retcode = get_capabilities(data); in usbtmc_probe()
1079 kref_put(&data->kref, usbtmc_delete); in usbtmc_probe()
1085 struct usbtmc_device_data *data; in usbtmc_disconnect() local
1089 data = usb_get_intfdata(intf); in usbtmc_disconnect()
1093 mutex_lock(&data->io_mutex); in usbtmc_disconnect()
1094 data->zombie = 1; in usbtmc_disconnect()
1095 mutex_unlock(&data->io_mutex); in usbtmc_disconnect()
1096 kref_put(&data->kref, usbtmc_delete); in usbtmc_disconnect()