Commit e23b8a54 authored by Mian Yousaf Kaukab's avatar Mian Yousaf Kaukab Committed by Felipe Balbi

usb: dwc2: host: fix descriptor list address masking

Masks for HCDMA.CTD and HCDMA.DMAAddr are incorrect. As we always
start from first descriptor, no need to mask the address anyway.
Acked-by: default avatarJohn Youn <johnyoun@synopsys.com>
Signed-off-by: default avatarMian Yousaf Kaukab <yousaf.kaukab@intel.com>
Signed-off-by: default avatarGregory Herrero <gregory.herrero@intel.com>
Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
parent 95105a99
...@@ -1905,7 +1905,6 @@ void dwc2_hc_start_transfer_ddma(struct dwc2_hsotg *hsotg, ...@@ -1905,7 +1905,6 @@ void dwc2_hc_start_transfer_ddma(struct dwc2_hsotg *hsotg,
struct dwc2_host_chan *chan) struct dwc2_host_chan *chan)
{ {
u32 hcchar; u32 hcchar;
u32 hc_dma;
u32 hctsiz = 0; u32 hctsiz = 0;
if (chan->do_ping) if (chan->do_ping)
...@@ -1937,14 +1936,11 @@ void dwc2_hc_start_transfer_ddma(struct dwc2_hsotg *hsotg, ...@@ -1937,14 +1936,11 @@ void dwc2_hc_start_transfer_ddma(struct dwc2_hsotg *hsotg,
dma_sync_single_for_device(hsotg->dev, chan->desc_list_addr, dma_sync_single_for_device(hsotg->dev, chan->desc_list_addr,
chan->desc_list_sz, DMA_TO_DEVICE); chan->desc_list_sz, DMA_TO_DEVICE);
hc_dma = (u32)chan->desc_list_addr & HCDMA_DMA_ADDR_MASK; dwc2_writel(chan->desc_list_addr, hsotg->regs + HCDMA(chan->hc_num));
/* Always start from first descriptor */
hc_dma &= ~HCDMA_CTD_MASK;
dwc2_writel(hc_dma, hsotg->regs + HCDMA(chan->hc_num));
if (dbg_hc(chan)) if (dbg_hc(chan))
dev_vdbg(hsotg->dev, "Wrote %08x to HCDMA(%d)\n", dev_vdbg(hsotg->dev, "Wrote %pad to HCDMA(%d)\n",
hc_dma, chan->hc_num); &chan->desc_list_addr, chan->hc_num);
hcchar = dwc2_readl(hsotg->regs + HCCHAR(chan->hc_num)); hcchar = dwc2_readl(hsotg->regs + HCCHAR(chan->hc_num));
hcchar &= ~HCCHAR_MULTICNT_MASK; hcchar &= ~HCCHAR_MULTICNT_MASK;
......
...@@ -769,10 +769,6 @@ ...@@ -769,10 +769,6 @@
#define TSIZ_XFERSIZE_SHIFT 0 #define TSIZ_XFERSIZE_SHIFT 0
#define HCDMA(_ch) HSOTG_REG(0x0514 + 0x20 * (_ch)) #define HCDMA(_ch) HSOTG_REG(0x0514 + 0x20 * (_ch))
#define HCDMA_DMA_ADDR_MASK (0x1fffff << 11)
#define HCDMA_DMA_ADDR_SHIFT 11
#define HCDMA_CTD_MASK (0xff << 3)
#define HCDMA_CTD_SHIFT 3
#define HCDMAB(_ch) HSOTG_REG(0x051c + 0x20 * (_ch)) #define HCDMAB(_ch) HSOTG_REG(0x051c + 0x20 * (_ch))
......
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