* [PATCH] USB: serial: simple: narrow OWON match to avoid breaking VDS1022
@ 2026-08-10 9:13 Huang Wei
2026-08-10 11:43 ` Greg Kroah-Hartman
0 siblings, 1 reply; 7+ messages in thread
From: Huang Wei @ 2026-08-10 9:13 UTC (permalink / raw)
To: Johan Hovold
Cc: Greg Kroah-Hartman, linux-usb, linux-kernel, leStoppe, Huang Wei
Commit 4cc01410e1c1 ("USB: serial: simple: add OWON HDS200 series
oscilloscope support") added a USB_DEVICE() match on VID:PID
0x5345:0x1234. OWON uses this same VID:PID across multiple device
families (HDS, VDS, SDS, PDS), so the overly broad match causes the
owon driver to also bind to devices like the VDS1022, which previously
worked fine with the generic usbserial driver.
Narrow the match to use USB_DEVICE_AND_INTERFACE_INFO() with the
Physical Interface Device class (bInterfaceClass=0x05,
bInterfaceSubClass=0x00, bInterfaceProtocol=0x00) as reported in the
HDS200 USB descriptor. Devices that use a different interface class
(e.g. vendor-specific 0xff) will no longer be claimed by the owon
driver and will fall back to the generic driver as before.
Reported-by: leStoppe <lestoppe@gmail.com>
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=220193
Signed-off-by: Huang Wei <huangwei@kylinos.cn>
---
drivers/usb/serial/usb-serial-simple.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/drivers/usb/serial/usb-serial-simple.c b/drivers/usb/serial/usb-serial-simple.c
index a0afaf254d12..82509669347e 100644
--- a/drivers/usb/serial/usb-serial-simple.c
+++ b/drivers/usb/serial/usb-serial-simple.c
@@ -100,9 +100,15 @@ DEVICE(nokia, NOKIA_IDS);
{ USB_DEVICE(0x09d7, 0x0100) } /* NovAtel FlexPack GPS */
DEVICE_N(novatel_gps, NOVATEL_IDS, 3);
-/* OWON electronic test and measurement equipment driver */
+/* OWON electronic test and measurement equipment driver.
+ * OWON uses the same VID:PID (0x5345:0x1234) for multiple device families
+ * (HDS, VDS, SDS, PDS). Match on the Physical Interface Device class (0x05)
+ * used by the HDS200 series to avoid binding devices that use a different
+ * interface class (e.g. vendor-specific 0xff) and may require different
+ * handling.
+ */
#define OWON_IDS() \
- { USB_DEVICE(0x5345, 0x1234) } /* HDS200 oscilloscopes and others */
+ { USB_DEVICE_AND_INTERFACE_INFO(0x5345, 0x1234, 0x05, 0x00, 0x00) }
DEVICE(owon, OWON_IDS);
/* Siemens USB/MPI adapter */
--
2.25.1
^ permalink raw reply related [flat|nested] 7+ messages in thread* Re: [PATCH] USB: serial: simple: narrow OWON match to avoid breaking VDS1022
2026-08-10 9:13 [PATCH] USB: serial: simple: narrow OWON match to avoid breaking VDS1022 Huang Wei
@ 2026-08-10 11:43 ` Greg Kroah-Hartman
2026-08-10 19:40 ` leStoppe
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: Greg Kroah-Hartman @ 2026-08-10 11:43 UTC (permalink / raw)
To: Huang Wei; +Cc: Johan Hovold, linux-usb, linux-kernel, leStoppe
On Mon, Aug 10, 2026 at 05:13:22PM +0800, Huang Wei wrote:
> Commit 4cc01410e1c1 ("USB: serial: simple: add OWON HDS200 series
> oscilloscope support") added a USB_DEVICE() match on VID:PID
> 0x5345:0x1234. OWON uses this same VID:PID across multiple device
> families (HDS, VDS, SDS, PDS), so the overly broad match causes the
> owon driver to also bind to devices like the VDS1022, which previously
> worked fine with the generic usbserial driver.
Where is the "owon driver" located at? Is it just a userspace program
or a real kernel driver?
thanks,
greg k-h
^ permalink raw reply [flat|nested] 7+ messages in thread* Re: [PATCH] USB: serial: simple: narrow OWON match to avoid breaking VDS1022
2026-08-10 11:43 ` Greg Kroah-Hartman
@ 2026-08-10 19:40 ` leStoppe
2026-08-11 13:17 ` Huang Wei
2026-08-11 7:39 ` Michal Pecio
2026-08-11 13:05 ` Huang Wei
2 siblings, 1 reply; 7+ messages in thread
From: leStoppe @ 2026-08-10 19:40 UTC (permalink / raw)
To: Huangwei; +Cc: Greg Kroah-Hartman, linux-usb, linux-kernel
Hi Huang Wei,
I've tested the patch and it solves the issue.
regards,
leStoppe
^ permalink raw reply [flat|nested] 7+ messages in thread* Re: [PATCH] USB: serial: simple: narrow OWON match to avoid breaking VDS1022
2026-08-10 19:40 ` leStoppe
@ 2026-08-11 13:17 ` Huang Wei
2026-08-11 15:18 ` Amit
0 siblings, 1 reply; 7+ messages in thread
From: Huang Wei @ 2026-08-11 13:17 UTC (permalink / raw)
To: leStoppe
Cc: Greg Kroah-Hartman, Johan Hovold, linux-usb, linux-kernel,
Huang Wei
Hi leStoppe,
Thanks for testing! Could you provide a formal Tested-by tag so I
can add it to the patch? You can simply reply with:
Tested-by: leStoppe <lestoppe@gmail.com>
Best regards,
Huang Wei
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] USB: serial: simple: narrow OWON match to avoid breaking VDS1022
2026-08-11 13:17 ` Huang Wei
@ 2026-08-11 15:18 ` Amit
0 siblings, 0 replies; 7+ messages in thread
From: Amit @ 2026-08-11 15:18 UTC (permalink / raw)
To: Huang Wei; +Cc: Greg Kroah-Hartman, Johan Hovold, linux-usb, linux-kernel
Hi Huang Wei,
Sure, here you go!:
Tested-by: leStoppe <lestoppe@gmail.com> [Debian Bookworm Kernel
6.1.176 ]
regards,
leStoppe
On Tue, 11 Aug 2026 21:17:29 +0800
Huang Wei <huangwei@kylinos.cn> wrote:
> Hi leStoppe,
>
> Thanks for testing! Could you provide a formal Tested-by tag so I
> can add it to the patch? You can simply reply with:
>
> Tested-by: leStoppe <lestoppe@gmail.com>
>
> Best regards,
> Huang Wei
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] USB: serial: simple: narrow OWON match to avoid breaking VDS1022
2026-08-10 11:43 ` Greg Kroah-Hartman
2026-08-10 19:40 ` leStoppe
@ 2026-08-11 7:39 ` Michal Pecio
2026-08-11 13:05 ` Huang Wei
2 siblings, 0 replies; 7+ messages in thread
From: Michal Pecio @ 2026-08-11 7:39 UTC (permalink / raw)
To: Greg Kroah-Hartman, Huang Wei, Craig Hesling
Cc: Johan Hovold, linux-usb, linux-kernel, leStoppe, Florent
On Mon, 10 Aug 2026 13:43:33 +0200, Greg Kroah-Hartman wrote:
> On Mon, Aug 10, 2026 at 05:13:22PM +0800, Huang Wei wrote:
> > Commit 4cc01410e1c1 ("USB: serial: simple: add OWON HDS200 series
> > oscilloscope support") added a USB_DEVICE() match on VID:PID
> > 0x5345:0x1234. OWON uses this same VID:PID across multiple device
> > families (HDS, VDS, SDS, PDS), so the overly broad match causes the
> > owon driver to also bind to devices like the VDS1022, which
> > previously worked fine with the generic usbserial driver.
Did they really work with usbserial?
> Where is the "owon driver" located at? Is it just a userspace program
> or a real kernel driver?
Looks like some people want to support these devices in userspace
with usb-serial-simple and others with libusb, and they are getting
in each other's way.
libusb: https://github.com/florentbr/OWON-VDS1022/issues/109
serial: https://github.com/linux4life798/owon-hds200-capture
Maybe let's ask those people what they think. Not sure how much they
overlap in their scope (heh), but it's possible that patches to remove
and re-add IDs will keep flowing if the kernel keeps applying them
but conflicting userspace tools don't sort it out.
Regards,
Michal
^ permalink raw reply [flat|nested] 7+ messages in thread* Re: [PATCH] USB: serial: simple: narrow OWON match to avoid breaking VDS1022
2026-08-10 11:43 ` Greg Kroah-Hartman
2026-08-10 19:40 ` leStoppe
2026-08-11 7:39 ` Michal Pecio
@ 2026-08-11 13:05 ` Huang Wei
2 siblings, 0 replies; 7+ messages in thread
From: Huang Wei @ 2026-08-11 13:05 UTC (permalink / raw)
To: Greg Kroah-Hartman
Cc: Johan Hovold, linux-usb, linux-kernel, leStoppe, Huang Wei
On Mon, Aug 10, 2026 at 07:43:33PM +0200, Greg Kroah-Hartman wrote:
> Where is the "owon driver" located at? Is it just a userspace program
> or a real kernel driver?
Sorry for the unclear wording. The "owon driver" refers to the
owon_device usb_serial_driver registered in
drivers/usb/serial/usb-serial-simple.c. It is a real kernel driver,
added by the same commit 4cc01410e1c1 that introduced the regression.
I'll reword the commit message to avoid the ambiguity if a v2 is
needed.
> thanks,
> greg k-h
To address Michal's point: the VDS1022 community indeed has a libusb
based userspace tool [1], which needs direct USB access. Before commit
4cc01410e1c1, the owon driver did not exist and the device was not
claimed by any specific kernel driver. After that commit, the broad
USB_DEVICE() match caused the owon driver to claim the VDS1022 as
well, preventing the userspace tool from accessing it.
This patch restores the pre-regression behavior by narrowing the
match to the HDS200's interface class (0x05). The reporter has
confirmed that the VDS1022 now falls back to the generic usbserial
driver and works again [2].
[1] https://github.com/florentbr/OWON-VDS1022
[2] https://lore.kernel.org/linux-usb/20260810091322.2201740-1-huangwei@kylinos.cn/
As for the broader kernel-vs-libusb conflict Michal raised, it is
valid but predates this regression and is outside the scope of this
fix. The generic usbserial driver can be prevented from claiming the
device at the user's discretion (e.g. via unbinding or a udev rule)
if direct libusb access is needed.
Best regards,
Huang Wei
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2026-08-11 15:18 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-10 9:13 [PATCH] USB: serial: simple: narrow OWON match to avoid breaking VDS1022 Huang Wei
2026-08-10 11:43 ` Greg Kroah-Hartman
2026-08-10 19:40 ` leStoppe
2026-08-11 13:17 ` Huang Wei
2026-08-11 15:18 ` Amit
2026-08-11 7:39 ` Michal Pecio
2026-08-11 13:05 ` Huang Wei
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.