linux/drivers
William Wu 8c6207b121 FROMLIST: usb: dwc2: fix isoc split in transfer with no data
If isoc split in transfer with no data (the length of DATA0
packet is zero), we can't simply return immediately. Because
the DATA0 can be the first transaction or the second transaction
for the isoc split in transaction. If the DATA0 packet with no
data is in the first transaction, we can return immediately.
But if the DATA0 packet with no data is in the second transaction
of isoc split in transaction sequence, we need to increase the
qtd->isoc_frame_index and giveback urb to device driver if needed,
otherwise, the MDATA packet will be lost.

A typical test case is that connect the dwc2 controller with an
usb hs Hub (GL852G-12), and plug an usb fs audio device (Plantronics
headset) into the downstream port of Hub. Then use the usb mic
to record, we can find noise when playback.

In the case, the isoc split in transaction sequence like this:

- SSPLIT IN transaction
- CSPLIT IN transaction
  - MDATA packet (176 bytes)
- CSPLIT IN transaction
  - DATA0 packet (0 byte)

This patch use both the length of DATA0 and qtd->isoc_split_offset
to check if the DATA0 is in the second transaction.

Change-Id: Ie36cf25c4026f45db719c6eed036028159748b9f
Signed-off-by: William Wu <william.wu@rock-chips.com>
(am from https://patchwork.kernel.org/patch/10393777/)
2018-05-14 19:38:11 +08:00
..
accessibility
acpi Merge branch 'linux-linaro-lsk-v4.4-android' of git://git.linaro.org/kernel/linux-linaro-stable.git 2018-04-08 18:28:30 +08:00
adc rk: add SPDX license identifier to files with no license 2018-01-31 20:56:06 +08:00
amba
android Merge branch 'linux-linaro-lsk-v4.4-android' of git://git.linaro.org/kernel/linux-linaro-stable.git 2018-03-09 19:10:14 +08:00
ata Merge branch 'linux-linaro-lsk-v4.4-android' of git://git.linaro.org/kernel/linux-linaro-stable.git 2018-04-08 18:28:30 +08:00
atm atm: horizon: Fix irq release error 2017-12-16 10:33:55 +01:00
auxdisplay
base PM / OPP: Update voltage even if target rate is equal to initial rate 2018-05-08 15:52:11 +08:00
bcma UPSTREAM: gpio: change member .dev to .parent 2018-02-28 14:55:00 +08:00
block mtip32xx: use runtime tag to initialize command header 2018-03-24 10:58:44 +01:00
bluetooth Merge branch 'linux-linaro-lsk-v4.4-android' of git://git.linaro.org/kernel/linux-linaro-stable.git 2018-04-08 18:28:30 +08:00
bus sunxi-rsb: Include OF based modalias in device uevent 2018-01-10 09:27:09 +01:00
cdrom
char ipmi/watchdog: fix wdog hang on panic waiting for ipmi response 2018-03-24 10:58:45 +01:00
cir rk: add SPDX license identifier to files with no license 2018-01-31 20:56:06 +08:00
clk clk: rockchip: rk3288: export PCLK_PD_PMU and PCLK_PD_ALIVE clock id 2018-05-14 16:21:11 +08:00
clocksource clocksource/arm_global_timer: reconfigure clockevents after cpufreq change 2018-03-06 17:29:54 +08:00
cmmb rk: add SPDX license identifier to files with no license 2018-01-31 20:56:06 +08:00
connector
cpufreq Merge branch 'linux-linaro-lsk-v4.4-android' of git://git.linaro.org/kernel/linux-linaro-stable.git 2018-04-08 18:28:30 +08:00
cpuidle Merge branch 'linux-linaro-lsk-v4.4' into linux-linaro-lsk-v4.4-android 2018-01-22 11:50:22 +05:30
crypto crypto: s5p-sss - Fix kernel Oops in AES-ECB mode 2018-02-25 11:03:55 +01:00
dca
devfreq PM / devfreq: rockchip_dmc: Fix low voltage when probe 2018-05-09 09:25:00 +08:00
dio
dma Merge branch 'linux-linaro-lsk-v4.4-android' of git://git.linaro.org/kernel/linux-linaro-stable.git 2018-04-08 18:28:30 +08:00
dma-buf
edac EDAC, octeon: Fix an uninitialized variable warning 2018-02-16 20:09:47 +01:00
eisa
extcon Merge branch 'linux-linaro-lsk-v4.4-android' of git://git.linaro.org/kernel/linux-linaro-stable.git 2017-12-01 11:04:13 +08:00
firewire
firmware firmware: rockchip: add sip_smc_get_suspend_info() 2018-05-09 18:27:42 +08:00
fmc
fpga
gpio Merge branch 'linux-linaro-lsk-v4.4-android' of git://git.linaro.org/kernel/linux-linaro-stable.git 2018-03-09 19:10:14 +08:00
gpu drm/bridge: Add support for Lontium LT8912 2018-05-10 18:24:26 +08:00
headset_observe rk: add SPDX license identifier to files with no license 2018-01-31 20:56:06 +08:00
hid Merge branch 'linux-linaro-lsk-v4.4-android' of git://git.linaro.org/kernel/linux-linaro-stable.git 2018-04-08 18:28:30 +08:00
hsi HSI: ssi_protocol: double free in ssip_pn_xmit() 2018-03-24 10:58:42 +01:00
hv Drivers: hv: vmbus: fix build warning 2018-02-25 11:03:46 +01:00
hwmon Merge branch 'linux-linaro-lsk-v4.4-android' of git://git.linaro.org/kernel/linux-linaro-stable.git 2018-04-08 18:28:30 +08:00
hwspinlock
hwtracing Merge tag 'v4.4.124' into linux-linaro-lsk-v4.4 2018-03-26 02:31:53 +00:00
i2c i2c: rk3x: Add "suspended" flag to forbid access I2C bus during suspend/resume noirq 2018-05-03 09:53:01 +08:00
ide
idle idle: i7300: add PCI dependency 2018-02-25 11:03:51 +01:00
iio Merge branch 'linux-linaro-lsk-v4.4-android' of git://git.linaro.org/kernel/linux-linaro-stable.git 2018-04-08 18:28:30 +08:00
infiniband RDMA/ucma: Fix access to non-initialized CM_ID object 2018-03-24 10:58:49 +01:00
input driver: input: touch: add gslx680a touch driver 2018-05-14 14:10:52 +08:00
iommu iommu/rockchip: support rk_iommu_map_sg for iommu ops 2018-04-27 10:23:33 +08:00
ipack
irqchip Merge branch 'linux-linaro-lsk-v4.4-android' of git://git.linaro.org/kernel/linux-linaro-stable.git 2018-04-08 18:28:30 +08:00
isdn isdn: sc: work around type mismatch warning 2018-02-25 11:03:51 +01:00
leds Merge branch 'linux-linaro-lsk-v4.4-android' of git://git.linaro.org/kernel/linux-linaro-stable.git 2018-04-08 18:28:30 +08:00
lguest
lightnvm
macintosh
mailbox rk: rm include/linux/rockchip/common.h 2017-11-17 14:55:40 +08:00
mcb
md Merge branch 'linux-linaro-lsk-v4.4' into linux-linaro-lsk-v4.4-android 2018-03-26 02:32:06 +00:00
media media: i2c: imx219: fix settings for support 3A 2018-05-14 16:20:24 +08:00
memory ARM: OMAP2+: gpmc-onenand: propagate error on initialization failure 2017-12-16 10:33:51 +01:00
memstick
message mptfusion: hide unused seq_mpt_print_ioc_summary function 2018-02-25 11:03:45 +01:00
mfd mfd: rk808: Set only resetting pmic register for 817&809. 2018-04-24 11:37:19 +08:00
misc Merge branch 'linux-linaro-lsk-v4.4-android' of git://git.linaro.org/kernel/linux-linaro-stable.git 2018-04-08 18:28:30 +08:00
mmc BACKPORT: FROMLIST: mmc: core: Add tunable delay before detecting card after card is inserted 2018-05-07 14:22:45 +08:00
mtd Merge branch 'linux-linaro-lsk-v4.4-android' of git://git.linaro.org/kernel/linux-linaro-stable.git 2018-04-08 18:28:30 +08:00
net net: wireless: rockchip_wlan: fix ap6354 sleep issue 2018-05-14 16:03:22 +08:00
nfc Merge branch 'linux-linaro-lsk-v4.4-android' of git://git.linaro.org/kernel/linux-linaro-stable.git 2018-04-08 18:28:30 +08:00
ntb
nubus
nvdimm libnvdimm, namespace: make 'resource' attribute only readable by root 2017-11-30 08:37:23 +00:00
nvme Merge branch 'linux-linaro-lsk-v4.4-android' of git://git.linaro.org/kernel/linux-linaro-stable.git 2018-03-09 19:10:14 +08:00
nvmem nvmem: rockchip-otp: Fix section mismatch when compile 2018-02-26 19:57:25 +08:00
of Merge branch 'linux-linaro-lsk-v4.4-android' of git://git.linaro.org/kernel/linux-linaro-stable.git 2018-04-08 18:28:30 +08:00
oprofile
parisc parisc: Hide Diva-built-in serial aux and graphics card 2018-01-02 20:33:20 +01:00
parport
pci Merge branch 'linux-linaro-lsk-v4.4-android' of git://git.linaro.org/kernel/linux-linaro-stable.git 2018-04-08 18:28:30 +08:00
pcmcia
perf Merge branch 'linux-linaro-lsk-v4.4-android' of git://git.linaro.org/kernel/linux-linaro-stable.git 2018-04-08 18:28:30 +08:00
phy UPSTREAM: usb: gadget: move gadget API functions to udc-core 2018-04-27 10:27:04 +08:00
pinctrl pinctrl: rockchip: fixup pdm-clkm-m2 for rk3308 2018-04-10 15:40:27 +08:00
platform Merge branch 'linux-linaro-lsk-v4.4-android' of git://git.linaro.org/kernel/linux-linaro-stable.git 2018-04-08 18:28:30 +08:00
pnp
power power: rk817-battery: improve the storage accuracy of dsoc 2018-05-04 11:49:00 +08:00
powercap
pps
ps3
ptp time: Change posix clocks ops interfaces to use timespec64 2018-03-24 10:58:40 +01:00
pwm Merge branch 'linux-linaro-lsk-v4.4-android' of git://git.linaro.org/kernel/linux-linaro-stable.git 2018-04-08 18:28:30 +08:00
rapidio
ras
regulator regulator: rk808: fix up the set voltage overshoot of Buck1/2 2018-05-09 10:01:40 +08:00
remoteproc
reset
rk_nand drivers: rk_nand: fix no previous prototype warning 2018-05-08 14:21:51 +08:00
rpmsg
rtc Merge branch 'linux-linaro-lsk-v4.4-android' of git://git.linaro.org/kernel/linux-linaro-stable.git 2018-04-08 18:28:30 +08:00
s390 s390/qeth: on channel error, reject further cmd requests 2018-03-31 18:12:34 +02:00
sbus
scsi Merge branch 'linux-linaro-lsk-v4.4' into linux-linaro-lsk-v4.4-android 2018-04-05 18:31:12 +01:00
sfi
sh
smc rk: add SPDX license identifier to files with no license 2018-01-31 20:56:06 +08:00
sn
soc soc: rockchip: support rk3308 pm config 2018-05-11 14:44:53 +08:00
spi Merge branch 'linux-linaro-lsk-v4.4-android' of git://git.linaro.org/kernel/linux-linaro-stable.git 2018-04-08 18:28:30 +08:00
spmi
ssb ssb: mark ssb_bus_register as __maybe_unused 2018-02-25 11:03:44 +01:00
staging Merge branch 'linux-linaro-lsk-v4.4-android' of git://git.linaro.org/kernel/linux-linaro-stable.git 2018-04-08 18:28:30 +08:00
switch rk: add SPDX license identifier to files with no license 2018-01-31 20:56:06 +08:00
target tcm_fileio: Prevent information leak for short reads 2018-03-24 10:58:45 +01:00
tc
tee BACKPORT: tee: shm: Potential NULL dereference calling tee_shm_register() 2018-03-05 21:58:40 +05:30
testcode rk: add SPDX license identifier to files with no license 2018-01-31 20:56:06 +08:00
thermal thermal: rockchip: add shutdown callback function 2018-03-28 18:55:38 +08:00
thunderbolt
tty serial: 8250: modify warning log about dma request fail 2018-05-09 18:29:03 +08:00
uio
usb FROMLIST: usb: dwc2: fix isoc split in transfer with no data 2018-05-14 19:38:11 +08:00
uwb uwb: ensure that endpoint is interrupt 2017-10-12 11:27:35 +02:00
vfio
vhost vhost_net: stop device during reset owner 2018-02-16 20:09:38 +01:00
video video/rockchip: rga2: Fixup warning "-Wmissing-prototypes" 2018-05-09 11:06:54 +08:00
virt
virtio virtio_balloon: prevent uninitialized variable use 2018-02-25 11:03:42 +01:00
vlynq
vme
w1
watchdog Merge branch 'linux-linaro-lsk-v4.4-android' of git://git.linaro.org/kernel/linux-linaro-stable.git 2018-04-08 18:28:30 +08:00
xen xen/gntdev: Fix partial gntdev_mmap() cleanup 2018-03-03 10:19:45 +01:00
zorro
Kconfig
Makefile Merge branch 'linux-linaro-lsk-v4.4-android' of git://git.linaro.org/kernel/linux-linaro-stable.git 2018-03-09 19:10:14 +08:00