kernel-hacking-2024-linux-s.../drivers
Ruslan Bilovol e89bb42883 usb: gadget: u_audio: add real feedback implementation
This adds interface between userspace and feedback endpoint to report real
feedback frequency to the Host.

Current implementation adds new userspace interface ALSA mixer control
"Capture Pitch 1000000" (similar to aloop driver's "PCM Rate Shift 100000"
mixer control)

Value in PPM is chosen to have correction value agnostic of the actual HW
rate, which the application is not necessarily dealing with, while still
retaining a good enough precision to allow smooth clock correction on the
playback side, if necessary.

Similar to sound/usb/endpoint.c, a slow down is allowed up to 25%. This
has no impact on the required bandwidth. Speedup correction has an impact
on the bandwidth reserved for the isochronous endpoint. The default
allowed speedup is 500ppm. This seems to be more than enough but, if
necessary, this is configurable through a module parameter. The reserved
bandwidth is rounded up to the next packet size.

Usage of this new control is easy to implement in existing userspace tools
like alsaloop from alsa-utils.

Signed-off-by: Ruslan Bilovol <ruslan.bilovol@gmail.com>
Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Link: https://lore.kernel.org/r/20210603220104.1216001-4-jbrunet@baylibre.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-06-09 11:26:49 +02:00
..
accessibility
acpi TTY / Serial driver fixes for 5.13-rc4 2021-05-29 06:25:16 -10:00
amba
android
ata
atm
auxdisplay
base Merge 5.13-rc4 into usb-next 2021-05-31 09:50:26 +02:00
bcma
block
bluetooth
bus
cdrom
char
clk
clocksource
comedi
connector
counter
cpufreq
cpuidle
crypto
cxl
dax
dca
devfreq
dio
dma
dma-buf
edac
eisa
extcon
firewire
firmware
fpga
fsi
gnss
gpio
gpu Merge tag 'drm-intel-fixes-2021-05-27' of ssh://git.freedesktop.org/git/drm/drm-intel into drm-fixes 2021-05-28 13:28:18 +10:00
greybus
hid
hsi
hv
hwmon
hwspinlock
hwtracing
i2c i2c: s3c2410: fix possible NULL pointer deref on read message after write 2021-05-28 10:16:23 +02:00
i3c
ide
idle
iio iio: adc: ad7793: Add missing error code in ad7793_setup() 2021-05-22 08:32:36 +01:00
infiniband Networking fixes for 5.13-rc4, including fixes from bpf, netfilter, 2021-05-26 17:44:49 -10:00
input
interconnect
iommu iommu/vt-d: Fix sysfs leak in alloc_iommu() 2021-05-27 16:07:08 +02:00
ipack
irqchip
isdn Networking fixes for 5.13-rc4, including fixes from bpf, netfilter, 2021-05-26 17:44:49 -10:00
leds
lightnvm
macintosh
mailbox
mcb
md block-5.13-2021-05-28 2021-05-28 14:42:37 -10:00
media
memory
memstick
message
mfd
misc Char/Misc driver fixes for 5.13-rc4 2021-05-29 06:41:50 -10:00
mmc
most
mtd
mux
net Networking fixes for 5.13-rc4, including fixes from bpf, netfilter, 2021-05-26 17:44:49 -10:00
nfc NFC: nfcmrvl: fix kernel-doc syntax in file headers 2021-05-23 17:26:38 -07:00
ntb
nubus
nvdimm
nvme nvmet: fix false keep-alive timeout when a controller is torn down 2021-05-26 16:18:22 +02:00
nvmem
of
opp
parisc
parport
pci PCI: Add sysfs "removable" attribute 2021-05-27 09:36:31 +02:00
pcmcia
perf
phy
pinctrl
platform
pnp
power
powercap
pps
ps3
ptp
pwm
rapidio
ras
regulator
remoteproc
reset
rpmsg
rtc
s390 - Fix races in vfio-ccw request handling. 2021-05-29 05:51:53 -10:00
sbus
scsi SCSI fixes on 20210528 2021-05-28 14:47:48 -10:00
sh
siox
slimbus
soc
soundwire
spi spi: sc18is602: implement .max_{transfer,message}_size() for the controller 2021-05-21 13:13:33 +01:00
spmi
ssb
staging Second set of IIO fixes for the 5.13 cycle 2021-05-22 09:49:59 +02:00
target scsi: target: iblock: Fix smp_processor_id() BUG messages 2021-05-21 16:40:00 -04:00
tc
tee
thermal thermal/drivers/qcom: Fix error code in adc_tm5_get_dt_channel_data() 2021-05-27 11:38:34 +02:00
thunderbolt
tty TTY / Serial driver fixes for 5.13-rc4 2021-05-29 06:25:16 -10:00
uio
usb usb: gadget: u_audio: add real feedback implementation 2021-06-09 11:26:49 +02:00
vdpa
vfio
vhost
video video: hgafb: correctly handle card detect failure during probe 2021-05-21 15:04:05 +02:00
virt
virtio
visorbus
vlynq
vme
w1
watchdog
xen
zorro
Kconfig
Makefile