diff options
author | Vahram Aharonyan <vahrama@synopsys.com> | 2016-11-10 04:27:48 +0100 |
---|---|---|
committer | Felipe Balbi <felipe.balbi@linux.intel.com> | 2016-11-18 12:54:18 +0100 |
commit | dec4b55677edbd9f5e4c86d020ba44bd3f3f319d (patch) | |
tree | 669b92e4879419c2d328f0575292f52fbb2719cd /drivers/usb/dwc2 | |
parent | usb: dwc2: Make the DMA descriptor structure packed (diff) | |
download | linux-dec4b55677edbd9f5e4c86d020ba44bd3f3f319d.tar.xz linux-dec4b55677edbd9f5e4c86d020ba44bd3f3f319d.zip |
usb: dwc2: gadget: Add descriptor DMA parameter
Add a parameter for descriptor DMA and set it based on hardware
capabilities. This won't actually be used by the gadget until later,
when the descriptor DMA code is in place.
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>
Diffstat (limited to 'drivers/usb/dwc2')
-rw-r--r-- | drivers/usb/dwc2/core.h | 2 | ||||
-rw-r--r-- | drivers/usb/dwc2/gadget.c | 11 | ||||
-rw-r--r-- | drivers/usb/dwc2/params.c | 6 |
3 files changed, 19 insertions, 0 deletions
diff --git a/drivers/usb/dwc2/core.h b/drivers/usb/dwc2/core.h index f8c97f5da458..32a3cfc6f3bf 100644 --- a/drivers/usb/dwc2/core.h +++ b/drivers/usb/dwc2/core.h @@ -419,6 +419,7 @@ enum dwc2_ep0_state { * 0 - No (default) * 1 - Yes * @g_dma: Enables gadget dma usage (default: autodetect). + * @g_dma_desc: Enables gadget descriptor DMA (default: autodetect). * @g_rx_fifo_size: The periodic rx fifo size for the device, in * DWORDS from 16-32768 (default: 2048 if * possible, otherwise autodetect). @@ -498,6 +499,7 @@ struct dwc2_core_params { /* Gadget parameters */ bool g_dma; + bool g_dma_desc; u16 g_rx_fifo_size; u16 g_np_tx_fifo_size; u32 g_tx_fifo_size[MAX_EPS_CHANNELS]; diff --git a/drivers/usb/dwc2/gadget.c b/drivers/usb/dwc2/gadget.c index 1ba0bfc9e581..4013518265c0 100644 --- a/drivers/usb/dwc2/gadget.c +++ b/drivers/usb/dwc2/gadget.c @@ -96,6 +96,17 @@ static inline bool using_dma(struct dwc2_hsotg *hsotg) return hsotg->params.g_dma; } +/* + * using_desc_dma - return the descriptor DMA status of the driver. + * @hsotg: The driver state. + * + * Return true if we're using descriptor DMA. + */ +static inline bool using_desc_dma(struct dwc2_hsotg *hsotg) +{ + return hsotg->params.g_dma_desc; +} + /** * dwc2_gadget_incr_frame_num - Increments the targeted frame number. * @hs_ep: The endpoint diff --git a/drivers/usb/dwc2/params.c b/drivers/usb/dwc2/params.c index 74c3728f77d9..2f18a7b4c08c 100644 --- a/drivers/usb/dwc2/params.c +++ b/drivers/usb/dwc2/params.c @@ -1097,6 +1097,12 @@ static void dwc2_set_gadget_dma(struct dwc2_hsotg *hsotg) false, "gadget-dma", true, false, dma_capable); + + /* DMA Descriptor */ + dwc2_set_param_bool(hsotg, &p->g_dma_desc, false, + "gadget-dma-desc", + p->g_dma, false, + !!hw->dma_desc_enable); } /** |