]> git.baikalelectronics.ru Git - kernel.git/commit
xhci: Clear the host side toggle manually when endpoint is 'soft reset'
authorMathias Nyman <mathias.nyman@linux.intel.com>
Tue, 24 Feb 2015 16:27:02 +0000 (18:27 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 24 Feb 2015 16:34:32 +0000 (08:34 -0800)
commit7a200dca4f2e02bf2efa728dbcb134d18cf69aac
treed458d88a8453e889b21e4036a4c3d4add33529e8
parent2274a530dcbb5f3696de615d412cfbd0a31dac78
xhci: Clear the host side toggle manually when endpoint is 'soft reset'

Main benefit of this is to get xhci connected USB scanners to work.

Some devices use a clear endpoint halt request as a 'soft reset' even if
the endpoint is not halted. This will clear the toggle and sequence on the
device side. xHCI however refuses to reset a non-halted endpoint, so instead
we need to issue a configure endpoint command on xHCI to clear its host side
toggle and sequence, and get it in sync with the device side.

Tested-by: Mike Mammarella <mikem@crystalorb.net>
Cc: <stable@vger.kernel.org> # v3.18
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/host/xhci-ring.c
drivers/usb/host/xhci.c
drivers/usb/host/xhci.h