TencentOS-kernel/drivers
Jack Pham 7680169cfc usb: gadget: f_fs: Re-use SS descriptors for SuperSpeedPlus
commit a353397b0d5dfa3c99b372505db3378fc919c6c6 upstream.

In many cases a function that supports SuperSpeed can very well
operate in SuperSpeedPlus, if a gadget controller supports it,
as the endpoint descriptors (and companion descriptors) are
generally identical and can be re-used. This is true for two
commonly used functions: Android's ADB and MTP. So we can simply
assign the usb_function's ssp_descriptors array to point to its
ss_descriptors, if available. Similarly, we need to allow an
epfile's ioctl for FUNCTIONFS_ENDPOINT_DESC to correctly
return the corresponding SuperSpeed endpoint descriptor in case
the connected speed is SuperSpeedPlus as well.

The only exception is if a function wants to implement an
Isochronous endpoint capable of transferring more than 48KB per
service interval when operating at greater than USB 3.1 Gen1
speed, in which case it would require an additional SuperSpeedPlus
Isochronous Endpoint Companion descriptor to be returned as part
of the Configuration Descriptor. Support for that would need
to be separately added to the userspace-facing FunctionFS API
which may not be a trivial task--likely a new descriptor format
(v3?) may need to be devised to allow for separate SS and SSP
descriptors to be supplied.

Signed-off-by: Jack Pham <jackp@codeaurora.org>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20201027230731.9073-1-jackp@codeaurora.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-03-16 16:42:31 +08:00
..
accessibility
acpi ACPI: button: Add DMI quirk for Medion Akoya E2228T 2021-03-16 16:41:10 +08:00
amba
android binder: Remove bogus warning on failed same-process transaction 2021-03-16 16:38:35 +08:00
ata ata: sata_nv: Fix retrieving of active qcs 2021-03-16 16:39:39 +08:00
atm atm: nicstar: Unmap DMA on send error 2021-03-16 16:41:03 +08:00
auxdisplay
base PM: runtime: Resume the device earlier in __device_release_driver() 2021-03-16 16:40:31 +08:00
bcma
block nbd: fix a block_device refcount leak in nbd_release 2021-03-16 16:40:49 +08:00
bluetooth Bluetooth: btusb: Fix memleak in btusb_mtk_submit_wmt_recv_urb 2021-03-16 16:39:23 +08:00
bus bus: ti-sysc: Fix bogus resetdone warning on enable for cpsw 2021-03-16 16:41:40 +08:00
cdrom
char virtio: virtio_console: fix DMA memory allocation for rproc serial 2021-03-16 16:40:54 +08:00
clk clk: renesas: r9a06g032: Drop __packed for portability 2021-03-16 16:42:25 +08:00
clocksource clocksource/drivers/timer-gx6605s: Fixup counter reload 2021-03-16 16:37:44 +08:00
connector
counter
cpufreq acpi-cpufreq: Honor _PSD table setting on new AMD CPUs 2021-03-16 16:39:58 +08:00
cpuidle cpuidle: Fixup IRQ state 2021-03-16 16:35:25 +08:00
crypto chelsio/chtls: fix a double free in chtls_setkey() 2021-03-16 16:41:56 +08:00
dax dax: Fix alloc_dax_region() compile warning 2021-03-16 16:36:36 +08:00
dca
devfreq PM / devfreq: tegra30: Fix integer overflow on CPU's freq max out 2021-03-16 16:36:35 +08:00
dio
dma dmaengine: pl330: _prep_dma_memcpy: Fix wrong burst size 2021-03-16 16:41:39 +08:00
dma-buf dmabuf: fix NULL pointer dereference in dma_buf_release() 2021-03-16 16:37:40 +08:00
edac EDAC/ti: Fix handling of platform_get_irq() error 2021-03-16 16:38:22 +08:00
eisa
extcon extcon: ptn5150: Fix usage of atomic GPIO with sleeping GPIO chips 2021-03-16 16:39:55 +08:00
firewire
firmware efi: EFI_EARLYCON should depend on EFI 2021-03-16 16:41:46 +08:00
fpga fpga: dfl: fix bug in port reset handshake 2021-03-16 16:32:23 +08:00
fsi
gnss gnss: sirf: fix error return code in sirf_probe() 2021-03-16 16:29:47 +08:00
gpio gpio: eic-sprd: break loop when getting NULL device resource 2021-03-16 16:42:27 +08:00
gpu drm/amd/display: Init clock value by current vbios CLKs 2021-03-16 16:42:30 +08:00
greybus
hid HID: Add Logitech Dinovo Edge battery quirk 2021-03-16 16:41:39 +08:00
hsi
hv Drivers: hv: vmbus: Allow cleanup of VMBUS_CONNECT_CPU if disconnected 2021-03-16 16:41:31 +08:00
hwmon hwmon: (pwm-fan) Fix RPM calculation 2021-03-16 16:41:11 +08:00
hwspinlock
hwtracing Revert "coresight: Make sysfs functional on topologies with per core sink" 2021-03-16 16:40:28 +08:00
i2c i2c: qup: Fix error return code in qup_i2c_bam_schedule_desc() 2021-03-16 16:42:07 +08:00
i3c i3c: master: Fix error return in cdns_i3c_master_probe() 2021-03-16 16:38:56 +08:00
ide
idle
iio iio: adc: mediatek: fix unset field 2021-03-16 16:41:28 +08:00
infiniband RDMA/cm: Fix an attempt to use non-valid pointer when cleaning timewait 2021-03-16 16:42:28 +08:00
input Input: i8042 - add Acer laptops to the i8042 reset list 2021-03-16 16:42:13 +08:00
interconnect interconnect: qcom: qcs404: Remove GPU and display RPM IDs 2021-03-16 16:42:11 +08:00
iommu iommu/amd: Set DTE[IntTabLen] to represent 512 IRTEs 2021-03-16 16:42:06 +08:00
ipack
irqchip irqchip/gic-v3-its: Unconditionally save/restore the ITS state on suspend 2021-03-16 16:42:11 +08:00
isdn
leds leds: bcm6328, bcm6358: use devres LED registering function 2021-03-16 16:39:56 +08:00
lightnvm lightnvm: fix out-of-bounds write to array devices->info[] 2021-03-16 16:39:10 +08:00
macintosh macintosh/via-macii: Access autopoll_devs when inside lock 2021-03-16 16:33:39 +08:00
mailbox mailbox: avoid timer start from callback 2021-03-16 16:38:59 +08:00
mcb
md dm table: Remove BUG_ON(in_interrupt()) 2021-03-16 16:42:30 +08:00
media media: uvcvideo: Fix uvc_ctrl_fixup_xu_info() not having any effect 2021-03-16 16:39:56 +08:00
memory memory: emif: Remove bogus debugfs error handling 2021-03-16 16:39:52 +08:00
memstick memstick: Skip allocating card when removing host 2021-03-16 16:37:44 +08:00
message scsi: mptfusion: Fix null pointer dereferences in mptscsih_remove() 2021-03-16 16:39:58 +08:00
mfd mfd: sprd: Add wakeup capability for PMIC IRQ 2021-03-16 16:40:48 +08:00
misc habanalabs: put devices before driver removal 2021-03-16 16:42:29 +08:00
mmc mmc: block: Fixup condition for CMD13 polling for RPMB requests 2021-03-16 16:42:14 +08:00
mtd mtd: spi-nor: Don't copy self-pointing struct around 2021-03-16 16:40:22 +08:00
mux
net iwlwifi: pcie: add one missing entry for AX210 2021-03-16 16:42:30 +08:00
nfc nfc: s3fwrn5: use signed integer for parsing GPIO numbers 2021-03-16 16:41:44 +08:00
ntb NTB: hw: amd: fix an issue about leak system resources 2021-03-16 16:39:10 +08:00
nubus
nvdimm libnvdimm/security: ensure sysfs poll thread woke up and fetch updated attr 2021-03-16 16:34:18 +08:00
nvme nvme: free sq/cq dbbuf pointers when dbbuf set fails 2021-03-16 16:41:39 +08:00
nvmem nvmem: core: fix possibly memleak when use nvmem_cell_info_to_nvmem_cell() 2021-03-16 16:38:43 +08:00
of of/address: Fix of_node memory leak in of_dma_is_coherent 2021-03-16 16:40:51 +08:00
opp opp: Reduce the size of critical section in _opp_table_kref_release() 2021-03-16 16:40:41 +08:00
oprofile
parisc parisc: mask out enable and reserved bits from sba imask 2021-03-16 16:33:54 +08:00
parport
pci PCI: qcom: Make sure PCIe is reset before init for rev 2.1.0 2021-03-16 16:40:33 +08:00
pcmcia
perf drivers/perf: thunderx2_pmu: Fix memory resource error handling 2021-03-16 16:38:23 +08:00
phy phy: tegra: xusb: Fix dangling pointer on probe failure 2021-03-16 16:41:41 +08:00
pinctrl pinctrl: aspeed: Fix GPIO requests on pass-through banks 2021-03-16 16:42:26 +08:00
platform platform/x86: touchscreen_dmi: Add info for the Irbis TW118 tablet 2021-03-16 16:42:12 +08:00
pnp
power power: supply: test_power: add missing newlines when printing parameters by sysfs 2021-03-16 16:39:49 +08:00
powercap powercap: restrict energy meter to root access 2021-03-16 16:40:32 +08:00
pps
ps3
ptp
pwm pwm: img: Fix null pointer access in probe 2021-03-16 16:39:01 +08:00
rapidio rapidio: fix the missed put_device() for rio_mport_add_riodev 2021-03-16 16:38:59 +08:00
ras
regulator regulator: workaround self-referent regulators 2021-03-16 16:41:29 +08:00
remoteproc remoteproc: qcom_q6v5_mss: Validate modem blob firmware size before load 2021-03-16 16:34:10 +08:00
reset
rpmsg rpmsg: glink: Use complete_all for open states 2021-03-16 16:39:50 +08:00
rtc rtc: rx8010: don't modify the global rtc ops 2021-03-16 16:40:09 +08:00
s390 s390/qeth: fix tear down of async TX buffers 2021-03-16 16:41:43 +08:00
sbus
scsi scsi: bnx2i: Requires MMU 2021-03-16 16:42:24 +08:00
sfi
sh
siox
slimbus slimbus: qcom-ngd-ctrl: disable ngd in qmi server down callback 2021-03-16 16:38:42 +08:00
soc soc/tegra: fuse: Fix index bug in get_process_id 2021-03-16 16:42:30 +08:00
soundwire soundwire: bus: disable pm_runtime in sdw_slave_delete 2021-03-16 16:36:55 +08:00
spi spi: spi-nxp-fspi: fix fspi panic by unexpected interrupts 2021-03-16 16:42:11 +08:00
spmi
ssb
staging speakup: Reject setting the speakup line discipline outside of speakup 2021-03-16 16:42:05 +08:00
target scsi: target: iscsi: Fix cmd abort fabric stop race 2021-03-16 16:41:40 +08:00
tc
tee optee: add writeback to valid memory type 2021-03-16 16:41:45 +08:00
thermal thermal: rcar_thermal: Handle probe error gracefully 2021-03-16 16:37:03 +08:00
thunderbolt thunderbolt: Fix use-after-free in remove_unplugged_switch() 2021-03-16 16:42:03 +08:00
tty serial: 8250_omap: Avoid FIFO corruption caused by MDR1 access 2021-03-16 16:42:21 +08:00
uio uio: Fix use-after-free in uio_unregister_device() 2021-03-16 16:40:53 +08:00
usb usb: gadget: f_fs: Re-use SS descriptors for SuperSpeedPlus 2021-03-16 16:42:31 +08:00
vfio vfio/pci: Bypass IGD init in case of -ENODEV 2021-03-16 16:40:46 +08:00
vhost vhost scsi: fix cmd completion race 2021-03-16 16:41:39 +08:00
video video: hyperv_fb: Fix the cache type when mapping the VRAM 2021-03-16 16:41:42 +08:00
virt drivers/virt/fsl_hypervisor: Fix error handling path 2021-03-16 16:38:36 +08:00
virtio virtio_ring: Avoid loop when vq is broken in virtqueue_poll 2021-03-16 16:34:34 +08:00
visorbus
vlynq
vme
w1 w1: mxc_w1: Fix timeout resolution problem leading to bus error 2021-03-16 16:39:58 +08:00
watchdog drivers: watchdog: rdc321x_wdt: Fix race condition bugs 2021-03-16 16:39:51 +08:00
xen xen/events: block rogue events for some time 2021-03-16 16:39:38 +08:00
zorro
Kconfig
Makefile