Greg,
I got the series [PATCH 5.4 015/148] USB: usbtmc: Fix reading stale status byte [PATCH 5.4 016/148] USB: usbtmc: Add USBTMC_IOCTL_GET_STB [PATCH 5.10 021/208] USB: usbtmc: Fix reading stale status byte [PATCH 5.10 022/208] USB: usbtmc: Add USBTMC_IOCTL_GET_STB
And I assume we should add the other two commits as well to complete the series: USB: usbtmc: Add separate USBTMC_IOCTL_GET_SRQ_STB (commit d1d9defdc6d582119d29f5d88f810b72bb1837fa) USB: usbtmc: Bump USBTMC_API_VERSION value (commit 614b388c34265948fbb3c5803ad72aa1898f2f93)
Then USBTMC API Version is consistent with added ioctls.
@Dave: What do you think. Can you check this?
Guido
-----Original Message----- From: Greg Kroah-Hartman gregkh@linuxfoundation.org Sent: Tuesday, July 15, 2025 3:12 PM To: stable@vger.kernel.org Cc: Greg Kroah-Hartman gregkh@linuxfoundation.org; patches@lists.linux.dev; Jian-Wei Wu jian-wei_wu@keysight.com; Kiener Guido (14DS1) Guido.Kiener@rohde-schwarz.com; Dave Penkler dpenkler@gmail.com; Sasha Levin sashal@kernel.org Subject: *EXT* [PATCH 5.10 022/208] USB: usbtmc: Add USBTMC_IOCTL_GET_STB
5.10-stable review patch. If anyone has any objections, please let me know.
From: Dave Penkler dpenkler@gmail.com
[ Upstream commit c9784e23c1020e63d6dba5e10ca8bf3d8b85c19c ]
This new ioctl reads the status byte (STB) from the device and returns the STB unmodified to the application. The srq_asserted bit is not taken into account and not changed.
This ioctl is useful to support non USBTMC-488 compliant devices.
Tested-by: Jian-Wei Wu jian-wei_wu@keysight.com Reviewed-by: Guido Kiener guido.kiener@rohde-schwarz.com Signed-off-by: Dave Penkler dpenkler@gmail.com Link: https://lore.kernel.org/r/20201215155621.9592-3-dpenkler@gmail.com Signed-off-by: Greg Kroah-Hartman gregkh@linuxfoundation.org Stable-dep-of: acb3dac2805d ("usb: usbtmc: Fix read_stb function and get_stb ioctl") Signed-off-by: Sasha Levin sashal@kernel.org
drivers/usb/class/usbtmc.c | 6 ++++++ include/uapi/linux/usb/tmc.h | 2 ++ 2 files changed, 8 insertions(+)
diff --git a/drivers/usb/class/usbtmc.c b/drivers/usb/class/usbtmc.c index bfd99d461f813..093040ea7e065 100644 --- a/drivers/usb/class/usbtmc.c +++ b/drivers/usb/class/usbtmc.c @@ -2173,6 +2173,12 @@ static long usbtmc_ioctl(struct file *file, unsigned int cmd, unsigned long arg) file_data->auto_abort = !!tmp_byte; break;
- case USBTMC_IOCTL_GET_STB:
retval = usbtmc_get_stb(file_data, &tmp_byte);
if (retval > 0)
retval = put_user(tmp_byte, (__u8 __user *)arg);
break;
- case USBTMC_IOCTL_CANCEL_IO: retval = usbtmc_ioctl_cancel_io(file_data); break;
diff --git a/include/uapi/linux/usb/tmc.h b/include/uapi/linux/usb/tmc.h index fdd4d88a7b95d..1e7878fe591f4 100644 --- a/include/uapi/linux/usb/tmc.h +++ b/include/uapi/linux/usb/tmc.h @@ -102,6 +102,8 @@ struct usbtmc_message { #define USBTMC_IOCTL_MSG_IN_ATTR _IOR(USBTMC_IOC_NR, 24, __u8) #define USBTMC_IOCTL_AUTO_ABORT _IOW(USBTMC_IOC_NR, 25, __u8)
+#define USBTMC_IOCTL_GET_STB _IOR(USBTMC_IOC_NR, 26, __u8)
/* Cancel and cleanup asynchronous calls */ #define USBTMC_IOCTL_CANCEL_IO _IO(USBTMC_IOC_NR, 35)
#define USBTMC_IOCTL_CLEANUP_IO _IO(USBTMC_IOC_NR, 36)
2.39.5