android_kernel_samsung_msm8976/drivers/usb/host
Sarah Sharp 21da84a893 USB: ehci shutdown refactored
This patch refactors some shutdown code so it can be shared between
ehci_stop() and ehci_shutdown().

This also fixes a couple potential bugs:
 - ehci_shutdown() was not locking ehci->lock before halting the HC.
 - ehci_shutdown() didn't disable the watchdog and IAA timers.
 - ehci_stop() was resetting the host controller when it may have been
   running, which the EHCI spec says "may result in undefined behavior".

ehci_stop() was calling port_power() to turn off the ports, which waited
20ms after applying the port change.  The msleep was for the case where
the HC might take 20ms to turn the ports on; since we're shutting them
off, we can avoid the msleep and just use ehci_turn_off_ports().

ehci_stop() doesn't need to clear the intr_enable register or revert
ownership of the companion controllers to the BIOS, because the host
controller reset should have done that.  There might be a buggy host
controller that doesn't follow the reset rules, but for now we assume
it's redundant code and remove it.

[ A subsequent patch will cancel the timers later ... this version
carries forward existing bugs where timers could get re-armed
after they're canceled. ]

Signed-off-by: Sarah Sharp <sarah.a.sharp@intel.com>
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2008-04-24 21:16:49 -07:00
..
ehci-au1xxx.c USB: ehci minor SOC bus glue fixes 2008-04-24 21:16:35 -07:00
ehci-dbg.c USB: remove dev->power.power_state 2008-04-24 21:16:41 -07:00
ehci-fsl.c USB: ehci minor SOC bus glue fixes 2008-04-24 21:16:35 -07:00
ehci-fsl.h ehci-fsl: fix cache coherency problem on system with large memory 2007-05-23 20:14:15 -07:00
ehci-hcd.c USB: ehci shutdown refactored 2008-04-24 21:16:49 -07:00
ehci-hub.c USB: ehci: minor cleanups 2008-04-24 21:16:34 -07:00
ehci-ixp4xx.c USB: ehci minor SOC bus glue fixes 2008-04-24 21:16:35 -07:00
ehci-mem.c Revert "USB: EHCI cpufreq fix" 2007-08-20 23:38:44 -07:00
ehci-orion.c plat-orion: make ehci-orion available for all Orion families 2008-03-27 14:51:40 -04:00
ehci-pci.c USB: clarify usage of hcd->suspend/resume methods 2008-04-24 21:16:48 -07:00
ehci-ppc-of.c USB: add ehci-ppc-of bus glue (device-tree aware) 2008-02-01 14:35:01 -08:00
ehci-ppc-soc.c USB: ehci minor SOC bus glue fixes 2008-04-24 21:16:35 -07:00
ehci-ps3.c USB: remove dev->power.power_state 2008-04-24 21:16:41 -07:00
ehci-q.c USB: ehci tolerates some buggy devices 2008-04-24 21:16:35 -07:00
ehci-sched.c USB: minor ehci xITD simplifications 2008-04-24 21:16:38 -07:00
ehci.h usb: ehci should use u16 for isochronous intervals 2008-02-01 14:35:06 -08:00
isp116x-hcd.c USB: remove dev->power.power_state 2008-04-24 21:16:41 -07:00
isp116x.h USB: isp116x: fix enumeration on boot 2008-03-04 14:57:43 -08:00
Kconfig USB: Remove EXPERIMENTAL designation from USB_EHCI_ROOT_HUB_TT. 2008-04-24 21:16:43 -07:00
Makefile USB: r8a66597-hcd: host controller driver for R8A66597 2007-07-12 16:29:45 -07:00
ohci-at91.c USB: OHCI: host-controller resumes leave root hub suspended 2008-04-24 21:16:48 -07:00
ohci-au1xxx.c usb host: fix platform driver hotplug/coldplug 2008-04-11 08:06:44 -07:00
ohci-dbg.c USB: remove dev->power.power_state 2008-04-24 21:16:41 -07:00
ohci-ep93xx.c USB: OHCI: host-controller resumes leave root hub suspended 2008-04-24 21:16:48 -07:00
ohci-hcd.c USB: ohci: fix 2 timers to fire at jiffies + 1s 2008-04-02 15:06:09 -07:00
ohci-hub.c USB: OHCI: host-controller resumes leave root hub suspended 2008-04-24 21:16:48 -07:00
ohci-lh7a404.c usb host: fix platform driver hotplug/coldplug 2008-04-11 08:06:44 -07:00
ohci-mem.c USB: OHCI handles more ZFMicro quirks 2007-10-12 14:54:59 -07:00
ohci-omap.c USB: OHCI: host-controller resumes leave root hub suspended 2008-04-24 21:16:48 -07:00
ohci-pci.c USB: OHCI: host-controller resumes leave root hub suspended 2008-04-24 21:16:48 -07:00
ohci-pnx4008.c usb host: fix platform driver hotplug/coldplug 2008-04-11 08:06:44 -07:00
ohci-pnx8550.c usb host: fix platform driver hotplug/coldplug 2008-04-11 08:06:44 -07:00
ohci-ppc-of.c [POWERPC] mpc5200: normalize compatible property bindings 2008-01-26 15:26:01 -07:00
ohci-ppc-soc.c usb host: fix platform driver hotplug/coldplug 2008-04-11 08:06:44 -07:00
ohci-ps3.c USB: remove dev->power.power_state 2008-04-24 21:16:41 -07:00
ohci-pxa27x.c USB: OHCI: host-controller resumes leave root hub suspended 2008-04-24 21:16:48 -07:00
ohci-q.c USB: ohci: fix 2 timers to fire at jiffies + 1s 2008-04-02 15:06:09 -07:00
ohci-s3c2410.c usb host: fix platform driver hotplug/coldplug 2008-04-11 08:06:44 -07:00
ohci-sa1111.c
ohci-sh.c usb host: fix platform driver hotplug/coldplug 2008-04-11 08:06:44 -07:00
ohci-sm501.c USB: OHCI: host-controller resumes leave root hub suspended 2008-04-24 21:16:48 -07:00
ohci-ssb.c USB: OHCI: host-controller resumes leave root hub suspended 2008-04-24 21:16:48 -07:00
ohci.h USB: convert ohci debug files to use debugfs instead of sysfs 2008-02-01 14:34:52 -08:00
pci-quirks.c PCI: use dev_printk in quirk messages 2008-02-01 15:04:26 -08:00
pci-quirks.h
r8a66597-hcd.c USB: remove dev->power.power_state 2008-04-24 21:16:41 -07:00
r8a66597.h USB: Spelling fixes 2008-02-01 14:34:57 -08:00
sl811-hcd.c USB: remove dev->power.power_state 2008-04-24 21:16:41 -07:00
sl811.h
sl811_cs.c some kmalloc/memset ->kzalloc (tree wide) 2007-07-19 10:04:50 -07:00
u132-hcd.c USB: clarify usage of hcd->suspend/resume methods 2008-04-24 21:16:48 -07:00
uhci-debug.c USB: add urb->unlinked field 2007-10-12 14:55:19 -07:00
uhci-hcd.c USB: clarify usage of hcd->suspend/resume methods 2008-04-24 21:16:48 -07:00
uhci-hcd.h USB: Eliminate urb->status usage! 2007-10-12 14:55:23 -07:00
uhci-hub.c
uhci-q.c USB: fix scheduling of Iso URBs in uhci-hcd 2007-10-25 12:18:43 -07:00