Re: [PATCH v6 2/2] media: uvcvideo: add Razer Kiyo Pro to device info table

Jeffrey Hein
2026-04-09T08:13:24Z

Hi Ricardo,

Full lsusb -vv output included in the v7 commit message.

Thanks,
JP

On Thu, Apr 9, 2026 at 12:58 AM Ricardo Ribalda <ribalda@chromium.org> wrote:
>
> Hi
>
> On Thu, 9 Apr 2026 at 09:44, JP Hein <jp@jphein.com> wrote:
> >
> > Add a device entry for the Razer Kiyo Pro (1532:0e05) with quirks to
> > work around firmware bugs that crash the xHCI host controller:
> >
> > UVC_QUIRK_CTRL_THROTTLE - rate-limit control transfers and skip
> > error-code queries after EPIPE
> > UVC_QUIRK_DISABLE_AUTOSUSPEND - prevent runtime suspend
> > UVC_QUIRK_NO_RESET_RESUME - skip post-reset reinitialization
> >
> > The firmware (v1.5.0.1) has two failure modes: it stalls endpoints
> > under rapid control transfers (~25 without delay), and it fails to
> > reinitialize properly after USB power state transitions. Both can
> > cascade into xHCI controller death, disconnecting all USB devices on
> > the bus.
> >
> > Bug reproduced on two separate Kiyo Pro units running simultaneously,
> > confirming the issue is not unit-specific.
> >
> > lsusb -v:
> > Bus 002 Device 002: ID 1532:0e05 Razer USA, Ltd Razer Kiyo Pro
> > Device Descriptor:
> > bLength 18
> > bDescriptorType 1
> > bcdUSB 3.20
> > bDeviceClass 239 Miscellaneous Device
> > bDeviceSubClass 2 [unknown]
> > bDeviceProtocol 1 Interface Association
> > bMaxPacketSize0 9
> > idVendor 0x1532 Razer USA, Ltd
> > idProduct 0x0e05 Razer Kiyo Pro
> > bcdDevice 8.21
> > iManufacturer 1 Razer Inc
> > iProduct 2 Razer Kiyo Pro
> > iSerial 0
> >
>
> Is this the whole output of lsusb?? Can you try with lsusb -vv?
>
> > Signed-off-by: JP Hein <jp@jphein.com>
> > ---
> > drivers/media/usb/uvc/uvc_driver.c | 16 ++++++++++++++++
> > 1 file changed, 16 insertions(+)
> >
> > diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc_driver.c
> > index 775bede..9b6df8e 100644
> > --- a/drivers/media/usb/uvc/uvc_driver.c
> > +++ b/drivers/media/usb/uvc/uvc_driver.c
> > @@ -2880,6 +2880,22 @@ static const struct usb_device_id uvc_ids[] = {
> > .bInterfaceSubClass = 1,
> > .bInterfaceProtocol = 0,
> > .driver_info = (kernel_ulong_t)&uvc_quirk_probe_minmax },
> > +
> > + /*
> > + * Razer Kiyo Pro -- firmware crashes under rapid control transfers
> > + * and on LPM/autosuspend resume, cascading into xHCI controller
> > + * death that disconnects all USB devices on the bus.
> > + */
> > + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> > + | USB_DEVICE_ID_MATCH_INT_INFO,
> > + .idVendor = 0x1532,
> > + .idProduct = 0x0e05,
> > + .bInterfaceClass = USB_CLASS_VIDEO,
> > + .bInterfaceSubClass = 1,
> > + .bInterfaceProtocol = 0,
> > + .driver_info = UVC_INFO_QUIRK(UVC_QUIRK_CTRL_THROTTLE
> > + | UVC_QUIRK_DISABLE_AUTOSUSPEND
> > + | UVC_QUIRK_NO_RESET_RESUME) },
> > /* Kurokesu C1 PRO */
> > { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> > | USB_DEVICE_ID_MATCH_INT_INFO,
> > --
> > 2.43.0
> >
>
>
> --
> Ricardo Ribalda