android_kernel_motorola_sm6225/drivers/usb/gadget
Sebastian Andrzej Siewior 19b10a8828 usb: gadget: allocate & giveback serial ports instead hard code them
This patch removes gserial_setup() and gserial_cleanup() and adds
gserial_alloc_line() and gserial_free_line() to replace them.

The initial setup of u_serial happens now on module load time. A
maximum of four TTY ports can be requested which is the current limit.
In theory we could extend this limit, the hard limit is the number of
available endpoints.
alloc_tty_driver() is now called at module init time with the max
available ports. The per-line footprint here is on 32bit is 3 * size of
pointer + 60 bytes (for cdevs).
The remaining memory (struct gs_port) is allocated once a port is
requested.

With this change it is possible to load g_multi and g_serial at the same
time. GS0 receives the module that is loaded first, GS1 is received by
the next module and so on. With the configfs interface the port number
can be exported and the device node is more predictable. Nothing changes
for g_serial and friends as long as one module is used.

Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Felipe Balbi <balbi@ti.com>
2013-01-21 20:52:43 +02:00
..
acm_ms.c usb: gadget: allocate & giveback serial ports instead hard code them 2013-01-21 20:52:43 +02:00
amd5536udc.c usb: gadget: remove global variable composite in composite.c 2012-09-10 15:35:41 +03:00
amd5536udc.h usb: gadget: Update amd5536udc to use usb_endpoint_descriptor inside the struct usb_ep 2012-05-04 15:52:52 +03:00
at91_udc.c USB: gadget: at91_adc: fix pullup pin validity check 2013-01-10 12:41:01 +02:00
at91_udc.h usb: gadget: Update at91_udc to use usb_endpoint_descriptor inside the struct usb_ep 2012-05-04 15:52:53 +03:00
atmel_usba_udc.c arm: at91: move platfarm_data to include/linux/platform_data/atmel.h 2012-11-06 20:29:33 +08:00
atmel_usba_udc.h usb: gadget: Update atmel_usba_udc to use usb_endpoint_descriptor inside the struct usb_ep 2012-05-04 15:52:53 +03:00
audio.c usb: gadget: remove usb_gadget_controller_number() 2012-09-10 16:43:24 +03:00
bcm63xx_udc.c usb: remove use of __devexit 2012-11-21 13:27:17 -08:00
cdc2.c usb: gadget: allocate & giveback serial ports instead hard code them 2013-01-21 20:52:43 +02:00
composite.c usb: gadget: composite: add usb_remove_function() 2013-01-21 20:52:42 +02:00
config.c usb: gadget: always update HS/SS descriptors and create a copy of them 2012-10-31 15:09:44 +02:00
dbgp.c usb: gadget: allocate & giveback serial ports instead hard code them 2013-01-21 20:52:43 +02:00
dummy_hcd.c usb: gadget: dummy_hcd: remove global the_controller variable 2012-10-31 15:18:01 +02:00
epautoconf.c usb: gadget: libcomposite: add epautoconf.c to libcomposite 2012-09-10 15:37:51 +03:00
ether.c usb: gadget: remove usb_gadget_controller_number() 2012-09-10 16:43:24 +03:00
f_acm.c usb: gadget: allocate & giveback serial ports instead hard code them 2013-01-21 20:52:43 +02:00
f_ecm.c usb: gadget: let f_* use usb_string_ids_tab() where it makes sense 2012-10-31 15:11:47 +02:00
f_eem.c usb: gadget: always update HS/SS descriptors and create a copy of them 2012-10-31 15:09:44 +02:00
f_fs.c usb: gadget: FunctionFS: Use kstrtoul() 2013-01-10 12:42:14 +02:00
f_hid.c usb: gadget: always update HS/SS descriptors and create a copy of them 2012-10-31 15:09:44 +02:00
f_loopback.c usb: gadget: convert source sink and loopback to new function interface 2013-01-21 20:52:40 +02:00
f_mass_storage.c usb: gadget: mass_storage: remove >= 0 check for unsigned type 2013-01-10 12:36:47 +02:00
f_midi.c usb: gadget: always update HS/SS descriptors and create a copy of them 2012-10-31 15:09:44 +02:00
f_ncm.c usb: gadget: ncm: make global variable ndp*_opts read only 2013-01-10 12:25:12 +02:00
f_obex.c usb: gadget: allocate & giveback serial ports instead hard code them 2013-01-21 20:52:43 +02:00
f_phonet.c usb: gadget: always update HS/SS descriptors and create a copy of them 2012-10-31 15:09:44 +02:00
f_rndis.c usb: gadget: let f_* use usb_string_ids_tab() where it makes sense 2012-10-31 15:11:47 +02:00
f_serial.c usb: gadget: allocate & giveback serial ports instead hard code them 2013-01-21 20:52:43 +02:00
f_sourcesink.c usb: gadget: convert source sink and loopback to new function interface 2013-01-21 20:52:40 +02:00
f_subset.c usb: gadget: let f_* use usb_string_ids_tab() where it makes sense 2012-10-31 15:11:47 +02:00
f_uac1.c usb: gadget: always update HS/SS descriptors and create a copy of them 2012-10-31 15:09:44 +02:00
f_uac2.c usb: gadget: remove unused variable in uac2_pcm_trigger() 2013-01-10 12:35:47 +02:00
f_uvc.c usb: gadget: let f_* use usb_string_ids_tab() where it makes sense 2012-10-31 15:11:47 +02:00
f_uvc.h usb: gadget: uvc: Add super-speed support to UVC webcam gadget 2012-06-04 18:12:36 +03:00
fsl_mxc_udc.c usb: gadget: fsl_mxc_udc: do not depend on grouped clocks 2012-06-22 13:09:52 +03:00
fsl_qe_udc.c usb: remove use of __devexit 2012-11-21 13:27:17 -08:00
fsl_qe_udc.h usb: gadget: Complete fsl qe/udc driver conversion 2012-06-12 13:32:29 +03:00
fsl_udc_core.c usb: fix typo in drivers/usb 2012-11-06 15:04:14 +02:00
fsl_usb2_udc.h usb: gadget: regression fix - usage of usb_ep 2012-06-04 18:24:49 +03:00
fusb300_udc.c usb: gadget: remove global variable composite in composite.c 2012-09-10 15:35:41 +03:00
fusb300_udc.h usb: gadget: Update fusb300_udc to use usb_endpoint_descriptor inside the struct usb_ep 2012-05-04 15:52:55 +03:00
g_ffs.c usb: gadget: libcomposite: move composite.c into libcomposite 2012-09-10 16:13:03 +03:00
g_zero.h usb: gadget: convert source sink and loopback to new function interface 2013-01-21 20:52:40 +02:00
gadget_chips.h usb: gadget: remove usb_gadget_controller_number() 2012-09-10 16:43:24 +03:00
gmidi.c usb: gadget: consider link speed for bMaxPower 2013-01-10 12:38:52 +02:00
goku_udc.c usb: gadget: remove global variable composite in composite.c 2012-09-10 15:35:41 +03:00
goku_udc.h usb: gadget: Update goku_udc to use usb_endpoint_descriptor inside the struct usb_ep 2012-05-04 15:52:55 +03:00
hid.c usb: remove use of __devexit 2012-11-21 13:27:17 -08:00
imx_udc.c ARM: imx: move platform_data definitions 2012-09-14 11:17:21 +02:00
imx_udc.h
inode.c usb: gadget: remove DMA_ADDR_INVALID from f_uac2 and gadgetfs 2012-10-31 15:10:06 +02:00
Kconfig usb: gadget: u_serial: convert into a module 2013-01-21 20:52:42 +02:00
lpc32xx_udc.c usb: remove use of __devexit 2012-11-21 13:27:17 -08:00
m66592-udc.c usb: gadget: remove global variable composite in composite.c 2012-09-10 15:35:41 +03:00
m66592-udc.h gadget/m66592: remove conditional compilation of clk code 2012-07-30 17:25:12 -07:00
Makefile usb: gadget: u_serial: convert into a module 2013-01-21 20:52:42 +02:00
mass_storage.c usb: gadget: libcomposite: move composite.c into libcomposite 2012-09-10 16:13:03 +03:00
multi.c usb: gadget: allocate & giveback serial ports instead hard code them 2013-01-21 20:52:43 +02:00
mv_u3d.h usb: gadget: mv: Add USB 3.0 device driver for Marvell PXA2128 chip. 2012-06-22 13:08:21 +03:00
mv_u3d_core.c usb: remove use of __devexit 2012-11-21 13:27:17 -08:00
mv_udc.h usb: gadget: Update mv_udc to use usb_endpoint_descriptor inside the struct usb_ep 2012-05-04 15:52:57 +03:00
mv_udc_core.c usb: remove use of __devexit 2012-11-21 13:27:17 -08:00
ncm.c usb: gadget: remove usb_gadget_controller_number() 2012-09-10 16:43:24 +03:00
ndis.h usb/net: rndis: break out <linux/rndis.h> defines 2012-05-12 15:02:22 -04:00
net2272.c usb: remove use of __devexit 2012-11-21 13:27:17 -08:00
net2272.h
net2280.c usb: gadget: Remove File-backed Storage Gadget (g_file_storage). 2012-11-08 16:01:04 +02:00
net2280.h
nokia.c usb: gadget: allocate & giveback serial ports instead hard code them 2013-01-21 20:52:43 +02:00
omap_udc.c ARM: arm-soc: power management and clock changes 2012-12-13 10:58:20 -08:00
omap_udc.h usb: gadget: Update omap_udc to use usb_endpoint_descriptor inside the struct usb_ep 2012-05-04 15:52:57 +03:00
pch_udc.c usb: gadget: remove global variable composite in composite.c 2012-09-10 15:35:41 +03:00
printer.c usb: gadget: always update HS/SS descriptors and create a copy of them 2012-10-31 15:09:44 +02:00
pxa25x_udc.c ARM: move udc_pxa2xx.h to linux/platform_data 2012-11-16 11:35:30 +00:00
pxa25x_udc.h usb: gadget: pxa25x: make it compile with debug again 2012-09-10 15:35:58 +03:00
pxa27x_udc.c ARM: soc: multiplatform enablement 2012-10-01 19:11:38 -07:00
pxa27x_udc.h usb: gadget: Remove File-backed Storage Gadget (g_file_storage). 2012-11-08 16:01:04 +02:00
r8a66597-udc.c gadget/r8a66597: remove conditional compilation of clk code 2012-07-30 17:25:12 -07:00
r8a66597-udc.h gadget/r8a66597: remove conditional compilation of clk code 2012-07-30 17:25:12 -07:00
rndis.c usb: gadget: use native print_hex_dump_bytes() 2012-08-23 11:04:18 +03:00
rndis.h usb/net: rndis: break out <linux/rndis.h> defines 2012-05-12 15:02:22 -04:00
s3c-hsotg.c usb: gadget: s3c-hsotg: Use devm_regulator_bulk_get API 2013-01-10 12:41:56 +02:00
s3c-hsotg.h usb:hsotg:samsung: Remove the S3C_ prefix from registers definition. 2012-05-04 15:53:17 +03:00
s3c-hsudc.c usb: gadget: remove u32 castings of address passed to readl() 2013-01-21 20:52:37 +02:00
s3c2410_udc.c ARM: soc: multiplatform enablement 2012-10-01 19:11:38 -07:00
s3c2410_udc.h usb: gadget: Update s3c2410_udc to use usb_endpoint_descriptor inside the struct usb_ep 2012-05-04 15:52:59 +03:00
serial.c usb: gadget: allocate & giveback serial ports instead hard code them 2013-01-21 20:52:43 +02:00
storage_common.c usb: gadget: file_storage: remove its last pieces 2013-01-10 12:24:30 +02:00
tcm_usb_gadget.c treewide: fix printk typo in multiple drivers 2012-11-19 11:08:17 +01:00
tcm_usb_gadget.h usb: gadget: make sure each gadget is using same index for Product, Serial,… 2012-09-10 16:13:00 +03:00
u_ether.c usb: gadget: g_ether: fix frame size check 2012-11-08 16:04:50 +02:00
u_ether.h usb: gadget: f_rndis: Set rndis vendor parameters 2012-05-10 12:27:58 -07:00
u_phonet.h
u_serial.c usb: gadget: allocate & giveback serial ports instead hard code them 2013-01-21 20:52:43 +02:00
u_serial.h usb: gadget: allocate & giveback serial ports instead hard code them 2013-01-21 20:52:43 +02:00
u_uac1.c gadgetfs: clean up 2012-07-29 21:24:21 +04:00
u_uac1.h
udc-core.c usb: gadget: Remove reference to is_dualspeed from sysfs. 2012-11-08 16:04:34 +02:00
usbstring.c usb: gadget: libcomposite: move MODULE_VERSION to composite.c 2012-09-10 16:13:03 +03:00
uvc.h usb: gadget: uvc: Add super-speed support to UVC webcam gadget 2012-06-04 18:12:36 +03:00
uvc_queue.c [media] usb: gadget/uvc: Remove non-required locking from 'uvc_queue_next_buffer' routine 2012-04-10 15:46:02 -03:00
uvc_queue.h
uvc_v4l2.c Merge remote-tracking branch 'linus/master' into staging/for_v3.5 2012-05-15 08:39:25 -03:00
uvc_video.c
webcam.c usb: gadget: consider link speed for bMaxPower 2013-01-10 12:38:52 +02:00
zero.c usb: gadget: convert source sink and loopback to new function interface 2013-01-21 20:52:40 +02:00