mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-11 13:27:06 +09:00
UPSTREAM: 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.
Change-Id: Iaeb063357dc4ffa905a9e1081793648ce1153d59
Acked-by: John Youn <johnyoun@synopsys.com>
Signed-off-by: Mian Yousaf Kaukab <yousaf.kaukab@intel.com>
Signed-off-by: Gregory Herrero <gregory.herrero@intel.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
(cherry picked from commit e23b8a54a4)
This commit is contained in:
committed by
Huang, Tao
parent
d94b804e9b
commit
f589122c4a
@@ -1919,7 +1919,6 @@ void dwc2_hc_start_transfer_ddma(struct dwc2_hsotg *hsotg,
|
||||
struct dwc2_host_chan *chan)
|
||||
{
|
||||
u32 hcchar;
|
||||
u32 hc_dma;
|
||||
u32 hctsiz = 0;
|
||||
|
||||
if (chan->do_ping)
|
||||
@@ -1951,14 +1950,11 @@ void dwc2_hc_start_transfer_ddma(struct dwc2_hsotg *hsotg,
|
||||
dma_sync_single_for_device(hsotg->dev, chan->desc_list_addr,
|
||||
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))
|
||||
dev_vdbg(hsotg->dev, "Wrote %08x to HCDMA(%d)\n",
|
||||
hc_dma, chan->hc_num);
|
||||
dev_vdbg(hsotg->dev, "Wrote %pad to HCDMA(%d)\n",
|
||||
&chan->desc_list_addr, chan->hc_num);
|
||||
|
||||
hcchar = dwc2_readl(hsotg->regs + HCCHAR(chan->hc_num));
|
||||
hcchar &= ~HCCHAR_MULTICNT_MASK;
|
||||
|
||||
@@ -769,10 +769,6 @@
|
||||
#define TSIZ_XFERSIZE_SHIFT 0
|
||||
|
||||
#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))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user