linux/drivers
Andrey Konovalov a59105f5c9 BACKPORT: usb: gadget: add raw-gadget interface
Conflict: documentation/usb/index.rst is missing.

(Upstream commit f2c2e717642c66f7fe7e5dd69b2e8ff5849f4d10.)

USB Raw Gadget is a kernel module that provides a userspace interface for
the USB Gadget subsystem. Essentially it allows to emulate USB devices
from userspace. Enabled with CONFIG_USB_RAW_GADGET. Raw Gadget is
currently a strictly debugging feature and shouldn't be used in
production.

Raw Gadget is similar to GadgetFS, but provides a more low-level and
direct access to the USB Gadget layer for the userspace. The key
differences are:

1. Every USB request is passed to the userspace to get a response, while
   GadgetFS responds to some USB requests internally based on the provided
   descriptors. However note, that the UDC driver might respond to some
   requests on its own and never forward them to the Gadget layer.

2. GadgetFS performs some sanity checks on the provided USB descriptors,
   while Raw Gadget allows you to provide arbitrary data as responses to
   USB requests.

3. Raw Gadget provides a way to select a UDC device/driver to bind to,
   while GadgetFS currently binds to the first available UDC.

4. Raw Gadget uses predictable endpoint names (handles) across different
   UDCs (as long as UDCs have enough endpoints of each required transfer
   type).

5. Raw Gadget has ioctl-based interface instead of a filesystem-based one.

Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Andrey Konovalov <andreyknvl@google.com>
Signed-off-by: Felipe Balbi <balbi@kernel.org>
Bug: 147413187
Signed-off-by: Andrey Konovalov <andreyknvl@google.com>
Change-Id: Ib48759bda0651e685160c532bed55b7335a39034
2020-03-31 17:40:01 +02:00
..
accessibility
acpi This is the 4.19.113 stable release 2020-03-25 09:50:38 +01:00
amba
android UPSTREAM: binder: prevent UAF for binderfs devices II 2020-03-09 19:48:21 +00:00
ata ata: ahci: Add shutdown to freeze hardware resources of ahci 2020-02-28 16:39:00 +01:00
atm fore200e: Fix incorrect checks of NULL pointer dereference 2020-02-24 08:34:42 +01:00
auxdisplay
base UPSTREAM: driver core: Add device link support for SYNC_STATE_ONLY flag 2020-03-21 09:54:56 +01:00
bcma bcma: fix incorrect update of BCMA_CORE_PCI_MDIO_DATA 2020-01-27 14:51:09 +01:00
block This is the 4.19.111 stable release 2020-03-18 08:19:47 +01:00
bluetooth Bluetooth: btusb: fix PM leak in error case of setup 2020-01-09 10:19:04 +01:00
bus bus: ti-sysc: Fix sysc_unprepare() when no clocks have been allocated 2020-01-27 14:50:36 +01:00
cdrom cdrom: respect device capabilities during opening action 2020-01-04 19:13:12 +01:00
char This is the 4.19.108 stable release 2020-03-05 17:40:55 +01:00
clk This is the 4.19.106 stable release 2020-02-24 09:13:25 +01:00
clocksource clocksource/drivers/bcm2835_timer: Fix memory leak of timer 2020-02-24 08:34:37 +01:00
connector
cpufreq This is the 4.19.99 stable release 2020-01-27 15:55:44 +01:00
cpuidle This is the 4.19.90 stable release 2019-12-18 09:03:30 +01:00
crypto ANDROID: Removed default m for virtual sw crypto device 2020-03-03 14:26:54 -08:00
dax
dca
devfreq Revert "PM / devfreq: Modify the device name as devfreq(X) for sysfs" 2020-03-05 16:42:18 +01:00
dio
dma dmaengine: coh901318: Fix a double lock bug in dma_tc_handle() 2020-03-11 14:15:12 +01:00
dma-buf ANDROID: GKI: dma-buf: Add support for XXX_cpu_access_umapped ops 2020-03-16 18:13:07 +00:00
edac EDAC/amd64: Set grain per DIMM 2020-03-11 14:14:45 +01:00
eisa
energy_model
extcon ANDROID: GKI: extcon: Add extcon_register_blocking_notifier API. 2020-03-23 12:21:04 -07:00
firewire net: add annotations on hh->hh_len lockless accesses 2020-01-09 10:19:09 +01:00
firmware This is the 4.19.112 stable release 2020-03-21 08:37:27 +01:00
fmc
fpga
fsi fsi: sbefifo: Don't fail operations when in SBE IPL state 2020-01-27 14:51:00 +01:00
gnss ANDROID: gnss: Add command line test driver 2019-12-19 22:51:54 +00:00
gpio ANDROID: Fix kernelci build-break for arm32 2020-03-10 11:07:35 -07:00
gpu This is the 4.19.113 stable release 2020-03-25 09:50:38 +01:00
hid This is the 4.19.112 stable release 2020-03-21 08:37:27 +01:00
hsi
hv hv_balloon: Balloon up according to request page number 2020-02-11 04:34:01 -08:00
hwmon hwmon: (adt7462) Fix an error return in ADT7462_REG_VOLT() 2020-03-11 14:15:12 +01:00
hwspinlock
hwtracing UPSTREAM: coresight: Potential uninitialized variable in probe() 2020-03-27 02:11:00 +00:00
i2c This is the 4.19.111 stable release 2020-03-18 08:19:47 +01:00
ide ide: serverworks: potential overflow in svwks_set_pio_mode() 2020-02-24 08:34:49 +01:00
idle
iio This is the 4.19.113 stable release 2020-03-25 09:50:38 +01:00
infiniband This is the 4.19.109 stable release 2020-03-11 17:10:39 +01:00
input UPSTREAM: Input: reset device timestamp on sync 2020-03-12 10:46:18 -07:00
iommu This is the 4.19.111 stable release 2020-03-18 08:19:47 +01:00
ipack
irqchip This is the 4.19.108 stable release 2020-03-05 17:40:55 +01:00
isdn
leds leds: pca963x: Fix open-drain initialization 2020-02-24 08:34:35 +01:00
lightnvm lightnvm: pblk: fix lock order in pblk_rb_tear_down_check 2020-01-27 14:50:45 +01:00
macintosh macintosh: windfarm: fix MODINFO regression 2020-03-18 07:14:21 +01:00
mailbox mailbox: qcom-apcs: fix max_register value 2020-01-27 14:51:14 +01:00
mcb
md ANDROID: dm-bow: Fix free_show value is incorrect 2020-03-26 20:56:04 +00:00
media This is the 4.19.109 stable release 2020-03-11 17:10:39 +01:00
memory memory: tegra: Don't invoke Tegra30+ specific memory timing setup on Tegra20 2020-01-27 14:50:13 +01:00
memstick
message scsi: mptfusion: Fix double fetch bug in ioctl 2020-01-23 08:21:28 +01:00
mfd mfd: rn5t618: Mark ADC control register volatile 2020-02-11 04:34:14 -08:00
misc This is the 4.19.113 stable release 2020-03-25 09:50:38 +01:00
mmc This is the 4.19.113 stable release 2020-03-25 09:50:38 +01:00
mtd mtd: sharpslpart: Fix unsigned comparison to zero 2020-02-14 16:33:27 -05:00
mux
net BACKPORT: nl80211: Add support for EDMG channels 2020-03-26 19:35:27 +00:00
nfc nfc: pn544: Fix occasional HW initialization failure 2020-03-05 16:42:16 +01:00
ntb ntb_hw_switchtec: potential shift wrapping bug in switchtec_ntb_init_sndev() 2020-01-27 14:50:55 +01:00
nubus
nvdimm UPSTREAM: virtio-pmem: Add virtio pmem driver 2020-01-26 19:04:57 +00:00
nvme nvme: Fix uninitialized-variable warning 2020-03-11 14:14:55 +01:00
nvmem BACKPORT: nvmem: core: fix regression in of_nvmem_cell_get() 2020-02-24 11:38:01 -08:00
of ANDROID: GKI: drivers: of: Add API to find ddr device type 2020-03-12 10:46:18 -07:00
opp This is the 4.19.99 stable release 2020-01-27 15:55:44 +01:00
oprofile
parisc
parport parport: load lowlevel driver if ports not found 2019-12-31 16:36:01 +01:00
pci ANDROID: GKI: pci: framework: disable auto suspend link 2020-03-09 11:32:05 -07:00
pcmcia
perf drivers/perf: arm_pmu_acpi: Fix incorrect checking of gicc pointer 2020-03-25 08:06:07 +01:00
phy phy: mapphone-mdm6600: Fix write timeouts with shorter GPIO toggle interval 2020-03-11 14:15:10 +01:00
pinctrl pinctrl: core: Remove extra kref_get which blocks hogs being freed 2020-03-18 07:14:23 +01:00
platform UPSTREAM: usb: typec: Registering real device entries for the muxes 2020-03-12 14:22:55 -07:00
pnp
power ANDROID: GKI: power_supply: add more soc properties 2020-03-27 14:29:21 -07:00
powercap
pps
ps3
ptp ptp: free ptp device pin descriptors properly 2020-01-23 08:21:35 +01:00
pwm pwm: omap-dmtimer: put_device() after of_find_device_by_node() 2020-03-05 16:42:22 +01:00
rapidio drivers/rapidio/rio_cm.c: fix potential oops in riocm_ch_listen() 2020-01-27 14:50:31 +01:00
ras
regulator UPSTREAM: regulator/of_get_regulator: add child path to find the regulator supplier 2020-02-28 20:57:51 +00:00
remoteproc remoteproc: Initialize rproc_class before use 2020-02-24 08:34:50 +01:00
reset reset: uniphier: Add SCSSI reset control for each channel 2020-02-24 08:34:44 +01:00
rpmsg rpmsg: glink: Free pending deferred work on remove 2019-12-21 10:57:30 +01:00
rtc This is the 4.19.113 stable release 2020-03-25 09:50:38 +01:00
s390 s390/qdio: fill SL with absolute addresses 2020-03-11 14:14:54 +01:00
sbus
scsi ANDROID: scsi: ufs: add ->map_sg_crypto() variant op 2020-03-24 16:53:27 -07:00
sfi
sh
siox
slimbus
sn
soc This is the 4.19.108 stable release 2020-03-05 17:40:55 +01:00
soundwire soundwire: intel: fix PDI/stream mapping for Bulk 2019-12-31 16:35:55 +01:00
spi This is the 4.19.113 stable release 2020-03-25 09:50:38 +01:00
spmi
ssb
staging This is the 4.19.113 stable release 2020-03-25 09:50:38 +01:00
target scsi: Revert "target: iscsi: Wait for all commands to finish before freeing a session" 2020-02-28 16:38:58 +01:00
tc
tee This is the 4.19.102 stable release 2020-02-05 19:20:26 +00:00
thermal ANDROID: GKI: Add devm_thermal_of_virtual_sensor_register API. 2020-03-12 10:46:18 -07:00
thunderbolt thunderbolt: Prevent crash if non-active NVMem file is read 2020-02-28 16:38:44 +01:00
tty Revert "ANDROID: tty: serdev: Fix broken serial console input" 2020-03-13 15:28:10 +00:00
uio uio: fix a sleep-in-atomic-context bug in uio_dmem_genirq_irqcontrol() 2020-02-24 08:34:37 +01:00
usb BACKPORT: usb: gadget: add raw-gadget interface 2020-03-31 17:40:01 +02:00
uwb
vfio This is the 4.19.99 stable release 2020-01-27 15:55:44 +01:00
vhost This is the 4.19.108 stable release 2020-03-05 17:40:55 +01:00
video vgacon: Fix a UAF in vgacon_invert_region 2020-03-11 14:15:00 +01:00
virt
virtio ANDROID: Re-add default y for VIRTIO_PCI_LEGACY 2020-03-03 23:28:01 +00: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
watchdog watchdog: da9062: do not ping the hw during stop() 2020-03-11 14:14:53 +01:00
xen xenbus: req->err should be updated before req->state 2020-03-25 08:06:08 +01:00
zorro
Kconfig
Makefile