The working group "VISA for Linux" of the IVI Foundation
www.ivifoundation.org specifies common rules, shared libraries and
drivers to implement the specification of "VPP-4.3: The VISA Library"
on Linux to be compatible with implementations on other operating systems.
The USBTMC protocol is part of the "VISA Library" that is used by many
popular T&M applications.
Initial implementations for Linux based on libusb has been created.
However using one common USBTMC driver results in more benefits:
- Multiple applications can share access to the same instruments.
- The driver handles SRQ conflicts.
- Simplifies definition of udev rules for USBTMC devices.
- Simplifies development of applications using T&M instruments.
The following collaborative patches meet the requirements of the IVI
Foundation to implement the library based on the usbtmc driver.
Improvements in the data transfer rate of over 130 MByte/s for
usb 3.x connections have been measured.
V5: Added this version history. No change to patches.
V4: Removed redundant #ifdef CONFIG_COMPAT.
V3: Replaced data pointer of type void* in structs
usbtmc_ctrlrequest and usbtmc_message with data pointer of
type __u64 to avoid double implementation of ioctls with
different structure sizes for 32 and 64 bit applications.
Following patch is added to usb-next branch:
usb: usbtmc: Add support for 32 bit compat applications
V2: Split patch series into smaller patches.
Add compatible ioctls and structs to support 32 bit applications.
Incorporates feedback from reviewers.
Following patches are added to usb-next branch:
usb: usbtmc: Add ioctl for termination character
usb: usbtmc: Add ioctl for EOM bit
usb: usbtmc: Add ioctl for trigger
usb: usbtmc: Add ioctls to set/get usb timeout
usb: usbtmc: use consistent timeout error
usb: usbtmc: Support Read Status Byte with SRQ per file
V1: usb: usbtmc: Remove rigol_quirk (accepted)
https://patchwork.kernel.org/patch/10407097/
Guido Kiener, Dave Penkler, Steve Bayless (22):
usb: usbtmc: Add ioctl for generic requests on control
usb: usbtmc: Add ioctl for vendor specific write
usb: usbtmc: Add ioctl USBTMC_IOCTL_WRITE_RESULT
usb: usbtmc: Add ioctl for vendor specific read
usb: usbtmc: Add ioctl USBTMC_IOCTL_CANCEL_IO
usb: usbtmc: Add ioctl USBTMC_IOCTL_CLEANUP_IO
usb: usbtmc: Fix suspend/resume
usb: usbtmc: Add ioctl USBTMC488_IOCTL_WAIT_SRQ
usb: usbtmc: add ioctl USBTMC_IOCTL_MSG_IN_ATTR
usb: usbtmc: Add ioctl USBTMC_IOCTL_AUTO_ABORT
usb: usbtmc: Optimize usbtmc_write
usb: usbtmc: Optimize usbtmc_read
usb: usbtmc: Fix ioctl USBTMC_IOCTL_CLEAR
usb: usbtmc: Fix ioctl USBTMC_IOCTL_ABORT_BULK_IN
usb: usbtmc: Fix ioctl USBTMC_IOCTL_ABORT_BULK_OUT
usb: usbtmc: Replace USBTMC_TIMEOUT macros for control messages
usb: usbtmc: Add ioctl USBTMC_IOCTL_API_VERSION
usb: usbtmc: Update ioctl-number.txt
usb: usbtmc: Remove redundant code
usb: usbtmc: Remove redundant macro USBTMC_SIZE_IOBUFFER
usb: usbtmc: Fix split quoted string in debug message
usb: usbtmc: Remove sysfs group TermChar and auto_abort
.../ABI/stable/sysfs-driver-usb-usbtmc | 35 -
Documentation/ioctl/ioctl-number.txt | 2 +-
drivers/usb/class/usbtmc.c | 1652 +++++++++++++----
include/uapi/linux/usb/tmc.h | 41 +
4 files changed, 1291 insertions(+), 439 deletions(-)
--
2.17.1
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html