Elric Fu
d8aec3dbdf
USB: fix bug of device descriptor got from superspeed device
...
When the Seagate Goflex USB3.0 device is attached to VIA xHCI
host, sometimes the device will downgrade mode to high speed.
By the USB analyzer, I found the device finished the link
training process and worked at superspeed mode. But the device
descriptor got from the device shows the device works at 2.1.
It is very strange and seems like the device controller of
Seagate Goflex has a little confusion.
The first 8 bytes of device descriptor should be:
12 01 00 03 00 00 00 09
But the first 8 bytes of wrong device descriptor are:
12 01 10 02 00 00 00 40
The wrong device descriptor caused the initialization of mass
storage failed. After a while, the device would be recognized
as a high speed device and works fine.
This patch will warm reset the device to fix the issue after
finding the bcdUSB field of device descriptor isn't 0x0300
but the speed mode of device is superspeed.
This patch should be backported to kernels as old as 3.2, or ones that
contain the commit 75d7cf72ab "usbcore:
refine warm reset logic".
Signed-off-by: Elric Fu <elricfu1@gmail.com>
Acked-by: Andiry Xu <Andiry.Xu@amd.com>
Acked-by: Sergei Shtylyov <sshtylyov@mvista.com>
Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Cc: stable@vger.kernel.org
2012-04-11 08:28:58 -07:00
..
accessibility
acpi
Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux
2012-04-06 19:56:04 -07:00
amba
ata
atm
Remove all #inclusions of asm/system.h
2012-03-28 18:30:03 +01:00
auxdisplay
base
regmap: A couple of small fixes for 3.4
2012-04-07 09:56:00 -07:00
bcma
block
Two fixes for regressions:
2012-04-06 17:54:53 -07:00
bluetooth
Merge branch 'akpm' (Andrew's patch-bomb)
2012-04-05 15:30:34 -07:00
cdrom
char
Merge branch 'stable' of git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile
2012-04-06 17:56:20 -07:00
clk
clocksource
Merge branch 'for-linus' of git://git.linaro.org/people/rmk/linux-arm
2012-03-29 16:53:48 -07:00
connector
cpufreq
ARM: SoC fixes for 3.4-rc2
2012-04-05 22:13:39 -07:00
cpuidle
Merge branches 'idle-fix' and 'misc' into release
2012-04-06 21:48:59 -04:00
crypto
dca
devfreq
ARM: global cleanups
2012-03-27 16:03:32 -07:00
dio
dma
Merge branch 'akpm' (Andrew's patch-bomb)
2012-04-05 15:30:34 -07:00
edac
Merge branch 'stable' of git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile
2012-04-06 17:56:20 -07:00
eisa
firewire
Remove all #inclusions of asm/system.h
2012-03-28 18:30:03 +01:00
firmware
gpio
gpio: tegra: Iterate over the correct number of banks
2012-04-04 13:13:18 -06:00
gpu
Merge branch 'akpm' (Andrew's patch-bomb)
2012-04-05 15:30:34 -07:00
hid
simple_open: automatically convert to simple_open()
2012-04-05 15:25:50 -07:00
hsi
hv
hwmon
hwmon: (ad7314) Adds missing spi_dev initialization
2012-04-03 17:08:28 -07:00
hwspinlock
i2c
Disintegrate and delete asm/system.h
2012-03-28 15:58:21 -07:00
ide
Remove all #inclusions of asm/system.h
2012-03-28 18:30:03 +01:00
idle
simple_open: automatically convert to simple_open()
2012-04-05 15:25:50 -07:00
ieee802154
infiniband
Remove all #inclusions of asm/system.h
2012-03-28 18:30:03 +01:00
input
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
2012-03-29 23:17:44 -07:00
iommu
Merge branch 'akpm' (Andrew's patch-bomb)
2012-04-05 15:30:34 -07:00
isdn
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2012-04-02 17:53:39 -07:00
leds
MFD changes for 3.4
2012-03-28 13:56:35 -07:00
lguest
macintosh
Remove all #inclusions of asm/system.h
2012-03-28 18:30:03 +01:00
mca
md
md/raid1,raid10: don't compare excess byte during consistency check.
2012-04-03 15:39:23 +10:00
media
ARM: cleanups of io includes
2012-03-29 18:02:10 -07:00
memstick
message
Disintegrate and delete asm/system.h
2012-03-28 15:58:21 -07:00
mfd
Merge branch 'akpm' (Andrew's patch-bomb)
2012-04-05 15:30:34 -07:00
misc
Merge branch 'akpm' (Andrew's patch-bomb)
2012-04-05 15:30:34 -07:00
mmc
mmc: use really long write timeout to deal with crappy cards
2012-04-05 20:32:34 -04:00
mtd
Merge branch 'akpm' (Andrew's patch-bomb)
2012-04-05 15:30:34 -07:00
net
Merge branch 'stable' of git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile
2012-04-06 17:56:20 -07:00
nfc
nubus
Remove all #inclusions of asm/system.h
2012-03-28 18:30:03 +01:00
of
GPIO changes for v3.4
2012-03-28 14:08:46 -07:00
oprofile
simple_open: automatically convert to simple_open()
2012-04-05 15:25:50 -07:00
parisc
Disintegrate and delete asm/system.h
2012-03-28 15:58:21 -07:00
parport
pci
Two fixes for regressions:
2012-04-06 17:54:53 -07:00
pcmcia
Merge git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia
2012-03-29 16:00:48 -07:00
pinctrl
platform
Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux
2012-03-30 16:45:39 -07:00
pnp
Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux
2012-03-30 16:45:39 -07:00
power
Various small bugfixes and enhancements, plus two new drivers:
2012-03-30 16:09:02 -07:00
pps
ps3
ptp
rapidio
regulator
regulator: Fixes for -rc1
2012-04-04 10:09:30 -07:00
remoteproc
simple_open: automatically convert to simple_open()
2012-04-05 15:25:50 -07:00
rpmsg
rtc
Merge branch 'akpm' (Andrew's patch-bomb)
2012-04-05 15:30:34 -07:00
s390
Disintegrate and delete asm/system.h
2012-03-28 15:58:21 -07:00
sbus
Remove all #inclusions of asm/system.h
2012-03-28 18:30:03 +01:00
scsi
Merge branch 'akpm' (Andrew's patch-bomb)
2012-04-05 15:30:34 -07:00
sfi
sh
SuperH updates for 3.4 merge window
2012-03-30 00:09:17 -07:00
sn
spi
Merge branch 'akpm' (Andrew's patch-bomb)
2012-04-05 15:30:34 -07:00
ssb
staging
Documentation: remove references to /etc/modprobe.conf
2012-03-30 16:03:15 -07:00
target
tcm_fc: Do not free tpg structure during wq allocation failure
2012-04-06 18:57:05 -07:00
tc
thermal
tty
SuperH updates for 3.4-rc1
2012-04-07 09:52:46 -07:00
uio
usb
USB: fix bug of device descriptor got from superspeed device
2012-04-11 08:28:58 -07:00
uwb
simple_open: automatically convert to simple_open()
2012-04-05 15:25:50 -07:00
vhost
video
ARM: SoC fixes for 3.4-rc2
2012-04-05 22:13:39 -07:00
virt
virtio
virtio-pci: switch to PM ops macro to initialise PM functions
2012-03-31 08:09:51 +05:30
vlynq
w1
watchdog
ARM: cleanups of io includes
2012-03-29 18:02:10 -07:00
xen
Two fixes for regressions:
2012-04-06 17:54:53 -07:00
zorro
Kconfig
Merge branch 'for-next' of git://gitorious.org/kernel-hsi/kernel-hsi
2012-04-02 09:50:40 -07:00
Makefile
Merge branch 'for-next' of git://gitorious.org/kernel-hsi/kernel-hsi
2012-04-02 09:50:40 -07:00