Commit ec703251 authored by Vahram Aharonyan's avatar Vahram Aharonyan Committed by Felipe Balbi

usb: dwc2: Update DMA descriptor structure

Rename DMA descriptor structure from dwc2_hcd_dma_desc to dwc2_dma_desc
as it is applies to both host and gadget.
Signed-off-by: default avatarVahram Aharonyan <vahrama@synopsys.com>
Signed-off-by: default avatarJohn Youn <johnyoun@synopsys.com>
Signed-off-by: default avatarFelipe Balbi <felipe.balbi@linux.intel.com>
parent 9962b62f
...@@ -5105,7 +5105,7 @@ int dwc2_hcd_init(struct dwc2_hsotg *hsotg, int irq) ...@@ -5105,7 +5105,7 @@ int dwc2_hcd_init(struct dwc2_hsotg *hsotg, int irq)
if (hsotg->params.dma_desc_enable || if (hsotg->params.dma_desc_enable ||
hsotg->params.dma_desc_fs_enable) { hsotg->params.dma_desc_fs_enable) {
hsotg->desc_gen_cache = kmem_cache_create("dwc2-gen-desc", hsotg->desc_gen_cache = kmem_cache_create("dwc2-gen-desc",
sizeof(struct dwc2_hcd_dma_desc) * sizeof(struct dwc2_dma_desc) *
MAX_DMA_DESC_NUM_GENERIC, 512, SLAB_CACHE_DMA, MAX_DMA_DESC_NUM_GENERIC, 512, SLAB_CACHE_DMA,
NULL); NULL);
if (!hsotg->desc_gen_cache) { if (!hsotg->desc_gen_cache) {
...@@ -5121,7 +5121,7 @@ int dwc2_hcd_init(struct dwc2_hsotg *hsotg, int irq) ...@@ -5121,7 +5121,7 @@ int dwc2_hcd_init(struct dwc2_hsotg *hsotg, int irq)
} }
hsotg->desc_hsisoc_cache = kmem_cache_create("dwc2-hsisoc-desc", hsotg->desc_hsisoc_cache = kmem_cache_create("dwc2-hsisoc-desc",
sizeof(struct dwc2_hcd_dma_desc) * sizeof(struct dwc2_dma_desc) *
MAX_DMA_DESC_NUM_HS_ISOC, 512, 0, NULL); MAX_DMA_DESC_NUM_HS_ISOC, 512, 0, NULL);
if (!hsotg->desc_hsisoc_cache) { if (!hsotg->desc_hsisoc_cache) {
dev_err(hsotg->dev, dev_err(hsotg->dev,
......
...@@ -348,7 +348,7 @@ struct dwc2_qh { ...@@ -348,7 +348,7 @@ struct dwc2_qh {
struct list_head qtd_list; struct list_head qtd_list;
struct dwc2_host_chan *channel; struct dwc2_host_chan *channel;
struct list_head qh_list_entry; struct list_head qh_list_entry;
struct dwc2_hcd_dma_desc *desc_list; struct dwc2_dma_desc *desc_list;
dma_addr_t desc_list_dma; dma_addr_t desc_list_dma;
u32 desc_list_sz; u32 desc_list_sz;
u32 *n_bytes; u32 *n_bytes;
......
...@@ -95,7 +95,7 @@ static int dwc2_desc_list_alloc(struct dwc2_hsotg *hsotg, struct dwc2_qh *qh, ...@@ -95,7 +95,7 @@ static int dwc2_desc_list_alloc(struct dwc2_hsotg *hsotg, struct dwc2_qh *qh,
else else
desc_cache = hsotg->desc_gen_cache; desc_cache = hsotg->desc_gen_cache;
qh->desc_list_sz = sizeof(struct dwc2_hcd_dma_desc) * qh->desc_list_sz = sizeof(struct dwc2_dma_desc) *
dwc2_max_desc_num(qh); dwc2_max_desc_num(qh);
qh->desc_list = kmem_cache_zalloc(desc_cache, flags | GFP_DMA); qh->desc_list = kmem_cache_zalloc(desc_cache, flags | GFP_DMA);
...@@ -322,7 +322,7 @@ static void dwc2_release_channel_ddma(struct dwc2_hsotg *hsotg, ...@@ -322,7 +322,7 @@ static void dwc2_release_channel_ddma(struct dwc2_hsotg *hsotg,
qh->ntd = 0; qh->ntd = 0;
if (qh->desc_list) if (qh->desc_list)
memset(qh->desc_list, 0, sizeof(struct dwc2_hcd_dma_desc) * memset(qh->desc_list, 0, sizeof(struct dwc2_dma_desc) *
dwc2_max_desc_num(qh)); dwc2_max_desc_num(qh));
} }
...@@ -542,7 +542,7 @@ static void dwc2_fill_host_isoc_dma_desc(struct dwc2_hsotg *hsotg, ...@@ -542,7 +542,7 @@ static void dwc2_fill_host_isoc_dma_desc(struct dwc2_hsotg *hsotg,
struct dwc2_qh *qh, u32 max_xfer_size, struct dwc2_qh *qh, u32 max_xfer_size,
u16 idx) u16 idx)
{ {
struct dwc2_hcd_dma_desc *dma_desc = &qh->desc_list[idx]; struct dwc2_dma_desc *dma_desc = &qh->desc_list[idx];
struct dwc2_hcd_iso_packet_desc *frame_desc; struct dwc2_hcd_iso_packet_desc *frame_desc;
memset(dma_desc, 0, sizeof(*dma_desc)); memset(dma_desc, 0, sizeof(*dma_desc));
...@@ -571,8 +571,8 @@ static void dwc2_fill_host_isoc_dma_desc(struct dwc2_hsotg *hsotg, ...@@ -571,8 +571,8 @@ static void dwc2_fill_host_isoc_dma_desc(struct dwc2_hsotg *hsotg,
dma_sync_single_for_device(hsotg->dev, dma_sync_single_for_device(hsotg->dev,
qh->desc_list_dma + qh->desc_list_dma +
(idx * sizeof(struct dwc2_hcd_dma_desc)), (idx * sizeof(struct dwc2_dma_desc)),
sizeof(struct dwc2_hcd_dma_desc), sizeof(struct dwc2_dma_desc),
DMA_TO_DEVICE); DMA_TO_DEVICE);
} }
...@@ -645,8 +645,8 @@ static void dwc2_init_isoc_dma_desc(struct dwc2_hsotg *hsotg, ...@@ -645,8 +645,8 @@ static void dwc2_init_isoc_dma_desc(struct dwc2_hsotg *hsotg,
qh->desc_list[idx].status |= HOST_DMA_IOC; qh->desc_list[idx].status |= HOST_DMA_IOC;
dma_sync_single_for_device(hsotg->dev, dma_sync_single_for_device(hsotg->dev,
qh->desc_list_dma + (idx * qh->desc_list_dma + (idx *
sizeof(struct dwc2_hcd_dma_desc)), sizeof(struct dwc2_dma_desc)),
sizeof(struct dwc2_hcd_dma_desc), sizeof(struct dwc2_dma_desc),
DMA_TO_DEVICE); DMA_TO_DEVICE);
} }
#else #else
...@@ -679,8 +679,8 @@ static void dwc2_init_isoc_dma_desc(struct dwc2_hsotg *hsotg, ...@@ -679,8 +679,8 @@ static void dwc2_init_isoc_dma_desc(struct dwc2_hsotg *hsotg,
qh->desc_list[idx].status |= HOST_DMA_IOC; qh->desc_list[idx].status |= HOST_DMA_IOC;
dma_sync_single_for_device(hsotg->dev, dma_sync_single_for_device(hsotg->dev,
qh->desc_list_dma + qh->desc_list_dma +
(idx * sizeof(struct dwc2_hcd_dma_desc)), (idx * sizeof(struct dwc2_dma_desc)),
sizeof(struct dwc2_hcd_dma_desc), sizeof(struct dwc2_dma_desc),
DMA_TO_DEVICE); DMA_TO_DEVICE);
#endif #endif
} }
...@@ -690,7 +690,7 @@ static void dwc2_fill_host_dma_desc(struct dwc2_hsotg *hsotg, ...@@ -690,7 +690,7 @@ static void dwc2_fill_host_dma_desc(struct dwc2_hsotg *hsotg,
struct dwc2_qtd *qtd, struct dwc2_qh *qh, struct dwc2_qtd *qtd, struct dwc2_qh *qh,
int n_desc) int n_desc)
{ {
struct dwc2_hcd_dma_desc *dma_desc = &qh->desc_list[n_desc]; struct dwc2_dma_desc *dma_desc = &qh->desc_list[n_desc];
int len = chan->xfer_len; int len = chan->xfer_len;
if (len > MAX_DMA_DESC_SIZE - (chan->max_packet - 1)) if (len > MAX_DMA_DESC_SIZE - (chan->max_packet - 1))
...@@ -721,8 +721,8 @@ static void dwc2_fill_host_dma_desc(struct dwc2_hsotg *hsotg, ...@@ -721,8 +721,8 @@ static void dwc2_fill_host_dma_desc(struct dwc2_hsotg *hsotg,
dma_sync_single_for_device(hsotg->dev, dma_sync_single_for_device(hsotg->dev,
qh->desc_list_dma + qh->desc_list_dma +
(n_desc * sizeof(struct dwc2_hcd_dma_desc)), (n_desc * sizeof(struct dwc2_dma_desc)),
sizeof(struct dwc2_hcd_dma_desc), sizeof(struct dwc2_dma_desc),
DMA_TO_DEVICE); DMA_TO_DEVICE);
/* /*
...@@ -778,8 +778,8 @@ static void dwc2_init_non_isoc_dma_desc(struct dwc2_hsotg *hsotg, ...@@ -778,8 +778,8 @@ static void dwc2_init_non_isoc_dma_desc(struct dwc2_hsotg *hsotg,
dma_sync_single_for_device(hsotg->dev, dma_sync_single_for_device(hsotg->dev,
qh->desc_list_dma + qh->desc_list_dma +
((n_desc - 1) * ((n_desc - 1) *
sizeof(struct dwc2_hcd_dma_desc)), sizeof(struct dwc2_dma_desc)),
sizeof(struct dwc2_hcd_dma_desc), sizeof(struct dwc2_dma_desc),
DMA_TO_DEVICE); DMA_TO_DEVICE);
} }
dwc2_fill_host_dma_desc(hsotg, chan, qtd, qh, n_desc); dwc2_fill_host_dma_desc(hsotg, chan, qtd, qh, n_desc);
...@@ -808,8 +808,8 @@ static void dwc2_init_non_isoc_dma_desc(struct dwc2_hsotg *hsotg, ...@@ -808,8 +808,8 @@ static void dwc2_init_non_isoc_dma_desc(struct dwc2_hsotg *hsotg,
n_desc - 1, &qh->desc_list[n_desc - 1]); n_desc - 1, &qh->desc_list[n_desc - 1]);
dma_sync_single_for_device(hsotg->dev, dma_sync_single_for_device(hsotg->dev,
qh->desc_list_dma + (n_desc - 1) * qh->desc_list_dma + (n_desc - 1) *
sizeof(struct dwc2_hcd_dma_desc), sizeof(struct dwc2_dma_desc),
sizeof(struct dwc2_hcd_dma_desc), sizeof(struct dwc2_dma_desc),
DMA_TO_DEVICE); DMA_TO_DEVICE);
if (n_desc > 1) { if (n_desc > 1) {
qh->desc_list[0].status |= HOST_DMA_A; qh->desc_list[0].status |= HOST_DMA_A;
...@@ -817,7 +817,7 @@ static void dwc2_init_non_isoc_dma_desc(struct dwc2_hsotg *hsotg, ...@@ -817,7 +817,7 @@ static void dwc2_init_non_isoc_dma_desc(struct dwc2_hsotg *hsotg,
&qh->desc_list[0]); &qh->desc_list[0]);
dma_sync_single_for_device(hsotg->dev, dma_sync_single_for_device(hsotg->dev,
qh->desc_list_dma, qh->desc_list_dma,
sizeof(struct dwc2_hcd_dma_desc), sizeof(struct dwc2_dma_desc),
DMA_TO_DEVICE); DMA_TO_DEVICE);
} }
chan->ntd = n_desc; chan->ntd = n_desc;
...@@ -893,7 +893,7 @@ static int dwc2_cmpl_host_isoc_dma_desc(struct dwc2_hsotg *hsotg, ...@@ -893,7 +893,7 @@ static int dwc2_cmpl_host_isoc_dma_desc(struct dwc2_hsotg *hsotg,
struct dwc2_qtd *qtd, struct dwc2_qtd *qtd,
struct dwc2_qh *qh, u16 idx) struct dwc2_qh *qh, u16 idx)
{ {
struct dwc2_hcd_dma_desc *dma_desc; struct dwc2_dma_desc *dma_desc;
struct dwc2_hcd_iso_packet_desc *frame_desc; struct dwc2_hcd_iso_packet_desc *frame_desc;
u16 remain = 0; u16 remain = 0;
int rc = 0; int rc = 0;
...@@ -902,8 +902,8 @@ static int dwc2_cmpl_host_isoc_dma_desc(struct dwc2_hsotg *hsotg, ...@@ -902,8 +902,8 @@ static int dwc2_cmpl_host_isoc_dma_desc(struct dwc2_hsotg *hsotg,
return -EINVAL; return -EINVAL;
dma_sync_single_for_cpu(hsotg->dev, qh->desc_list_dma + (idx * dma_sync_single_for_cpu(hsotg->dev, qh->desc_list_dma + (idx *
sizeof(struct dwc2_hcd_dma_desc)), sizeof(struct dwc2_dma_desc)),
sizeof(struct dwc2_hcd_dma_desc), sizeof(struct dwc2_dma_desc),
DMA_FROM_DEVICE); DMA_FROM_DEVICE);
dma_desc = &qh->desc_list[idx]; dma_desc = &qh->desc_list[idx];
...@@ -1066,7 +1066,7 @@ static void dwc2_complete_isoc_xfer_ddma(struct dwc2_hsotg *hsotg, ...@@ -1066,7 +1066,7 @@ static void dwc2_complete_isoc_xfer_ddma(struct dwc2_hsotg *hsotg,
static int dwc2_update_non_isoc_urb_state_ddma(struct dwc2_hsotg *hsotg, static int dwc2_update_non_isoc_urb_state_ddma(struct dwc2_hsotg *hsotg,
struct dwc2_host_chan *chan, struct dwc2_host_chan *chan,
struct dwc2_qtd *qtd, struct dwc2_qtd *qtd,
struct dwc2_hcd_dma_desc *dma_desc, struct dwc2_dma_desc *dma_desc,
enum dwc2_halt_status halt_status, enum dwc2_halt_status halt_status,
u32 n_bytes, int *xfer_done) u32 n_bytes, int *xfer_done)
{ {
...@@ -1154,7 +1154,7 @@ static int dwc2_process_non_isoc_desc(struct dwc2_hsotg *hsotg, ...@@ -1154,7 +1154,7 @@ static int dwc2_process_non_isoc_desc(struct dwc2_hsotg *hsotg,
{ {
struct dwc2_qh *qh = chan->qh; struct dwc2_qh *qh = chan->qh;
struct dwc2_hcd_urb *urb = qtd->urb; struct dwc2_hcd_urb *urb = qtd->urb;
struct dwc2_hcd_dma_desc *dma_desc; struct dwc2_dma_desc *dma_desc;
u32 n_bytes; u32 n_bytes;
int failed; int failed;
...@@ -1165,8 +1165,8 @@ static int dwc2_process_non_isoc_desc(struct dwc2_hsotg *hsotg, ...@@ -1165,8 +1165,8 @@ static int dwc2_process_non_isoc_desc(struct dwc2_hsotg *hsotg,
dma_sync_single_for_cpu(hsotg->dev, dma_sync_single_for_cpu(hsotg->dev,
qh->desc_list_dma + (desc_num * qh->desc_list_dma + (desc_num *
sizeof(struct dwc2_hcd_dma_desc)), sizeof(struct dwc2_dma_desc)),
sizeof(struct dwc2_hcd_dma_desc), sizeof(struct dwc2_dma_desc),
DMA_FROM_DEVICE); DMA_FROM_DEVICE);
dma_desc = &qh->desc_list[desc_num]; dma_desc = &qh->desc_list[desc_num];
......
...@@ -790,7 +790,8 @@ ...@@ -790,7 +790,8 @@
#define HCFIFO(_ch) HSOTG_REG(0x1000 + 0x1000 * (_ch)) #define HCFIFO(_ch) HSOTG_REG(0x1000 + 0x1000 * (_ch))
/** /**
* struct dwc2_hcd_dma_desc - Host-mode DMA descriptor structure * struct dwc2_dma_desc - DMA descriptor structure,
* used for both host and gadget modes
* *
* @status: DMA descriptor status quadlet * @status: DMA descriptor status quadlet
* @buf: DMA descriptor data buffer pointer * @buf: DMA descriptor data buffer pointer
...@@ -798,7 +799,7 @@ ...@@ -798,7 +799,7 @@
* DMA Descriptor structure contains two quadlets: * DMA Descriptor structure contains two quadlets:
* Status quadlet and Data buffer pointer. * Status quadlet and Data buffer pointer.
*/ */
struct dwc2_hcd_dma_desc { struct dwc2_dma_desc {
u32 status; u32 status;
u32 buf; u32 buf;
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment