linux/drivers/usb/dwc2
Vahram Aharonyan 540ccba085 usb: dwc2: gadget: Start and complete DDMA isoc transfers
For DDMA mode in case of isochronous transfers completion performed
differently than other transfer types. This is because each usb request
was mapped to one descriptor in the chain and SW gets xfercomplete
interrupt on all descriptors. The endpoint remains enabled until HW
processes last descriptor with "L" bit set or BNA interrupt gets
asserted for IN and OUT endpoints correspondingly.

Add function dwc2_gadget_complete_isoc_request_ddma() - completes one
isochronous request taken from endpoint's queue.

Add function dwc2_gadget_start_next_isoc_ddma() - tries to restart
isochronous endpoint if requests are pending. Check for EPENA. If the
endpoint was disabled, try to restart it after programming descriptor
chain prepared by SW earlier, switch SW to fill the other half of chain.

Add function dwc2_gadget_fill_isoc_desc() - initializes DMA descriptor
for isochronous transfer based on the received request data and endpoint
characteristics.

Added function dwc2_gadget_start_isoc_ddma() - prepare DMA chain for
isochronous transfer in DDMA, programs corresponding DMA address to
DEPDMA, enables the endpoint. This function is called once SW decides to
start isochronous IN or OUT transfer depend on reception of NAK or
OUTTknEPdis interrupts indicating first isochronous token arrival from
host.

Signed-off-by: Vahram Aharonyan <vahrama@synopsys.com>
Signed-off-by: John Youn <johnyoun@synopsys.com>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
2016-11-18 13:54:47 +02:00
..
core_intr.c usb: dwc2: Declare the core params struct statically 2016-11-18 13:54:11 +02:00
core.c usb: dwc2: Declare the core params struct statically 2016-11-18 13:54:11 +02:00
core.h usb: dwc2: gadget: Add DDMA isoc related fields to dwc2_hsotg_ep 2016-11-18 13:54:46 +02:00
debug.h usb: dwc2: move debugfs code to a separate file 2015-04-29 15:18:25 -05:00
debugfs.c usb: dwc2: Use platform endianness when accessing registers 2015-09-27 10:54:31 -05:00
gadget.c usb: dwc2: gadget: Start and complete DDMA isoc transfers 2016-11-18 13:54:47 +02:00
hcd_ddma.c usb: dwc2: host: Rename MAX_DMA_DESC_SIZE to HOST_DMA_NBYTES_LIMIT 2016-11-18 13:54:19 +02:00
hcd_intr.c usb: dwc2: Rename the dma_enable parameter to host_dma 2016-11-18 13:54:13 +02:00
hcd_queue.c usb: dwc2: Fix coverity issue in hcd_queue.c 2016-11-18 13:54:17 +02:00
hcd.c usb: dwc2: Update DMA descriptor structure 2016-11-18 13:54:18 +02:00
hcd.h usb: dwc2: Update DMA descriptor structure 2016-11-18 13:54:18 +02:00
hw.h usb: dwc2: gadget: Enable descriptor DMA mode 2016-11-18 13:54:46 +02:00
Kconfig USB: dwc2-usb: add USB_GADGET dependency 2016-06-29 11:11:41 +03:00
Makefile usb: dwc2: Add params.c file 2016-11-18 13:54:10 +02:00
params.c usb: dwc2: Remove reading in of invalid property 2016-11-18 13:54:44 +02:00
pci.c usb: dwc2: Deprecate g-use-dma binding 2016-11-18 13:54:17 +02:00
platform.c usb: dwc2: Remove dwc2_set_all_params function 2016-11-18 13:54:11 +02:00