All of lore.kernel.org
 help / color / mirror / Atom feed
From: bugzilla-daemon@kernel.org
To: linux-usb@vger.kernel.org
Subject: [Bug 220166] New: The g_webcam UVC gadget driver fails to enumerate properly on Windows 11, returning USB\DEVICE_DESCRIPTOR_FAILURE in Device Manager, while other USB gadgets (g_serial, g_mass_storage) work correctly on the same hardware and Windows version. This represent
Date: Wed, 28 May 2025 02:48:21 +0000	[thread overview]
Message-ID: <bug-220166-208809@https.bugzilla.kernel.org/> (raw)

https://bugzilla.kernel.org/show_bug.cgi?id=220166

            Bug ID: 220166
           Summary: The g_webcam UVC gadget driver fails to enumerate
                    properly on Windows 11, returning
                    USB\DEVICE_DESCRIPTOR_FAILURE in Device Manager, while
                    other USB gadgets (g_serial, g_mass_storage) work
                    correctly on the same hardware and Windows version.
                    This represent
           Product: Drivers
           Version: 2.5
          Hardware: All
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P3
         Component: USB
          Assignee: drivers_usb@kernel-bugs.kernel.org
          Reporter: joshcabarrus@gmail.com
        Regression: No

System Information

Hardware: Raspberry Pi Zero W Rev 1.1 (BCM2835, Revision: 9000c1)
Kernel: Linux 6.12.25+rpt-rpi-v6 #1 Raspbian (armv6l)
USB Controller: dwc2 20980000.usb
Host OS: Windows 11 (up to date)

Problem Description
When g_webcam is loaded and the Pi Zero W is connected to Windows 11 via USB:

g_webcam behavior:

Loads successfully on Pi: g_webcam ready, bound driver g_webcam
UDC state remains: not attached (never reaches configured)
Windows shows: Unknown USB Device (Device Descriptor Request Failed)
Hardware ID: USB\DEVICE_DESCRIPTOR_FAILURE


g_serial behavior (control test):

Loads successfully: g_serial ready, bound driver g_serial
UDC state becomes: configured
Windows properly recognizes as COM port device



Steps to Reproduce
bash# On Raspberry Pi Zero W:
sudo modprobe g_webcam
cat /sys/class/udc/20980000.usb/state  # Shows: not attached

# Connect USB cable to Windows 11
# Result: "Unknown USB Device" in Device Manager

# Control test:
sudo rmmod g_webcam
sudo modprobe g_serial  
cat /sys/class/udc/20980000.usb/state  # Shows: configured
# Result: Working COM port in Windows
Expected vs Actual Behavior
Expected: g_webcam should enumerate successfully on Windows 11 like other
gadgets and previous Windows versions.
Actual: Windows 11 rejects the USB device descriptors with
DEVICE_DESCRIPTOR_FAILURE.
Analysis
The issue appears to be Windows 11's stricter USB descriptor validation. The
g_webcam UVC descriptors may not fully comply with:

USB Video Class specification requirements
Windows 11's enhanced USB security validation
Microsoft's USB descriptor formatting standards

Loaded Modules
g_webcam               16384  0
usb_f_uvc              77824  5  
uvc                    12288  1 usb_f_uvc
libcomposite           69632  17 usb_f_acm,usb_f_uvc,g_webcam
dwc2                  176128  0
Kernel Messages
g_webcam gadget.0: uvc: uvc_function_bind()
g_webcam gadget.0: Webcam Video Gadget  
g_webcam gadget.0: g_webcam ready
dwc2 20980000.usb: bound driver g_webcam
Impact
This affects numerous Raspberry Pi Zero W webcam projects and tutorials that
previously worked with Windows. Users report this issue across multiple Pi Zero
W webcam implementations.
Suggested Investigation Areas

USB Descriptor Compliance: Review g_webcam's USB descriptors against latest USB
Video Class specification
Windows 11 Requirements: Compare descriptor format with Windows 11's validation
requirements
VID/PID Issues: Verify Vendor/Product ID configuration doesn't trigger Windows
driver conflicts
UVC Version Compatibility: Check if UVC version advertised matches capabilities
provided

Request
Could the maintainers investigate updating g_webcam's USB descriptors to meet
Windows 11's stricter validation requirements? The fact that g_serial works but
g_webcam fails suggests this is a descriptor-specific issue rather than
hardware or driver framework problem.
Additional Information Available
I can provide:

USB protocol analyzer captures
Testing with different Windows versions
Comparison with working UVC implementations
Further diagnostic information as needed

Thank you for maintaining the USB gadget subsystem.
Reporter: [Your name and email]
Date: May 27, 2025

-- 
You may reply to this email to add a comment.

You are receiving this mail because:
You are watching the assignee of the bug.

             reply	other threads:[~2025-05-28  2:48 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-05-28  2:48 bugzilla-daemon [this message]
2025-05-28 11:40 ` [Bug 220166] The g_webcam UVC gadget driver fails to enumerate properly on Windows 11, returning USB\DEVICE_DESCRIPTOR_FAILURE in Device Manager, while other USB gadgets (g_serial, g_mass_storage) work correctly on the same hardware and Windows version. This represent bugzilla-daemon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bug-220166-208809@https.bugzilla.kernel.org/ \
    --to=bugzilla-daemon@kernel.org \
    --cc=linux-usb@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.