From: Greg KH <gregkh@linuxfoundation.org>
To: Dan Williams <dan.j.williams@intel.com>
Cc: Takashi Iwai <tiwai@suse.de>,
Mathias Nyman <mathias.nyman@linux.intel.com>,
USB list <linux-usb@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Sarah Sharp <sarah.a.sharp@linux.intel.com>,
Holger Hans Peter Freyther <holger@moiji-mobile.com>,
Oliver Neukum <oneukum@suse.de>
Subject: Re: [PATCH 02/10] xhci: 'noxhci_port_switch' kernel parameter
Date: Wed, 21 May 2014 09:27:20 +0900 [thread overview]
Message-ID: <20140521002720.GC997@kroah.com> (raw)
In-Reply-To: <CAPcyv4i4jTMMbZWWdb79bJ2f5OUaSin4BN_ukWmVcv7JCiup3g@mail.gmail.com>
On Tue, May 20, 2014 at 03:40:16PM -0700, Dan Williams wrote:
> On Tue, May 20, 2014 at 1:34 PM, Greg KH <gregkh@linuxfoundation.org> wrote:
> > On Tue, May 20, 2014 at 11:25:37AM -0700, Dan Williams wrote:
> >> On Tue, May 20, 2014 at 2:51 AM, Takashi Iwai <tiwai@suse.de> wrote:
> >> > At Tue, 20 May 2014 12:47:36 +0300,
> >> > Mathias Nyman wrote:
> >> >>
> >> >> On 05/20/2014 04:01 AM, Greg KH wrote:
> >> >> > On Thu, May 08, 2014 at 07:25:55PM +0300, Mathias Nyman wrote:
> >> >> >> From: Dan Williams <dan.j.williams@intel.com>
> >> >> >>
> >> >> >> Add a command line switch for disabling ehci port switchover. Useful
> >> >> >> for working around / debugging xhci incompatibilities where ehci
> >> >> >> operation is available.
> >> >> >>
> >> >> >> Reference: http://marc.info/?l=linux-usb&m=138920063001509&w=2
> >> >> >>
> >> >> >> Cc: Sarah Sharp <sarah.a.sharp@linux.intel.com>
> >> >> >> Cc: Mathias Nyman <mathias.nyman@linux.intel.com>
> >> >> >> Cc: Holger Hans Peter Freyther <holger@moiji-mobile.com>
> >> >> >> Suggested-by: Alan Stern <stern@rowland.harvard.edu>
> >> >> >> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
> >> >> >> Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
> >> >> >> ---
> >> >> >> Documentation/kernel-parameters.txt | 3 +++
> >> >> >> drivers/usb/host/pci-quirks.c | 15 +++++++++++++--
> >> >> >> 2 files changed, 16 insertions(+), 2 deletions(-)
> >> >> >>
> >> >> >> diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
> >> >> >> index 4384217..fc3403114 100644
> >> >> >> --- a/Documentation/kernel-parameters.txt
> >> >> >> +++ b/Documentation/kernel-parameters.txt
> >> >> >> @@ -2251,6 +2251,9 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
> >> >> >>
> >> >> >> nox2apic [X86-64,APIC] Do not enable x2APIC mode.
> >> >> >>
> >> >> >> + noxhci_port_switch
> >> >> >> + [USB] Use EHCI instead of XHCI where available
> >> >> >> +
> >> >> >
> >> >> > Ugh, I really don't like new command line options.
> >> >> >
> >> >> > Especially one that isn't very well documented. Why would someone want
> >> >> > to enable this? What problem is it solving? Can we detect this
> >> >> > automatically and do it for the user? Is this just for prototype
> >> >> > hardware that has not shipped? What hardware needs this?
> >> >> >
> >> >> > I need a whole lot more documentation at the very least before I will
> >> >> > apply this.
> >> >> >
> >> >>
> >> >> On Intel hardware with both ehci and xhci controllers we can select if a usb2 port
> >> >> is controlled by ehci or xhci. This capability can be checked from Intel xhci pci
> >> >> config space. Xhci driver checks this on boot and switches over the supported ports.
> >> >>
> >> >> This is a feature in Intel Panther point and later chipsets, in shipped hardware.
> >> >> Its working quite well in most cases, but sometimes vendors claim they support
> >> >> switchover, but then forget to connect some wires, and the usb2 port ends up dead
> >> >> after switching.
> >> >>
> >> >> A recently found case is the Sony VAIO T-series. (I'll send you a different patch
> >> >> for that shortly)
> >> >> http://marc.info/?l=linux-usb&m=139993106029340&w=2
> >> >>
> >> >> This is the extreme case that the usb2 ports appears completely dead.
> >> >> Other reasons are that some devices might work better under ehci than xhci,
> >> >> and users want to enforce the ehci opton. For powermanagement developers it's nice
> >> >> to disable switchover as it turns out some hardware are quirky with port
> >> >> switchover and suspend/resume. (might need to turn port back to ehci before
> >> >> suspending).
> >> >>
> >> >> I don't think we can detect this automatically.
> >> >>
> >> >> Dan, can you add more documentation to this patch?
> >> >
> >> > While we're at it: can we implement a bitmask instead?
> >> >
> >> > We've seen lots of HP laptops having Webcams or BT devices that don't
> >> > work XHCI but only with EHCI. For making them working properly, the
> >> > specific xhci ports have to be disabled. But, we don't want to kill
> >> > the whole XHCI at all. The single boolean option doesn't work for
> >> > such a case.
> >> >
> >>
> >> I'm not sure we want to make this more complex. Ideally this is just
> >> a stop-gap measure for users to workaround incompatibilities in xhci
> >> while the xhci fix is identified.
> >
> > We can't use a kernel command line option as a "stop-gap", sorry. Let's
> > just fix the real problem here.
> >
>
> Greg,
>
> Sorry, I don't think it is fair to users to force them to re-compile
> their kernel to get their device to work.
I totally agree.
> Granted, I'm new to USB
> development, but the rate of reports of endpoint devices that mess up
> and require quirks in the hcd-driver or usb-core seems un-ending to
> me. So, I don't think it is fair to expect that the tide of quirky
> devices will be stemmed in any reasonable amount of time. Having a
> "works with noxhci_port_switch" report from users is good data (hmm, I
> think a printk to tell users to file a report upstream if the option
> resolves their issue is needed).
How about just adding a debugfs file instead? That way, once you fix
this, we can then remove it and no one will care.
thanks,
greg k-h
next prev parent reply other threads:[~2014-05-21 2:01 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-08 16:25 [PATCH 00/10] xhci: features for usb-next Mathias Nyman
2014-05-08 16:25 ` [PATCH 01/10] xhci: fix wrong port number reported when setting USB2.0 hardware LPM Mathias Nyman
2014-05-08 16:25 ` [PATCH 02/10] xhci: 'noxhci_port_switch' kernel parameter Mathias Nyman
2014-05-20 1:01 ` Greg KH
2014-05-20 9:47 ` Mathias Nyman
2014-05-20 9:51 ` Takashi Iwai
2014-05-20 18:25 ` Dan Williams
2014-05-20 19:04 ` Takashi Iwai
2014-05-20 20:34 ` Greg KH
2014-05-20 22:40 ` Dan Williams
2014-05-21 0:27 ` Greg KH [this message]
2014-05-21 6:21 ` Dan Williams
2014-05-21 6:31 ` Greg KH
2014-05-21 17:29 ` Dan Williams
2014-05-21 17:52 ` Alan Stern
2014-05-21 21:59 ` Greg KH
2014-05-24 6:39 ` Holger Hans Peter Freyther
2014-05-24 14:13 ` Dan Williams
2014-07-11 10:08 ` Holger Hans Peter Freyther
2014-05-08 16:25 ` [PATCH 03/10] usb: catch attempts to submit urbs with a vmalloc'd transfer buffer Mathias Nyman
2014-05-08 16:21 ` Dan Williams
2014-05-12 15:01 ` Mathias Nyman
2014-05-20 0:58 ` Greg KH
2014-05-08 16:22 ` David Laight
2014-05-08 16:32 ` Dan Williams
2014-05-08 16:47 ` Joe Perches
2014-05-08 17:05 ` Dan Williams
2014-05-08 16:25 ` [PATCH 04/10] usb: xhci: Use IS_ENABLED() macro Mathias Nyman
2014-05-08 16:25 ` [PATCH 05/10] xhci: Use pci_enable_msix_exact() instead of pci_enable_msix() Mathias Nyman
2014-05-08 16:25 ` [PATCH 06/10] xhci: Report max device limit when Enable Slot command fails Mathias Nyman
2014-05-08 16:26 ` [PATCH 07/10] xhci: Use command structures when queuing commands on the command ring Mathias Nyman
2014-06-05 22:16 ` Dan Williams
2014-06-06 8:14 ` Mathias Nyman
2014-05-08 16:26 ` [PATCH 08/10] xhci: Add a global command queue Mathias Nyman
2014-05-08 16:26 ` [PATCH 09/10] xhci: Use completion and status in " Mathias Nyman
2014-05-08 16:26 ` [PATCH 10/10] xhci: rework command timeout and cancellation, Mathias Nyman
2014-05-15 15:44 ` [PATCH 00/10] xhci: features for usb-next Mathias Nyman
2014-05-20 1:04 ` Greg KH
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=20140521002720.GC997@kroah.com \
--to=gregkh@linuxfoundation.org \
--cc=dan.j.williams@intel.com \
--cc=holger@moiji-mobile.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=mathias.nyman@linux.intel.com \
--cc=oneukum@suse.de \
--cc=sarah.a.sharp@linux.intel.com \
--cc=tiwai@suse.de \
/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