linux/drivers
Jack Pham 3680c243af usb: gadget: f_fs: Re-use SS descriptors for SuperSpeedPlus
commit a353397b0d 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>
2020-12-30 11:25:47 +01:00
..
accessibility
acpi ACPI: button: Add DMI quirk for Medion Akoya E2228T 2020-11-24 13:27:19 +01:00
amba
android binder: fix UAF when releasing todo list 2020-10-29 09:54:56 +01:00
ata ata: sata_nv: Fix retrieving of active qcs 2020-11-05 11:08:38 +01:00
atm atm: nicstar: Unmap DMA on send error 2020-11-24 13:27:15 +01:00
auxdisplay
base PM: runtime: Resume the device earlier in __device_release_driver() 2020-11-10 12:36:01 +01:00
bcma
block nbd: fix a block_device refcount leak in nbd_release 2020-11-18 19:18:47 +01:00
bluetooth Bluetooth: hci_uart: Cancel init work before unregistering 2020-10-29 09:55:05 +01:00
bus bus/fsl_mc: Do not rely on caller to provide non NULL mc_io 2020-11-05 11:08:43 +01:00
cdrom
char random32: make prandom_u32() output unpredictable 2020-11-18 19:18:52 +01:00
clk clk: renesas: r9a06g032: Drop __packed for portability 2020-12-30 11:25:44 +01:00
clocksource clocksource/drivers/h8300_timer8: Fix wrong return value in h8300_8timer_init() 2020-10-01 13:14:51 +02:00
connector
cpufreq acpi-cpufreq: Honor _PSD table setting on new AMD CPUs 2020-11-05 11:08:47 +01:00
cpuidle cpuidle: Fixup IRQ state 2020-09-09 19:04:23 +02:00
crypto chelsio/chtls: fix panic during unload reload chtls 2020-12-08 10:18:55 +01:00
dax
dca
devfreq PM / devfreq: tegra30: Fix integer overflow on CPU's freq max out 2020-10-01 13:14:26 +02:00
dio
dma dmaengine: pl330: _prep_dma_memcpy: Fix wrong burst size 2020-12-02 08:48:09 +01:00
dma-buf dma-fence: Serialise signal enabling (dma_fence_enable_sw_signaling) 2020-10-01 13:14:24 +02:00
edac EDAC/ti: Fix handling of platform_get_irq() error 2020-10-29 09:55:00 +01:00
eisa
extcon extcon: adc-jack: Fix an error handling path in 'adc_jack_probe()' 2020-06-25 15:33:01 +02:00
firewire
firmware firmware: arm_sdei: Use cpus_read_lock() to avoid races with cpuhp 2020-10-01 13:14:35 +02:00
fmc
fpga fpga: dfl: fix bug in port reset handshake 2020-07-29 10:16:48 +02:00
fsi
gnss gnss: sirf: fix error return code in sirf_probe() 2020-06-22 09:05:28 +02:00
gpio gpio: eic-sprd: break loop when getting NULL device resource 2020-12-30 11:25:45 +01:00
gpu drm/tegra: sor: Disable clocks on error in tegra_sor_init() 2020-12-30 11:25:46 +01:00
hid HID: Add Logitech Dinovo Edge battery quirk 2020-12-02 08:48:09 +01:00
hsi
hv hv_balloon: disable warning when floor reached 2020-11-18 19:18:41 +01:00
hwmon hwmon: (pmbus/max34440) Fix status register reads for MAX344{51,60,61} 2020-10-29 09:55:02 +01:00
hwspinlock
hwtracing coresight: tmc: Fix TMC mode read in tmc_read_unprepare_etb() 2020-08-19 08:14:58 +02:00
i2c i2c: qup: Fix error return code in qup_i2c_bam_schedule_desc() 2020-12-11 13:25:04 +01:00
ide ide: serverworks: potential overflow in svwks_set_pio_mode() 2020-02-24 08:34:49 +01:00
idle
iio iio: accel: kxcjk1013: Add support for KIOX010A ACPI DSM for setting tablet-mode 2020-11-24 13:27:25 +01:00
infiniband RDMA/cm: Fix an attempt to use non-valid pointer when cleaning timewait 2020-12-30 11:25:45 +01:00
input Input: i8042 - add Acer laptops to the i8042 reset list 2020-12-30 11:25:39 +01:00
iommu iommu/amd: Set DTE[IntTabLen] to represent 512 IRTEs 2020-12-11 13:25:03 +01:00
ipack ipack: tpci200: fix error return code in tpci200_register() 2020-05-27 17:37:43 +02:00
irqchip irqchip/gic-v3-its: Unconditionally save/restore the ITS state on suspend 2020-12-30 11:25:38 +01:00
isdn PCI: add USR vendor id and use it in r8169 and w6692 driver 2020-06-22 09:05:23 +02:00
leds leds: bcm6328, bcm6358: use devres LED registering function 2020-11-05 11:08:46 +01:00
lightnvm
macintosh drivers/macintosh: Fix memleak in windfarm_pm112 driver 2020-06-22 09:05:29 +02:00
mailbox mailbox: avoid timer start from callback 2020-10-30 10:38:21 +01:00
mcb
md dm table: Remove BUG_ON(in_interrupt()) 2020-12-30 11:25:46 +01:00
media media: uvcvideo: Fix uvc_ctrl_fixup_xu_info() not having any effect 2020-11-05 11:08:46 +01:00
memory memory: emif: Remove bogus debugfs error handling 2020-11-05 11:08:45 +01:00
memstick
message scsi: mptfusion: Fix null pointer dereferences in mptscsih_remove() 2020-11-05 11:08:47 +01:00
mfd mfd: sprd: Add wakeup capability for PMIC IRQ 2020-11-18 19:18:46 +01:00
misc mei: protect mei_cl_mtu from null dereference 2020-11-18 19:18:49 +01:00
mmc mmc: block: Fixup condition for CMD13 polling for RPMB requests 2020-12-30 11:25:39 +01:00
mtd ubi: check kthread_should_stop() after the setting of task state 2020-11-05 11:08:52 +01:00
mux
net vxlan: Copy needed_tailroom from lowerdev 2020-12-30 11:25:46 +01:00
nfc nfc: s3fwrn5: use signed integer for parsing GPIO numbers 2020-12-02 08:48:11 +01:00
ntb NTB: hw: amd: fix an issue about leak system resources 2020-10-30 10:38:25 +01:00
nubus
nvdimm libnvdimm: Fix endian conversion issues 2020-06-07 13:17:53 +02:00
nvme nvme: free sq/cq dbbuf pointers when dbbuf set fails 2020-12-02 08:48:09 +01:00
nvmem nvmem: qfprom: remove incorrect write support 2020-06-10 21:35:00 +02:00
of of/address: Fix of_node memory leak in of_dma_is_coherent 2020-11-18 19:18:48 +01:00
opp
oprofile
parisc parisc: mask out enable and reserved bits from sba imask 2020-08-19 08:15:07 +02:00
parport
pci PCI: qcom: Add missing reset for ipq806x 2020-12-30 11:25:40 +01:00
pcmcia
perf drivers/perf: xgene_pmu: Fix uninitialized resource struct 2020-10-29 09:55:00 +01:00
phy phy: tegra: xusb: Fix dangling pointer on probe failure 2020-12-02 08:48:10 +01:00
pinctrl pinctrl: baytrail: Avoid clearing debounce value when turning it off 2020-12-30 11:25:44 +01:00
platform platform/x86: intel-vbtn: Support for tablet mode on HP Pavilion 13 x360 PC 2020-12-30 11:25:39 +01:00
pnp
power power: supply: test_power: add missing newlines when printing parameters by sysfs 2020-11-05 11:08:43 +01:00
powercap powercap: restrict energy meter to root access 2020-11-10 21:11:27 +01:00
pps
ps3
ptp
pwm pwm: img: Fix null pointer access in probe 2020-10-30 10:38:21 +01:00
rapidio rapidio: fix the missed put_device() for rio_mport_add_riodev 2020-10-30 10:38:21 +01:00
ras
regulator regulator: workaround self-referent regulators 2020-11-24 13:27:25 +01:00
remoteproc remoteproc: qcom: q6v5: Update running state before requesting stop 2020-08-21 11:05:34 +02:00
reset reset: uniphier: Add SCSSI reset control for each channel 2020-02-24 08:34:44 +01:00
rpmsg rpmsg: glink: Use complete_all for open states 2020-11-05 11:08:43 +01:00
rtc rtc: rx8010: don't modify the global rtc ops 2020-11-05 11:08:54 +01:00
s390 s390/qeth: fix tear down of async TX buffers 2020-12-02 08:48:11 +01:00
sbus
scsi scsi: mpt3sas: Increase IOCInit request timeout to 30s 2020-12-30 11:25:46 +01:00
sfi
sh
siox
slimbus slimbus: qcom-ngd-ctrl: disable ngd in qmi server down callback 2020-10-29 09:55:12 +01:00
sn
soc soc/tegra: fuse: Fix index bug in get_process_id 2020-12-30 11:25:46 +01:00
soundwire
spi spi: bcm2835aux: Restore err assignment in bcm2835aux_spi_probe 2020-12-30 11:25:37 +01:00
spmi
ssb
staging speakup: Reject setting the speakup line discipline outside of speakup 2020-12-11 13:25:03 +01:00
target scsi: target: iscsi: Fix cmd abort fabric stop race 2020-12-02 08:48:10 +01:00
tc
tee optee: add writeback to valid memory type 2020-12-02 08:48:12 +01:00
thermal thermal: rcar_thermal: Handle probe error gracefully 2020-10-01 13:14:39 +02:00
thunderbolt thunderbolt: Add the missed ida_simple_remove() in ring_request_msix() 2020-11-18 19:18:49 +01:00
tty serial: 8250_omap: Avoid FIFO corruption caused by MDR1 access 2020-12-30 11:25:43 +01:00
uio uio: Fix use-after-free in uio_unregister_device() 2020-11-18 19:18:49 +01:00
usb usb: gadget: f_fs: Re-use SS descriptors for SuperSpeedPlus 2020-12-30 11:25:47 +01:00
uwb
vfio vfio: platform: fix reference leak in vfio_platform_open 2020-11-18 19:18:46 +01:00
vhost vringh: fix __vringh_iov() when riov and wiov are different 2020-11-05 11:08:53 +01:00
video video: hyperv_fb: Fix the cache type when mapping the VRAM 2020-12-02 08:48:11 +01:00
virt drivers/virt/fsl_hypervisor: Fix error handling path 2020-10-29 09:55:09 +01:00
virtio virtio_ring: Avoid loop when vq is broken in virtqueue_poll 2020-08-26 10:31:01 +02:00
visorbus visorbus: fix uninitialized variable access 2020-02-24 08:34:47 +01:00
vlynq
vme vme: bridges: reduce stack usage 2020-02-24 08:34:47 +01:00
w1 w1: mxc_w1: Fix timeout resolution problem leading to bus error 2020-11-05 11:08:47 +01:00
watchdog drivers: watchdog: rdc321x_wdt: Fix race condition bugs 2020-11-05 11:08:44 +01:00
xen xen/events: block rogue events for some time 2020-11-05 11:08:37 +01:00
zorro
Kconfig
Makefile