From: Greg Kroah-Hartman <gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org>
To: Sarah Sharp <sarah.a.sharp-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
Cc: linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Alan Stern
<stern-nwvwT67g6+6dFdvTe/nMLpVzexx5G7lz@public.gmane.org>,
linux-bluetooth-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
gigaset307x-common-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org,
netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-wireless-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
ath9k-devel-xDcbHBWguxHbcTqmT+pZeQ@public.gmane.org,
libertas-dev-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
users-poMEt7QlJxcwIE2E9O76wjtx2kNaKg5H@public.gmane.org
Subject: Re: [RFC 13/13] USB: Disable hub-initiated LPM for comms devices.
Date: Thu, 17 May 2012 07:49:51 -0700 [thread overview]
Message-ID: <20120517144951.GB27597@kroah.com> (raw)
In-Reply-To: <20120517045220.GA4772@xanatos>
On Wed, May 16, 2012 at 09:52:20PM -0700, Sarah Sharp wrote:
> On Wed, May 16, 2012 at 04:20:19PM -0700, Greg Kroah-Hartman wrote:
> > On Wed, May 16, 2012 at 03:45:28PM -0700, Sarah Sharp wrote:
> > > [Resending with a smaller Cc list]
> > >
> > > Hub-initiated LPM is not good for USB communications devices. Comms
> > > devices should be able to tell when their link can go into a lower power
> > > state, because they know when an incoming transmission is finished.
> > > Ideally, these devices would slam their links into a lower power state,
> > > using the device-initiated LPM, after finishing the last packet of their
> > > data transfer.
> > >
> > > If we enable the idle timeouts for the parent hubs to enable
> > > hub-initiated LPM, we will get a lot of useless LPM packets on the bus
> > > as the devices reject LPM transitions when they're in the middle of
> > > receiving data. Worse, some devices might blindly accept the
> > > hub-initiated LPM and power down their radios while they're in the
> > > middle of receiving a transmission.
> > >
> > > The Intel Windows folks are disabling hub-initiated LPM for all USB
> > > communications devices under a xHCI USB 3.0 host. In order to keep
> > > the Linux behavior as close as possible to Windows, we need to do the
> > > same in Linux.
> >
> > How is the USB core on Windows determining that LPM should be turned off
> > for these devices? Surely they aren't modifying each individual driver
> > like this is, right? Any way we also can do this in the core?
>
> No, I don't think they're modifying individual drivers. Maybe they
> placed a shim/filter driver below other drivers?
They can do this in their driver by just watching the device class type.
> Basically, I don't know the exact details of what the Windows folks are
> doing. The recommendation from the Intel Windows team was simply to
> turn hub-initiated LPM off for "all communications devices". Perhaps
> the Windows USB core is looking for specific USB class codes? Or maybe
> it has some older API that lets the core know it's a communications
> device?
>
> I'm not really sure we can do it in the USB core with out basically
> duplicating all the class/PID/VID matching in the communications driver.
> I think just adding a flag might be the best way. I'm open to
> suggestions though.
You can detect something as "simple" as a class type, which I bet is all
that Windows is going to be able to do as well.
> > Or, turn it around the other way, and only enable it if we know it's
> > safe to do so, in each driver, but I guess that would be even messier.
>
> Yeah, I think it would be messier.
Ok, this is probably the best solution for us as well, sorry for the
noise.
greg k-h
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2012-05-17 14:49 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-05-16 21:54 [RFC 00/13] USB 3.0 Link Power Management (LPM) support Sarah Sharp
[not found] ` <cover.1337203535.git.sarah.a.sharp-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2012-05-16 21:55 ` [RFC 05/13] USB: Allow drivers to disable hub-initiated LPM Sarah Sharp
2012-05-16 21:55 ` [RFC 13/13] USB: Disable hub-initiated LPM for comms devices Sarah Sharp
[not found] ` <3c634afbbe15598cdcbf77bb9393d22ad4bfa373.1337203535.git.sarah.a.sharp-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2012-05-17 17:07 ` Tilman Schmidt
[not found] ` <4FB53054.9070309-ZTO5kqT2PaM@public.gmane.org>
2012-05-17 17:31 ` Sarah Sharp
2012-05-17 17:50 ` Andre Bella
2012-05-18 22:38 ` Tilman Schmidt
[not found] ` <4FB6CF71.7080307-ZTO5kqT2PaM@public.gmane.org>
2012-05-18 23:09 ` Sarah Sharp
2012-05-16 22:45 ` [RFC 05/13] USB: Allow drivers to disable hub-initiated LPM Sarah Sharp
2012-05-16 22:45 ` [RFC 13/13] USB: Disable hub-initiated LPM for comms devices Sarah Sharp
2012-05-16 23:20 ` Greg Kroah-Hartman
[not found] ` <20120516232019.GA960-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2012-05-17 4:52 ` Sarah Sharp
2012-05-17 14:49 ` Greg Kroah-Hartman [this message]
2012-05-17 16:29 ` Sarah Sharp
2012-05-17 16:39 ` Greg Kroah-Hartman
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=20120517144951.GB27597@kroah.com \
--to=gregkh-hqyy1w1ycw8ekmwlsbkhg0b+6bgklq7r@public.gmane.org \
--cc=ath9k-devel-xDcbHBWguxHbcTqmT+pZeQ@public.gmane.org \
--cc=gigaset307x-common-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
--cc=libertas-dev-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
--cc=linux-bluetooth-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-wireless-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=sarah.a.sharp-VuQAYsv1563Yd54FQh9/CA@public.gmane.org \
--cc=stern-nwvwT67g6+6dFdvTe/nMLpVzexx5G7lz@public.gmane.org \
--cc=users-poMEt7QlJxcwIE2E9O76wjtx2kNaKg5H@public.gmane.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).