linux-imx/drivers/usb/host
Sergei Shtylyov 81da73dcca EHCI: only power off port if over-current is active
[ upstream commit 81463c1d70 ]

MAX4967 USB power supply chip we use on our boards signals over-current when
power is not enabled; once it's enabled, over-current signal returns to normal.
That unfortunately caused the endless stream of "over-current change on port"
messages. The EHCI root hub code reacts on every over-current signal change
with powering off the port -- such change event is generated the moment the
port power is enabled, so once enabled the power is immediately cut off.
I think we should only cut off power when we're seeing the active over-current
signal, so I'm adding such check to that code. I also think that the fact that
we've cut off the port power should be reflected in the result of GetPortStatus
request immediately, hence I'm adding a PORTSCn register readback after write...

Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Cc: stable@kernel.org
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Andi Kleen <ak@linux.intel.com>
2011-08-01 13:55:02 -07:00
..
whci USB: Change the scatterlist type in struct urb 2010-05-20 13:21:41 -07:00
ehci-atmel.c USB: ehci-atmel.c: use resource_size() 2010-03-02 14:53:18 -08:00
ehci-au1xxx.c USB: EHCI: fix controller wakeup flag settings during suspend 2010-05-20 13:21:45 -07:00
ehci-dbg.c USB: EHCI: split ehci_qh into hw and sw parts 2009-09-23 06:46:29 -07:00
ehci-fsl.c USB: EHCI: fix controller wakeup flag settings during suspend 2010-05-20 13:21:45 -07:00
ehci-fsl.h
ehci-hcd.c USB: EHCI: fix DMA deallocation bug 2011-03-31 11:57:40 -07:00
ehci-hub.c EHCI: only power off port if over-current is active 2011-08-01 13:55:02 -07:00
ehci-ixp4xx.c USB: EHCI: use the new clear_tt_buffer interface 2009-07-12 15:16:39 -07:00
ehci-mem.c USB: EHCI: defer reclamation of siTDs 2010-04-22 15:18:28 -07:00
ehci-mxc.c USB: ehci-mxc: bail out on transceiver problems 2010-06-30 08:16:06 -07:00
ehci-omap.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6 2010-05-20 21:26:12 -07:00
ehci-orion.c USB: ehci-orion.c: use resource_size() 2010-03-02 14:53:17 -08:00
ehci-pci.c USB: EHCI: ASPM quirk of ISOC on AMD Hudson 2011-03-31 11:57:40 -07:00
ehci-ppc-of.c USB: ehci-ppc-of: problems in unwind 2010-09-20 13:36:18 -07:00
ehci-ps3.c USB: EHCI: use the new clear_tt_buffer interface 2009-07-12 15:16:39 -07:00
ehci-q.c USB: EHCI: unlink unused QHs when the controller is stopped 2011-04-28 08:21:08 -07:00
ehci-sched.c USB: EHCI: ASPM quirk of ISOC on AMD SB800 2011-03-31 11:57:37 -07:00
ehci-w90x900.c USB: Add nuvoton Ehci driver for w90p910 platform 2009-09-23 06:46:20 -07:00
ehci-xilinx-of.c of/usb: fix build error due to of_node pointer move 2010-06-02 13:35:02 -06:00
ehci.h USB: EHCI: ASPM quirk of ISOC on AMD SB800 2011-03-31 11:57:37 -07:00
fhci-dbg.c USB: make hcd.h public (drivers dependency) 2010-05-20 13:21:30 -07:00
fhci-hcd.c Merge remote branch 'origin' into secretlab/next-devicetree 2010-05-22 00:36:56 -06:00
fhci-hub.c USB: make hcd.h public (drivers dependency) 2010-05-20 13:21:30 -07:00
fhci-mem.c USB: make hcd.h public (drivers dependency) 2010-05-20 13:21:30 -07:00
fhci-q.c USB: make hcd.h public (drivers dependency) 2010-05-20 13:21:30 -07:00
fhci-sched.c USB: make hcd.h public (drivers dependency) 2010-05-20 13:21:30 -07:00
fhci-tds.c USB: make hcd.h public (drivers dependency) 2010-05-20 13:21:30 -07:00
fhci.h USB: FHCI: cq_get() should check kfifo_out()'s return value 2010-05-20 13:21:46 -07:00
hwa-hc.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
imx21-dbg.c USB: MXC: Add i.MX21 specific USB host controller driver. 2010-03-02 14:52:55 -08:00
imx21-hcd.c USB: make hcd.h public (drivers dependency) 2010-05-20 13:21:30 -07:00
imx21-hcd.h USB: MXC: Add i.MX21 specific USB host controller driver. 2010-03-02 14:52:55 -08:00
isp116x-hcd.c USB: make hcd.h public (drivers dependency) 2010-05-20 13:21:30 -07:00
isp116x.h USB: add missing KERN_* constants to printks 2009-03-24 16:20:30 -07:00
isp1362-hcd.c USB: isp1362-hcd, fix double lock 2010-06-30 08:16:06 -07:00
isp1362.h USB: isp1362: fix inw warning on Blackfin systems 2010-06-04 13:16:18 -07:00
isp1760-hcd.c USB: isp1760: Implement solution for erratum 2 2011-03-31 11:58:53 -07:00
isp1760-hcd.h USB: isp1760: Implement solution for erratum 2 2011-03-31 11:58:53 -07:00
isp1760-if.c Merge remote branch 'origin' into secretlab/next-devicetree 2010-05-22 00:36:56 -06:00
Kconfig USB: ohci: Add Kconfig entries for ohci-omap3 2010-05-20 13:21:44 -07:00
Makefile USB: xhci: rename driver to xhci_hcd 2010-03-19 07:24:08 -07:00
ohci-at91.c USB: ohci-at91: fix power management hanging 2010-04-30 09:25:12 -07:00
ohci-au1xxx.c const: constify remaining dev_pm_ops 2009-12-15 08:53:25 -08:00
ohci-da8xx.c USB: OHCI: DA8xx/OMAP-L1x: fix up macro rename 2010-04-22 15:18:24 -07:00
ohci-dbg.c USB: Convert concatenated __FILE__ to %s, __FILE__ 2010-03-02 14:54:59 -08:00
ohci-ep93xx.c USB: ohci-ep93xx.c: remove unused variable 2009-09-23 06:46:34 -07:00
ohci-hcd.c OHCI: work around for nVidia shutdown problem 2011-08-01 13:54:53 -07:00
ohci-hub.c USB: OHCI: don't look at the root hub to get the number of ports 2010-04-30 09:25:10 -07:00
ohci-lh7a404.c USB: Convert concatenated __FILE__ to %s, __FILE__ 2010-03-02 14:54:59 -08:00
ohci-mem.c
ohci-omap.c omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
ohci-omap3.c USB: ohci: introduce omap3 ohci-hcd driver 2010-05-20 13:21:44 -07:00
ohci-pci.c OHCI: fix regression caused by nVidia shutdown workaround 2011-08-01 13:54:53 -07:00
ohci-pnx4008.c USB: fix I2C API usage in ohci-pnx4008. 2010-03-02 14:55:15 -08:00
ohci-pnx8550.c USB: automatically enable RHSC interrupts 2008-08-21 10:26:38 -07:00
ohci-ppc-of.c of: Remove duplicate fields from of_platform_driver 2010-05-22 00:10:40 -06:00
ohci-ppc-soc.c USB: Convert concatenated __FILE__ to %s, __FILE__ 2010-03-02 14:54:59 -08:00
ohci-ps3.c usb/ps3: Add missing annotations 2009-06-16 14:17:32 +10:00
ohci-pxa27x.c [ARM] pxa: fix incorrect CONFIG_CPU_PXA27x to CONFIG_PXA27x 2010-07-15 17:20:23 +08:00
ohci-q.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
ohci-s3c2410.c USB: S3C: Move usb-control.h to platform include 2009-03-24 16:20:45 -07:00
ohci-sa1111.c USB: Convert concatenated __FILE__ to %s, __FILE__ 2010-03-02 14:54:59 -08:00
ohci-sh.c USB: automatically enable RHSC interrupts 2008-08-21 10:26:38 -07:00
ohci-sm501.c USB: automatically enable RHSC interrupts 2008-08-21 10:26:38 -07:00
ohci-ssb.c USB: automatically enable RHSC interrupts 2008-08-21 10:26:38 -07:00
ohci-tmio.c usb: struct device - replace bus_id with dev_name(), dev_set_name() 2009-01-07 09:59:52 -08:00
ohci.h OHCI: work around for nVidia shutdown problem 2011-08-01 13:54:53 -07:00
oxu210hp-hcd.c USB: straighten out port feature vs. port status usage 2010-05-20 13:21:31 -07:00
oxu210hp.h USB: replace uses of __constant_{endian} 2009-03-24 16:20:33 -07:00
pci-quirks.c USB: OHCI: fix another regression for NVIDIA controllers 2011-08-01 13:55:01 -07:00
pci-quirks.h
r8a66597-hcd.c USB: r8a66597: Fix failure in change of status 2010-06-30 08:16:05 -07:00
r8a66597.h usb: r8a66597-hcd: Change mistake of the outsw function 2010-11-22 11:00:02 -08:00
sl811_cs.c pcmcia: dev_node removal (drivers with updated printk call) 2010-05-10 10:23:15 +02:00
sl811-hcd.c USB: straighten out port feature vs. port status usage 2010-05-20 13:21:31 -07:00
sl811.h
u132-hcd.c USB: fix u132-hcd code/data warning 2010-05-20 13:21:43 -07:00
uhci-debug.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
uhci-hcd.c USB: make hcd.h public (drivers dependency) 2010-05-20 13:21:30 -07:00
uhci-hcd.h USB: replace uses of __constant_{endian} 2009-03-24 16:20:33 -07:00
uhci-hub.c USB: add missing delay during remote wakeup 2010-01-20 15:24:34 -08:00
uhci-q.c USB: uhci: rm repeatedly evaluation for urbp->qh 2009-09-23 06:46:30 -07:00
xhci-dbg.c USB: xhci: Correct assumptions about number of rings per endpoint. 2010-05-20 13:21:38 -07:00
xhci-ext-caps.h USB: xhci: Fix finding extended capabilities registers 2010-03-02 14:55:02 -08:00
xhci-hub.c xhci: Don't let the USB core disable SuperSpeed ports. 2010-12-14 23:40:12 +01:00
xhci-mem.c USB: xhci - fix interval calculation for FS isoc endpoints 2011-08-01 13:54:56 -07:00
xhci-pci.c USB: xhci: Print NEC firmware version. 2010-06-04 13:16:19 -07:00
xhci-ring.c xhci: Update internal dequeue pointers after stalls. 2011-03-31 11:58:53 -07:00
xhci.c xhci: Reject double add of active endpoints. 2011-08-01 13:54:57 -07:00
xhci.h USB: xhci - fix unsafe macro definitions 2011-04-28 08:21:09 -07:00