2018-12-04 21:37:11

by Alan Stern

[permalink] [raw]
Subject: Re: [PATCH] USB: quirks: add NO_LPM quirk for Logitech Flare|Meetup|Brio|Rally

On Tue, 4 Dec 2018, Kyle Williams wrote:

> Description: Some USB device / host controller combinations seem to have
> problems with Link Power management. In particular it is described that
> the combination of certain Logitech devices and other powered media
> devices such as the Atrus device causes 'not enough bandwidth for
> new device state'error.
>
> This patch creates quirk entries for the tested Logitech device
> indicating LPM should remain disabled for the device.
>
> Signed-off-by: Kyle Williams <[email protected]>
> ---
> drivers/usb/core/quirks.c | 16 ++++++++++++++++
> 1 file changed, 16 insertions(+)
>
> diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
> index 0690fcff0ea2..9403edee4797 100644
> --- a/drivers/usb/core/quirks.c
> +++ b/drivers/usb/core/quirks.c
> @@ -246,6 +246,22 @@ static const struct usb_device_id usb_quirk_list[] = {
> /* Logitech Harmony 700-series */
> { USB_DEVICE(0x046d, 0xc122), .driver_info = USB_QUIRK_DELAY_INIT },
>
> + /* Logitech Flare */
> + { USB_DEVICE(0x046d, 0x0876), .driver_info = USB_QUIRK_NO_LPM },

This entry is out of order with the preceding entry. And some of the
new entries below are out of order with each other (entries are
supposed to be sorted by Vendor ID, then Product ID).

Also, perhaps instead of adding all these new entries, we should set
the NO_LPM quirk flag for all Logitech devices?

Alan Stern

> +
> + /* Logitech Rally Camera */
> + { USB_DEVICE(0x046d, 0x0881), .driver_info = USB_QUIRK_NO_LPM },
> + { USB_DEVICE(0x046d, 0x0888), .driver_info = USB_QUIRK_NO_LPM },
> + { USB_DEVICE(0x046d, 0x0889), .driver_info = USB_QUIRK_NO_LPM },
> +
> + /* Logitech Meetup */
> + { USB_DEVICE(0x046d, 0x0867), .driver_info = USB_QUIRK_NO_LPM },
> + { USB_DEVICE(0x046d, 0x0866), .driver_info = USB_QUIRK_NO_LPM },
> + { USB_DEVICE(0x046d, 0x086a), .driver_info = USB_QUIRK_NO_LPM },
> +
> + /* Logitech Brio */
> + { USB_DEVICE(0x046d, 0x085e), .driver_info = USB_QUIRK_NO_LPM },
> +
> /* Philips PSC805 audio device */
> { USB_DEVICE(0x0471, 0x0155), .driver_info = USB_QUIRK_RESET_RESUME
> },
>
>



2018-12-07 22:19:35

by Kyle Williams

[permalink] [raw]
Subject: Re: [PATCH] USB: quirks: add NO_LPM quirk for Logitech Flare|Meetup|Brio|Rally

On Tue, Dec 04, 2018 at 04:36:18PM -0500, Alan Stern wrote:
> On Tue, 4 Dec 2018, Kyle Williams wrote:
>
> > Description: Some USB device / host controller combinations seem to have
> > problems with Link Power management. In particular it is described that
> > the combination of certain Logitech devices and other powered media
> > devices such as the Atrus device causes 'not enough bandwidth for
> > new device state'error.
> >
> > This patch creates quirk entries for the tested Logitech device
> > indicating LPM should remain disabled for the device.
> >
> > Signed-off-by: Kyle Williams <[email protected]>
> > ---
> > drivers/usb/core/quirks.c | 16 ++++++++++++++++
> > 1 file changed, 16 insertions(+)
> >
> > diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
> > index 0690fcff0ea2..9403edee4797 100644
> > --- a/drivers/usb/core/quirks.c
> > +++ b/drivers/usb/core/quirks.c
> > @@ -246,6 +246,22 @@ static const struct usb_device_id usb_quirk_list[] = {
> > /* Logitech Harmony 700-series */
> > { USB_DEVICE(0x046d, 0xc122), .driver_info = USB_QUIRK_DELAY_INIT },
> >
> > + /* Logitech Flare */
> > + { USB_DEVICE(0x046d, 0x0876), .driver_info = USB_QUIRK_NO_LPM },
>
> This entry is out of order with the preceding entry. And some of the
> new entries below are out of order with each other (entries are
> supposed to be sorted by Vendor ID, then Product ID).
>
> Also, perhaps instead of adding all these new entries, we should set
> the NO_LPM quirk flag for all Logitech devices?
>
> Alan Stern
Setting USB_QUIRK_NO_LPM for all Logitech devices instead of specific
ones seem to be a better solution as there are a lot of other devices
that have the issue as well

Kyle Williams
>
> > +
> > + /* Logitech Rally Camera */
> > + { USB_DEVICE(0x046d, 0x0881), .driver_info = USB_QUIRK_NO_LPM },
> > + { USB_DEVICE(0x046d, 0x0888), .driver_info = USB_QUIRK_NO_LPM },
> > + { USB_DEVICE(0x046d, 0x0889), .driver_info = USB_QUIRK_NO_LPM },
> > +
> > + /* Logitech Meetup */
> > + { USB_DEVICE(0x046d, 0x0867), .driver_info = USB_QUIRK_NO_LPM },
> > + { USB_DEVICE(0x046d, 0x0866), .driver_info = USB_QUIRK_NO_LPM },
> > + { USB_DEVICE(0x046d, 0x086a), .driver_info = USB_QUIRK_NO_LPM },
> > +
> > + /* Logitech Brio */
> > + { USB_DEVICE(0x046d, 0x085e), .driver_info = USB_QUIRK_NO_LPM },
> > +
> > /* Philips PSC805 audio device */
> > { USB_DEVICE(0x0471, 0x0155), .driver_info = USB_QUIRK_RESET_RESUME
> > },
> >
> >
>

2018-12-10 13:49:44

by Mathias Nyman

[permalink] [raw]
Subject: Re: [PATCH] USB: quirks: add NO_LPM quirk for Logitech Flare|Meetup|Brio|Rally

On 08.12.2018 00:18, Kyle Williams wrote:
> On Tue, Dec 04, 2018 at 04:36:18PM -0500, Alan Stern wrote:
>> On Tue, 4 Dec 2018, Kyle Williams wrote:
>>
>>> Description: Some USB device / host controller combinations seem to have
>>> problems with Link Power management. In particular it is described that
>>> the combination of certain Logitech devices and other powered media
>>> devices such as the Atrus device causes 'not enough bandwidth for
>>> new device state'error.
>>>
>>> This patch creates quirk entries for the tested Logitech device
>>> indicating LPM should remain disabled for the device.
>>>
>>> Signed-off-by: Kyle Williams <[email protected]>
>>> ---
>>> drivers/usb/core/quirks.c | 16 ++++++++++++++++
>>> 1 file changed, 16 insertions(+)
>>>
>>> diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
>>> index 0690fcff0ea2..9403edee4797 100644
>>> --- a/drivers/usb/core/quirks.c
>>> +++ b/drivers/usb/core/quirks.c
>>> @@ -246,6 +246,22 @@ static const struct usb_device_id usb_quirk_list[] = {
>>> /* Logitech Harmony 700-series */
>>> { USB_DEVICE(0x046d, 0xc122), .driver_info = USB_QUIRK_DELAY_INIT },
>>>
>>> + /* Logitech Flare */
>>> + { USB_DEVICE(0x046d, 0x0876), .driver_info = USB_QUIRK_NO_LPM },
>>
>> This entry is out of order with the preceding entry. And some of the
>> new entries below are out of order with each other (entries are
>> supposed to be sorted by Vendor ID, then Product ID).
>>
>> Also, perhaps instead of adding all these new entries, we should set
>> the NO_LPM quirk flag for all Logitech devices?
>>
>> Alan Stern
> Setting USB_QUIRK_NO_LPM for all Logitech devices instead of specific
> ones seem to be a better solution as there are a lot of other devices
> that have the issue as well
>
> Kyle Williams

I recently found a cause for the "not enough bandwidth for new device state" error.
Patch just got applied to v4.20-rc6
0472bf0 xhci: Prevent U1/U2 link pm states if exit latency is too long

Does it work for your Logitech devices?

-Mathias


2019-01-10 20:16:56

by Kyle Williams

[permalink] [raw]
Subject: Re: [PATCH] USB: quirks: add NO_LPM quirk for Logitech Flare|Meetup|Brio|Rally

On Mon, Dec 10, 2018 at 03:50:17PM +0200, Mathias Nyman wrote:
> On 08.12.2018 00:18, Kyle Williams wrote:
> > On Tue, Dec 04, 2018 at 04:36:18PM -0500, Alan Stern wrote:
> > > On Tue, 4 Dec 2018, Kyle Williams wrote:
> > >
> > > > Description: Some USB device / host controller combinations seem to have
> > > > problems with Link Power management. In particular it is described that
> > > > the combination of certain Logitech devices and other powered media
> > > > devices such as the Atrus device causes 'not enough bandwidth for
> > > > new device state'error.
> > > >
> > > > This patch creates quirk entries for the tested Logitech device
> > > > indicating LPM should remain disabled for the device.
> > > >
> > > > Signed-off-by: Kyle Williams <[email protected]>
> > > > ---
> > > > drivers/usb/core/quirks.c | 16 ++++++++++++++++
> > > > 1 file changed, 16 insertions(+)
> > > >
> > > > diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
> > > > index 0690fcff0ea2..9403edee4797 100644
> > > > --- a/drivers/usb/core/quirks.c
> > > > +++ b/drivers/usb/core/quirks.c
> > > > @@ -246,6 +246,22 @@ static const struct usb_device_id usb_quirk_list[] = {
> > > > /* Logitech Harmony 700-series */
> > > > { USB_DEVICE(0x046d, 0xc122), .driver_info = USB_QUIRK_DELAY_INIT },
> > > >
> > > > + /* Logitech Flare */
> > > > + { USB_DEVICE(0x046d, 0x0876), .driver_info = USB_QUIRK_NO_LPM },
> > >
> > > This entry is out of order with the preceding entry. And some of the
> > > new entries below are out of order with each other (entries are
> > > supposed to be sorted by Vendor ID, then Product ID).
> > >
> > > Also, perhaps instead of adding all these new entries, we should set
> > > the NO_LPM quirk flag for all Logitech devices?
> > >
> > > Alan Stern
> > Setting USB_QUIRK_NO_LPM for all Logitech devices instead of specific
> > ones seem to be a better solution as there are a lot of other devices
> > that have the issue as well
> >
> > Kyle Williams
>
> I recently found a cause for the "not enough bandwidth for new device state" error.
> Patch just got applied to v4.20-rc6
> 0472bf0 xhci: Prevent U1/U2 link pm states if exit latency is too long
>
> Does it work for your Logitech devices?
>
> -Mathias
>
Hey Mathias,

The fix specified solved the issues reported for all of the listed
products.

Cheers,
~Kyle