linux/drivers/usb/gadget
Lukasz Majewski d3ca0259c5 usb:hsotg:samsung: Sending ZLP packet for IN EP0 transfers
This commit targets following scenarios for IN requests:

1. HOST requests e.g. 256B (which is a multiple of MPS = 64B).
Then NO ZLP shall be sent, since host expects exact number of bytes.

2. HOST requested 4096B, but our data for sending is 256B. In this
situation ZLP shall be send to tell HOST that no more data is available
and it shall not wait for more data. This prevents HOST from hanging.

Tested with:
- DFU gadget (various size of the sent data - also packet = MPS)
- Ethernet gadget (CDC and RNDIS)
- Multi Function Gadget (g_multi)

HW:
- Samsung's C210 Universal rev.0
- Samsung's C110 GONI

Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
2012-05-04 15:53:12 +03:00
..
acm_ms.c usb: gadget: add new usb gadget for ACM and mass storage 2011-10-13 20:46:27 +03:00
amd5536udc.c usb: gadget: Update amd5536udc to use usb_endpoint_descriptor inside the struct usb_ep 2012-05-04 15:52:52 +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_udc: convert to new style start/stop interface 2012-05-04 15:53:00 +03: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 usb: gadget: atmel_usba_udc: convert to newstyle start/stop interface 2012-05-04 15:53:01 +03: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: Add Audio Class 2.0 Driver 2012-02-15 10:10:31 +02:00
cdc2.c usb: Add module.h to drivers/usb consumers who really use it. 2011-10-31 19:31:25 -04:00
ci13xxx_msm.c usb: Convert all users to new usb_phy 2012-02-27 15:41:48 +02:00
ci13xxx_pci.c usb: gadget: use module_pci_driver 2012-05-04 15:52:50 +03:00
ci13xxx_udc.c usb: gadget: Update ci13xxx_udc to use usb_endpoint_descriptor inside the struct usb_ep 2012-05-04 15:52:51 +03:00
ci13xxx_udc.h usb: gadget: Update ci13xxx_udc to use usb_endpoint_descriptor inside the struct usb_ep 2012-05-04 15:52:51 +03:00
composite.c usb: gadget: add a sparse endian notation 2012-05-04 15:53:08 +03:00
config.c usb gadget: clean up FSF boilerplate text 2011-09-09 16:00:09 -07:00
dbgp.c usb: gadget: rename usb_gadget_driver::speed to max_speed 2011-12-12 11:45:12 +02:00
dummy_hcd.c usb: gadget: dummy_hcd: allow to free requests on disabled endpoints 2012-05-04 15:53:04 +03:00
epautoconf.c This merge is rather big. Here's what it contains: 2012-03-01 09:20:28 -08:00
ether.c module_param: make bool parameters really bool (drivers & misc) 2012-01-13 09:32:20 +10:30
f_acm.c usb: gadget: add usb3.0 descriptors to serial gadgets 2012-02-09 10:11:36 +02:00
f_ecm.c usb: gadget: Add Interface Association Descriptor to ECM 2012-01-30 11:17:26 +02:00
f_eem.c usb gadget: clean up FSF boilerplate text 2011-09-09 16:00:09 -07:00
f_fs.c f_fs: ffs_func_free: cleanup requests allocated by autoconfig 2012-05-04 15:53:09 +03:00
f_hid.c usb gadget: clean up FSF boilerplate text 2011-09-09 16:00:09 -07:00
f_loopback.c usb: gadget: add isochronous support to gadget zero 2012-05-04 15:53:08 +03:00
f_mass_storage.c usb: gadget: f_mass_storage: remove deprecated fsg_add() 2012-05-04 15:53:05 +03:00
f_midi.c Allocate correct size (portably) in drivers/usb/gadget/f_midi.c::f_midi_bind() 2012-03-02 16:22:11 -08:00
f_ncm.c usb gadget: clean up FSF boilerplate text 2011-09-09 16:00:09 -07:00
f_obex.c usb: Add module.h to drivers/usb consumers who really use it. 2011-10-31 19:31:25 -04:00
f_phonet.c f_phonet: fix skb truesize underestimation 2012-03-27 22:50:54 -04:00
f_rndis.c usb: gadget: rndis: fix Missing req->context assignment 2012-04-10 19:11:50 +03:00
f_serial.c usb: gadget: add usb3.0 descriptors to serial gadgets 2012-02-09 10:11:36 +02:00
f_sourcesink.c usb: gadget: add isochronous support to gadget zero 2012-05-04 15:53:08 +03:00
f_subset.c usb gadget: fix a section mismatch when compiling g_ffs with CONFIG_USB_FUNCTIONFS_ETH 2012-03-13 14:29:33 -07:00
f_uac1.c usb: gadget: audio: Move string IDs to audio.c 2012-02-15 10:10:25 +02:00
f_uac2.c usb: gadget: Add Audio Class 2.0 Driver 2012-02-15 10:10:31 +02:00
f_uvc.c usb gadget: clean up FSF boilerplate text 2011-09-09 16:00:09 -07:00
f_uvc.h usb gadget: clean up FSF boilerplate text 2011-09-09 16:00:09 -07:00
file_storage.c usb/gadget: use common defines within the storage gadget 2012-02-28 11:08:33 -08:00
fsl_mxc_udc.c usb: fsl_mxc_udc.c: Remove compile-time dependency of MX35 SoC type 2011-11-29 23:19:04 +09:00
fsl_qe_udc.c usb: gadget: fsl_qe_udc: remove not implemented callbacks 2012-05-04 15:53:02 +03:00
fsl_qe_udc.h usb: gadget: Update fsl_qe_udc to use usb_endpoint_descriptor inside the struct usb_ep 2012-05-04 15:52:54 +03:00
fsl_udc_core.c usb: gadget: fsl_udc_core: dTD's next dtd pointer need to be updated once written 2012-05-04 15:53:06 +03:00
fsl_usb2_udc.h usb: gadget: Update fsl_udc_core to use usb_endpoint_descriptor inside the struct usb_ep 2012-05-04 15:52:54 +03:00
fusb300_udc.c usb: gadget: Update fusb300_udc to use usb_endpoint_descriptor inside the struct usb_ep 2012-05-04 15:52:55 +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: FunctionFS: make module init & exit __init & __exit 2012-04-10 19:11:47 +03:00
g_zero.h usb: gadget: add isochronous support to gadget zero 2012-05-04 15:53:08 +03:00
gadget_chips.h usb: gadget: introduce gadget_is_dwc3() 2011-08-22 16:00:46 -07:00
gmidi.c usb: Add module.h to drivers/usb consumers who really use it. 2011-10-31 19:31:25 -04:00
goku_udc.c usb: gadget: Update goku_udc to use usb_endpoint_descriptor inside the struct usb_ep 2012-05-04 15:52:55 +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: gadget: Make g_hid device class conform to spec. 2012-03-08 13:11:34 -08:00
imx_udc.c usb: gadget: imx_udc: convert to new style start/stop 2012-05-04 15:53:02 +03:00
imx_udc.h usb gadget: clean up FSF boilerplate text 2011-09-09 16:00:09 -07:00
inode.c USB: remove compile warning on gadget/inode.c 2012-04-06 13:54:01 -07:00
Kconfig usb: gadget: Include i.MX processors in the USB_FSL_USB2 help text 2012-05-04 15:53:07 +03:00
langwell_udc.c usb: gadget: Update langwell_udc to use usb_endpoint_descriptor inside the struct usb_ep 2012-05-04 15:52:56 +03:00
langwell_udc.h usb: gadget: Update langwell_udc to use usb_endpoint_descriptor inside the struct usb_ep 2012-05-04 15:52:56 +03:00
m66592-udc.c usb: gadget: Update m66592-udc to use usb_endpoint_descriptor inside the struct usb_ep 2012-05-04 15:52:56 +03:00
m66592-udc.h usb: gadget: Update m66592-udc to use usb_endpoint_descriptor inside the struct usb_ep 2012-05-04 15:52:56 +03:00
Makefile usb: gadget: mv_udc: drop ARCH dependency 2011-12-20 12:55:06 +02:00
mass_storage.c usb: gadget: update Michal Nazarewicz's email address 2012-01-24 11:45:11 +02:00
multi.c usb: gadget: update Michal Nazarewicz's email address 2012-01-24 11:45:11 +02:00
mv_udc_core.c 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.h usb: gadget: Update mv_udc to use usb_endpoint_descriptor inside the struct usb_ep 2012-05-04 15:52:57 +03:00
ncm.c usb gadget: clean up FSF boilerplate text 2011-09-09 16:00:09 -07:00
ndis.h usb gadget: clean up FSF boilerplate text 2011-09-09 16:00:09 -07:00
net2272.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
net2272.h USB: net2272: driver for PLX NET2272 USB device controller 2011-06-06 16:47:27 -07:00
net2280.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
net2280.h usb gadget: clean up FSF boilerplate text 2011-09-09 16:00:09 -07:00
nokia.c usb: gadget: add max_speed to usb_composite_driver 2011-07-01 14:27:05 -07:00
omap_udc.c usb: gadget: Update omap_udc to use usb_endpoint_descriptor inside the struct usb_ep 2012-05-04 15:52:57 +03: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: Update pch_udc to use usb_endpoint_descriptor inside the struct usb_ep 2012-05-04 15:52:59 +03:00
printer.c usb: gadget: make g_printer use composite 2012-05-04 15:53:04 +03:00
pxa25x_udc.c usb: gadget: Update pxa25x_udc to use usb_endpoint_descriptor inside the struct usb_ep 2012-05-04 15:52:58 +03:00
pxa25x_udc.h usb: gadget: Update pxa25x_udc to use usb_endpoint_descriptor inside the struct usb_ep 2012-05-04 15:52:58 +03:00
pxa27x_udc.c usb: otg: Convert all users to pass struct usb_otg for OTG functions 2012-02-27 15:41:52 +02:00
pxa27x_udc.h usb: otg: Rename otg_transceiver to usb_phy 2012-02-13 13:34:36 +02:00
r8a66597-udc.c usb: gadget: r8a66597-udc: add support for set_selfpowered 2012-05-04 15:53:07 +03:00
r8a66597-udc.h usb: gadget: r8a66597-udc: add support for set_selfpowered 2012-05-04 15:53:07 +03:00
rndis.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
rndis.h USB: rndis: section mismatch fix 2010-09-03 17:33:40 -07:00
s3c2410_udc.c usb: gadget: Update s3c2410_udc to use usb_endpoint_descriptor inside the struct usb_ep 2012-05-04 15:52:59 +03: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
s3c-hsotg.c usb:hsotg:samsung: Sending ZLP packet for IN EP0 transfers 2012-05-04 15:53:12 +03:00
s3c-hsotg.h usb:hsotg:samsung: Remove platform dependency from s3c-hsotg 2012-05-04 15:53:09 +03:00
s3c-hsudc.c usb: gadget: Update s3c-hsudc to use usb_endpoint_descriptor inside the struct usb_ep 2012-05-04 15:53:00 +03:00
serial.c usb: gadget: add usb3.0 descriptors to serial gadgets 2012-02-09 10:11:36 +02:00
storage_common.c This merge is rather big. Here's what it contains: 2012-03-01 09:20:28 -08:00
u_ether.c usb gadget: clean up FSF boilerplate text 2011-09-09 16:00:09 -07:00
u_ether.h usb gadget: clean up FSF boilerplate text 2011-09-09 16:00:09 -07:00
u_phonet.h
u_serial.c TTY: remove unneeded tty->index checks 2012-03-08 11:42:21 -08:00
u_serial.h usb: gadget: add usb_endpoint_descriptor to struct usb_ep 2011-06-28 11:14:36 -07:00
u_uac1.c usb: gadget: Rename audio function to uac1 2012-02-15 10:09:48 +02:00
u_uac1.h usb: gadget: Rename audio function to uac1 2012-02-15 10:09:48 +02:00
udc-core.c usb: gadget: udc-core: fix asymmetric calls in remove_driver 2012-04-10 19:11:49 +03:00
usbstring.c USB: remove homegrown UTF conversion routine for gadgets 2011-11-18 10:51:01 -08:00
uvc_queue.c usb: gadget: uvc: Remove non-required locking from 'uvc_queue_next_buffer' routine 2012-04-10 19:11:51 +03:00
uvc_queue.h V4L/DVB: uvc: Fix multiple symbols definitions with UVC gadget and host drivers 2010-07-11 17:45:10 -03:00
uvc_v4l2.c Merge branch 'usb-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb 2011-10-25 12:23:15 +02:00
uvc_video.c usb gadget: clean up FSF boilerplate text 2011-09-09 16:00:09 -07:00
uvc.h Merge branch 'usb-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb 2011-10-25 12:23:15 +02:00
webcam.c usb gadget: clean up FSF boilerplate text 2011-09-09 16:00:09 -07:00
zero.c usb: gadget: add isochronous support to gadget zero 2012-05-04 15:53:08 +03:00