* [RFC] usb: gadget: proposal for Microsoft OS 2.0 descriptor support
@ 2025-09-02 7:33 Maxime Vincent
2025-09-02 9:04 ` Greg KH
0 siblings, 1 reply; 2+ messages in thread
From: Maxime Vincent @ 2025-09-02 7:33 UTC (permalink / raw)
To: linux-usb@vger.kernel.org
Hi all,
This is a request for comments, not a patchset.
The Linux USB gadget framework already supports Microsoft OS 1.0
descriptors in usb_composite, which makes it possible for Windows
hosts to bind WinUSB or other class drivers without requiring a custom
.inf file. This has been very useful for devices that want to provide
driverless support on Windows.
Recent versions of Windows (8.1 and later) extend this mechanism with
the "Microsoft OS 2.0 descriptor set." This supersedes OS 1.0 and
provides:
- A more structured way to declare WinUSB interface bindings
- Registry property descriptors (string values, device properties)
- Support across multiple configurations and interfaces
- Forward compatibility for future extensions
At the moment, Linux gadget drivers cannot expose these descriptors
generically. Developers either hardcode them in out-of-tree patches or
skip MS OS 2.0 support entirely, limiting interoperability with modern
Windows hosts.
I would like to propose adding *generic* MS OS 2.0 descriptor support
to the gadget framework, in a way analogous to the existing OS 1.0
support - and similar to how WebUSB support has been implemented:
- New configfs attributes to define the OS 2.0 descriptor set
- Helpers in usb_composite for handling the vendor-specific requests
- Backward compatibility with existing OS 1.0 support
Before submitting any code, I wanted to ask maintainers:
- Is this considered broadly useful enough to merge upstream?
- Is it okay to support this fully through configfs?
I currently have a PoC running, but it's nowhere near ready to submit.
Feedback would be greatly appreciated before starting work on an
proper implementation.
Thanks,
Maxime Vincent
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [RFC] usb: gadget: proposal for Microsoft OS 2.0 descriptor support
2025-09-02 7:33 [RFC] usb: gadget: proposal for Microsoft OS 2.0 descriptor support Maxime Vincent
@ 2025-09-02 9:04 ` Greg KH
0 siblings, 0 replies; 2+ messages in thread
From: Greg KH @ 2025-09-02 9:04 UTC (permalink / raw)
To: Maxime Vincent; +Cc: linux-usb@vger.kernel.org
On Tue, Sep 02, 2025 at 07:33:21AM +0000, Maxime Vincent wrote:
> Hi all,
>
> This is a request for comments, not a patchset.
>
> The Linux USB gadget framework already supports Microsoft OS 1.0
> descriptors in usb_composite, which makes it possible for Windows
> hosts to bind WinUSB or other class drivers without requiring a custom
> .inf file. This has been very useful for devices that want to provide
> driverless support on Windows.
>
> Recent versions of Windows (8.1 and later) extend this mechanism with
> the "Microsoft OS 2.0 descriptor set." This supersedes OS 1.0 and
> provides:
>
> - A more structured way to declare WinUSB interface bindings
> - Registry property descriptors (string values, device properties)
> - Support across multiple configurations and interfaces
> - Forward compatibility for future extensions
>
> At the moment, Linux gadget drivers cannot expose these descriptors
> generically. Developers either hardcode them in out-of-tree patches or
> skip MS OS 2.0 support entirely, limiting interoperability with modern
> Windows hosts.
>
> I would like to propose adding *generic* MS OS 2.0 descriptor support
> to the gadget framework, in a way analogous to the existing OS 1.0
> support - and similar to how WebUSB support has been implemented:
>
> - New configfs attributes to define the OS 2.0 descriptor set
> - Helpers in usb_composite for handling the vendor-specific requests
> - Backward compatibility with existing OS 1.0 support
>
> Before submitting any code, I wanted to ask maintainers:
>
> - Is this considered broadly useful enough to merge upstream?
> - Is it okay to support this fully through configfs?
>
> I currently have a PoC running, but it's nowhere near ready to submit.
> Feedback would be greatly appreciated before starting work on an
> proper implementation.
We would like to see a real solution first to prove that it is something
that can actually be done, before we can really provide any sort of
review comments.
That's just how kernel development works,
thanks,
greg k-h
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2025-09-02 9:04 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-09-02 7:33 [RFC] usb: gadget: proposal for Microsoft OS 2.0 descriptor support Maxime Vincent
2025-09-02 9:04 ` Greg KH
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox