linux/drivers/usb/gadget/function
Peter Chen 913e4a90b6 usb: gadget: f_uac2: finalize wMaxPacketSize according to bandwidth
According to USB Audio Device 2.0 Spec, Ch4.10.1.1:
wMaxPacketSize is defined as follows:
Maximum packet size this endpoint is capable of sending or receiving
when this configuration is selected.
This is determined by the audio bandwidth constraints of the endpoint.

In current code, the wMaxPacketSize is defined as the maximum packet size
for ISO endpoint, and it will let the host reserve much more space than
it really needs, so that we can't let more endpoints work together at
one frame.

We find this issue when we try to let 4 f_uac2 gadgets work together [1]
at FS connection.

[1]http://www.spinics.net/lists/linux-usb/msg123478.html

Acked-by: Daniel Mack <zonque@gmail.com>
Cc: andrzej.p@samsung.com
Cc: Daniel Mack <zonque@gmail.com>
Cc: tiwai@suse.de
Cc: <stable@vger.kernel.org> #v3.18+
Cc: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
2015-07-30 11:43:38 -05:00
..
f_acm.c usb: gadget: function: acm: make f_acm pass USB20CV Chapter9 2014-10-20 15:58:48 -05:00
f_ecm.c usb: gadget: f_ecm/f_ncm: check quirk instead of UDC name 2015-07-30 11:43:36 -05:00
f_eem.c usb: gadget: function: Remove redundant usb_free_all_descriptors 2014-10-23 13:57:24 -05:00
f_fs.c usb: gadget: f_fs: do not set cancel function on synchronous {read,write} 2015-07-06 12:34:08 -05:00
f_hid.c usb: gadget: hid: Fix static variable usage 2015-04-27 14:44:23 -05:00
f_loopback.c usb: gadget: loopback: Remove out-of-date comment 2015-07-29 09:59:18 -05:00
f_mass_storage.c usb: gadget: f_mass_storage: stop thread in bind failure case 2015-07-30 11:43:37 -05:00
f_mass_storage.h
f_midi.c usb: gadget: f_midi: fix error recovery path 2015-07-06 12:34:08 -05:00
f_ncm.c usb: gadget: f_ecm/f_ncm: check quirk instead of UDC name 2015-07-30 11:43:36 -05:00
f_obex.c usb: gadget: apply generic altsetting support check mechanism 2015-07-30 11:43:36 -05:00
f_phonet.c usb: gadget: function: phonet: balance usb_ep_disable calls 2015-02-23 00:18:52 -06:00
f_printer.c usb: gadget: f_printer: use non-zero flag for bitwise and 2015-03-13 10:41:05 -05:00
f_rndis.c usb: gadget: rndis: remove the limit of available rndis connections 2015-05-07 13:47:17 -05:00
f_serial.c usb: gadget: serial: replace {V,}DBG macro with dev_{v,}dbg 2014-08-27 14:13:17 -05:00
f_sourcesink.c usb: gadget: SourceSink: Remove out-of-date comment 2015-07-29 09:59:18 -05:00
f_subset.c usb: gadget: function: Remove redundant usb_free_all_descriptors 2014-10-23 13:57:24 -05:00
f_uac1.c usb: gadget: f_uac1: check return code from config_ep_by_speed 2015-05-26 10:15:09 -05:00
f_uac2.c usb: gadget: f_uac2: finalize wMaxPacketSize according to bandwidth 2015-07-30 11:43:38 -05:00
f_uvc.c usb: gadget: f_uvc: use bind_deactivated flag 2015-07-29 09:59:20 -05:00
f_uvc.h usb: gadget: f_uvc: remove compatibility layer 2014-09-09 09:49:41 -05:00
g_zero.h Revert "usb: gadget: zero: Add support for interrupt EP" 2015-03-11 10:00:05 -05:00
Makefile usb: gadget: f_printer: convert to new function interface with backward compatibility 2015-03-10 15:33:40 -05:00
ndis.h
rndis.c usb: gadget: rndis: use signed type for a signed value 2015-05-21 16:29:14 -05:00
rndis.h usb: gadget: rndis: use signed type for a signed value 2015-05-21 16:29:14 -05:00
storage_common.c vfs: add file_path() helper 2015-06-23 18:00:05 -04:00
storage_common.h usb: gadget: storage-common: Set FSG_MAX_LUNS to 16 2015-07-29 09:59:19 -05:00
u_ecm.h
u_eem.h
u_ether_configfs.h
u_ether.c usb: gadget: ethernet: re-use %pM specifier to print MAC 2015-01-19 12:53:32 -06:00
u_ether.h usb: gadget: apply generic altsetting support check mechanism 2015-07-30 11:43:36 -05:00
u_fs.h usb: gadget: ffs: add eventfd notification about ffs events 2015-01-27 09:34:59 -06:00
u_gether.h
u_hid.h usb: gadget: hid: add configfs support 2014-11-06 16:18:19 -06:00
u_midi.h usb: gadget: f_midi: add configfs support 2014-11-05 13:37:17 -06:00
u_ncm.h
u_phonet.h
u_printer.h usb: gadget: printer: add configfs support 2015-03-10 15:33:41 -05:00
u_rndis.h usb: gadget: rndis: remove the limit of available rndis connections 2015-05-07 13:47:17 -05:00
u_serial.c usb: gadget: serial: fix re-ordering of tx data 2015-04-27 14:44:29 -05:00
u_serial.h
u_uac1.c usb: gadget: u_uac1: fix one code style problem 2015-01-15 09:41:48 -06:00
u_uac1.h usb: gadget: uac1: struct gaudio is useless for struct f_uac1_opts 2015-01-15 09:41:48 -06:00
u_uac2.h usb: gadget: f_uac2: add configfs support 2014-08-20 14:04:42 -05:00
u_uvc.h usb: gadget: uvc: configfs support in uvc function 2015-01-12 12:13:26 -06:00
uvc_configfs.c usb: gadget: uvc: comments for iterating over streaming hierarchy 2015-01-27 10:00:27 -06:00
uvc_configfs.h usb: gadget: uvc: configfs support in uvc function 2015-01-12 12:13:26 -06:00
uvc_queue.c [media] uvc gadget: switch to v4l2 core locking 2015-03-02 17:05:23 -03:00
uvc_queue.h [media] uvc gadget: switch to v4l2 core locking 2015-03-02 17:05:23 -03:00
uvc_v4l2.c Merge branch 'drm-next-merged' of git://people.freedesktop.org/~airlied/linux into v4l_for_linus 2015-04-21 09:44:55 -03:00
uvc_v4l2.h usb: gadget: uvc: separately compile some components of f_uvc 2014-09-09 09:49:12 -05:00
uvc_video.c Merge branch 'drm-next-merged' of git://people.freedesktop.org/~airlied/linux into v4l_for_linus 2015-04-21 09:44:55 -03:00
uvc_video.h usb: gadget: uvc: separately compile some components of f_uvc 2014-09-09 09:49:12 -05:00
uvc.h usb: gadget: uvc: remove unused including <linux/version.h> 2015-04-27 15:48:11 -05:00