Linux kernel source tree
Go to file
William Wu debf378724 usb: dwc2: hcd: do not disable non-split periodic channels
The dwc2 programming guide section 3.5 'Halting a Channel'
says that the application can disable any channel by
programming the HCCHARn register with the HCCHARn.ChDis
and HCCHARn.ChEna bits set to 1'b1. This enables the
dwc_otg host to flush the posted requests (if any) and
generates a Channel Halted interrupt.

But it also requires that channel disable must not be
programmed for non-split periodic channels. At the end
of the next uframe/frame (in the worst case), the core
generates a channel halted and disables the channel
automatically.

If we disable non-spilt periodic channels to halt the
channels, it will easily to cause data transfer fail.
A typical case is take photo with usb camera or close
usb camera, Specifically, the observed order is:

1. uvc driver calls usb_kill_urb
2. usb_kill_urb calls urb_dequeue to cancel urb
3. urb_dequeue call dwc_otg_hc_halt to disable
   non-spilt periodic channels
4. usb core doesn't halt the non-spilt periodic
   channels immediately, and the application
   reallocates the channels for other transactions
   without waiting for the HCINTn.ChHltd interrupt.
5. uvc driver calls usb_set_interface to start
   control transfer, and gets a channel which used
   for non-spilt periodic transfer before. The core
   generates a channel halted and disables the channel
   automatically. This cause control transfer fail.

Change-Id: I95424a99b77b552396a9fb95a5058258270ed4c2
Signed-off-by: William Wu <william.wu@rock-chips.com>
2019-10-21 16:57:41 +08:00
arch arm64: Makerfile: try using python script for auto convert bmp logo 2019-10-21 16:17:04 +08:00
block Merge remote branch 'android-4.19' of https://android.googlesource.com/kernel/common 2019-06-22 22:26:14 +08:00
certs rk: revert to v4.4 2019-02-10 00:33:21 +08:00
crypto This is the 4.19.45 stable release 2019-05-22 08:00:39 +02:00
Documentation ASoC: rt5651: Porting to rockchip platform 2019-10-21 11:00:32 +08:00
drivers usb: dwc2: hcd: do not disable non-split periodic channels 2019-10-21 16:57:41 +08:00
firmware
fs Merge remote branch 'android-4.19' of https://android.googlesource.com/kernel/common 2019-06-22 22:26:14 +08:00
include phy: add cp_test callback 2019-10-16 17:35:55 +08:00
init mm: slub: Add SLUB_SYSFS 2019-09-24 16:01:42 +08:00
ipc This is the 4.19.51 stable release 2019-06-15 16:12:59 +02:00
kernel Revert "FROMLIST: sched/topology: Make Energy Aware Scheduling depend on schedutil" 2019-10-15 11:14:27 +08:00
lib Merge remote branch 'android-4.19' of https://android.googlesource.com/kernel/common 2019-06-22 22:26:14 +08:00
LICENSES
mm mm: slub: Add SLUB_SYSFS 2019-09-24 16:01:42 +08:00
net ipv6: ip6_output: fix for Android 7.1 CTS 2019-09-26 18:54:17 +08:00
samples samples: mei: use /dev/mei0 instead of /dev/mei 2019-02-15 08:10:11 +01:00
scripts scripts/bmpconvert: add bmpconvert for auto convert bmpfile 2019-08-29 18:38:49 +08:00
security OP-TEE: fix clang warning 2019-08-19 08:52:08 +08:00
sound ASoC: rt5651: Porting to rockchip platform 2019-10-21 11:00:32 +08:00
tools This is the 4.19.53 stable release 2019-06-19 10:10:24 +02:00
usr
virt KVM: arm/arm64: Move cc/it checks under hyp's Makefile to avoid instrumentation 2019-06-19 08:18:04 +02:00
.checkpatch.conf
.clang-format
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore rk: .gitignore: ignore boot.img/kernel.img/resource.img/zboot.mg 2019-02-15 18:31:05 +08:00
.mailmap rk: revert to v4.4 2019-02-10 00:33:21 +08:00
.scmversion
build.config.cuttlefish.aarch64 ANDROID: Enable LTO and CFI 2019-05-22 17:25:23 +00:00
build.config.cuttlefish.x86_64 ANDROID: Enable LTO and CFI 2019-05-22 17:25:23 +00:00
COPYING
CREDITS
Kbuild rk: revert to v4.4 2019-02-10 00:33:21 +08:00
Kconfig
logo_kernel.bmp rk: logo: update logo file 2019-08-29 19:45:37 +08:00
logo.bmp rk: logo: update logo file 2019-08-29 19:45:37 +08:00
MAINTAINERS platform/x86: Add Intel AtomISP2 dummy / power-management driver 2019-04-20 09:16:02 +02:00
Makefile rk: use gcc-wrapper.py only when CC is gcc 2019-10-11 19:19:24 +08:00
README

Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.
See Documentation/00-INDEX for a list of what is contained in each file.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.