[08/12] Add USB quirk for HVR-950q to avoid intermittent device resets

Message ID 1492643635-30823-9-git-send-email-dheitmueller@kernellabs.com (mailing list archive)
State Not Applicable, archived
Delegated to: Hans Verkuil
Headers

Commit Message

Devin Heitmueller April 19, 2017, 11:13 p.m. UTC
  The USB core and sysfs will attempt to enumerate certain parameters
which are unsupported by the au0828 - causing inconsistent behavior
and sometimes causing the chip to reset.  Avoid making these calls.

This problem manifested as intermittent cases where the au8522 would
be reset on analog video startup, in particular when starting up ALSA
audio streaming in parallel - the sysfs entries created by
snd-usb-audio on streaming startup would result in unsupported control
messages being sent during tuning which would put the chip into an
unknown state.

Signed-off-by: Devin Heitmueller <dheitmueller@kernellabs.com>
---
 drivers/usb/core/quirks.c | 4 ++++
 1 file changed, 4 insertions(+)
  

Comments

Hans Verkuil May 22, 2017, 9:13 a.m. UTC | #1
Hi Devin,

On 04/20/2017 01:13 AM, Devin Heitmueller wrote:
> The USB core and sysfs will attempt to enumerate certain parameters
> which are unsupported by the au0828 - causing inconsistent behavior
> and sometimes causing the chip to reset.  Avoid making these calls.
> 
> This problem manifested as intermittent cases where the au8522 would
> be reset on analog video startup, in particular when starting up ALSA
> audio streaming in parallel - the sysfs entries created by
> snd-usb-audio on streaming startup would result in unsupported control
> messages being sent during tuning which would put the chip into an
> unknown state.
> 
> Signed-off-by: Devin Heitmueller <dheitmueller@kernellabs.com>

I've accepted the other patches in this patch series for the media subsystem,
but this patch should go through the USB subsystem. Cc-ed linux-usb.

Acked-by: Hans Verkuil <hans.verkuil@cisco.com>

Regards,

	Hans

> ---
>  drivers/usb/core/quirks.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
> index 96b21b0..3116edf 100644
> --- a/drivers/usb/core/quirks.c
> +++ b/drivers/usb/core/quirks.c
> @@ -223,6 +223,10 @@
>  	/* Blackmagic Design UltraStudio SDI */
>  	{ USB_DEVICE(0x1edb, 0xbd4f), .driver_info = USB_QUIRK_NO_LPM },
>  
> +	/* Hauppauge HVR-950q */
> +	{ USB_DEVICE(0x2040, 0x7200), .driver_info =
> +			USB_QUIRK_CONFIG_INTF_STRINGS },
> +
>  	/* INTEL VALUE SSD */
>  	{ USB_DEVICE(0x8086, 0xf1a5), .driver_info = USB_QUIRK_RESET_RESUME },
>  
>
  
Devin Heitmueller June 19, 2017, 2:07 p.m. UTC | #2
> I've accepted the other patches in this patch series for the media subsystem,
> but this patch should go through the USB subsystem. Cc-ed linux-usb.
>
> Acked-by: Hans Verkuil <hans.verkuil@cisco.com>

<ping>

I'm not sure who on the linux-usb mailing list would need to deal with
this, but would be great if we could get this merged.

Thanks,

Devin
  

Patch

diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
index 96b21b0..3116edf 100644
--- a/drivers/usb/core/quirks.c
+++ b/drivers/usb/core/quirks.c
@@ -223,6 +223,10 @@ 
 	/* Blackmagic Design UltraStudio SDI */
 	{ USB_DEVICE(0x1edb, 0xbd4f), .driver_info = USB_QUIRK_NO_LPM },
 
+	/* Hauppauge HVR-950q */
+	{ USB_DEVICE(0x2040, 0x7200), .driver_info =
+			USB_QUIRK_CONFIG_INTF_STRINGS },
+
 	/* INTEL VALUE SSD */
 	{ USB_DEVICE(0x8086, 0xf1a5), .driver_info = USB_QUIRK_RESET_RESUME },