[PATCH v7 0/5] usb: usbtmc: Add support for missing functions in USBTMC-USB488 spec

From: Dave Penkler
Date: Wed Jan 27 2016 - 12:59:04 EST


Implement support for the USB488 defined READ_STATUS_BYTE ioctl (1/5)
and SRQ notifications with fasync (2/5) and poll/select (3/5) in order
to be able to synchronize with variable duration instrument
operations.

Add convenience ioctl to return all device capabilities (4/5)

Add ioctls for other USB488 requests: REN_CONTROL, GOTO_LOCAL and
LOCAL_LOCKOUT. (5/5)

PATCH Changelog:
v7 - Correct command direction and add data structure for
USBTMC488_IOCTL_GET_CAPS
- Cast arg to (void __user *) earlier in ioctl call chain
- Correct type to __u8 for ioctl args to match unsigned char
in userspace, 3 places: usb488_caps, stb and val

v6 - Remove more excess newlines
Rearrange declaration blocks aesthetically
Remove __func__ parameter from dev_xxx calls
Simplify tests for interrupt-in notifications
Propagate return code from usb_submit_urb()

v5 - Remove excess newlines and parens
- Move dev variable initialisations to declaration
- Add comment on interrupt btag wrap
- simplify test in usbtmc_free_int()

v4 - Remove excess newlines and parens
- simplify some expressions

v3 - Split into multiple patches as per gregkh request

V2 - Fix V1 bug: not waking sleepers on disconnect.
- Correct sparse warnings.

V1 - Original patch

Testing:
All functions tested ok on an USBTMC-USB488 compliant oscilloscope

Dave Penkler (5):
Implement an ioctl to support the USMTMC-USB488 READ_STATUS_BYTE
operation.
Add support for USBTMC USB488 SRQ notification with fasync
Add support for receiving USBTMC USB488 SRQ notifications via
poll/select
Add ioctl to retrieve USBTMC-USB488 capabilities
Add ioctls to enable and disable local controls on an instrument

drivers/usb/class/usbtmc.c | 330 +++++++++++++++++++++++++++++++++++++++++++
include/uapi/linux/usb/tmc.h | 29 +++-
2 files changed, 356 insertions(+), 3 deletions(-)

--
2.6.3