|
@@ -143,6 +143,7 @@ static void dwc_initialize(struct dw_dma_chan *dwc)
|
|
|
struct dw_dma *dw = to_dw_dma(dwc->chan.device);
|
|
|
u32 cfghi = DWC_CFGH_FIFO_MODE;
|
|
|
u32 cfglo = DWC_CFGL_CH_PRIOR(dwc->priority);
|
|
|
+ bool hs_polarity = dwc->dws.hs_polarity;
|
|
|
|
|
|
if (test_bit(DW_DMA_IS_INITIALIZED, &dwc->flags))
|
|
|
return;
|
|
@@ -150,6 +151,9 @@ static void dwc_initialize(struct dw_dma_chan *dwc)
|
|
|
cfghi |= DWC_CFGH_DST_PER(dwc->dws.dst_id);
|
|
|
cfghi |= DWC_CFGH_SRC_PER(dwc->dws.src_id);
|
|
|
|
|
|
+ /* Set polarity of handshake interface */
|
|
|
+ cfglo |= hs_polarity ? DWC_CFGL_HS_DST_POL | DWC_CFGL_HS_SRC_POL : 0;
|
|
|
+
|
|
|
channel_writel(dwc, CFG_LO, cfglo);
|
|
|
channel_writel(dwc, CFG_HI, cfghi);
|
|
|
|