--- v1
+++ v6
@@ -4,6 +4,7 @@
Replace set of fields by embedding struct dw_dma_slave into struct dw_dma_chan.
+Acked-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
drivers/dma/dw/core.c | 29 ++++++++++-------------------
@@ -11,7 +12,7 @@
2 files changed, 11 insertions(+), 23 deletions(-)
diff --git a/drivers/dma/dw/core.c b/drivers/dma/dw/core.c
-index 86e55ab..840f0da 100644
+index edf053f..81b06df 100644
--- a/drivers/dma/dw/core.c
+++ b/drivers/dma/dw/core.c
@@ -46,9 +46,9 @@
@@ -26,7 +27,7 @@
\
(DWC_CTLL_DST_MSIZE(_dmsize) \
| DWC_CTLL_SRC_MSIZE(_smsize) \
-@@ -140,8 +140,8 @@ static void dwc_initialize(struct dw_dma_chan *dwc)
+@@ -147,8 +147,8 @@ static void dwc_initialize(struct dw_dma_chan *dwc)
if (test_bit(DW_DMA_IS_INITIALIZED, &dwc->flags))
return;
@@ -37,7 +38,7 @@
channel_writel(dwc, CFG_LO, cfglo);
channel_writel(dwc, CFG_HI, cfghi);
-@@ -202,7 +202,7 @@ static inline void dwc_do_single_block(struct dw_dma_chan *dwc,
+@@ -209,7 +209,7 @@ static inline void dwc_do_single_block(struct dw_dma_chan *dwc,
static void dwc_dostart(struct dw_dma_chan *dwc, struct dw_desc *first)
{
struct dw_dma *dw = to_dw_dma(dwc->chan.device);
@@ -46,25 +47,25 @@
unsigned long was_soft_llp;
/* ASSERT: channel is idle */
-@@ -686,7 +686,7 @@ dwc_prep_dma_memcpy(struct dma_chan *chan, dma_addr_t dest, dma_addr_t src,
+@@ -662,7 +662,7 @@ dwc_prep_dma_memcpy(struct dma_chan *chan, dma_addr_t dest, dma_addr_t src,
+ struct dw_desc *prev;
+ size_t xfer_count;
+ size_t offset;
+- u8 m_master = dwc->m_master;
++ u8 m_master = dwc->dws.m_master;
unsigned int src_width;
unsigned int dst_width;
- u32 ctllo;
-- u8 lms = DWC_LLP_LMS(dwc->m_master);
-+ u8 lms = DWC_LLP_LMS(dwc->dws.m_master);
-
- dev_vdbg(chan2dev(chan),
- "%s: d%pad s%pad l0x%zx f0x%lx\n", __func__,
-@@ -759,7 +759,7 @@ dwc_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
+ unsigned int data_width = dw->pdata->data_width[m_master];
+@@ -740,7 +740,7 @@ dwc_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
struct dw_desc *prev;
struct dw_desc *first;
u32 ctllo;
-- u8 lms = DWC_LLP_LMS(dwc->m_master);
-+ u8 lms = DWC_LLP_LMS(dwc->dws.m_master);
+- u8 m_master = dwc->m_master;
++ u8 m_master = dwc->dws.m_master;
+ u8 lms = DWC_LLP_LMS(m_master);
dma_addr_t reg;
unsigned int reg_width;
- unsigned int mem_width;
-@@ -912,12 +912,7 @@ bool dw_dma_filter(struct dma_chan *chan, void *param)
+@@ -895,12 +895,7 @@ bool dw_dma_filter(struct dma_chan *chan, void *param)
return false;
/* We have to copy data since dws can be temporary storage */
@@ -78,8 +79,8 @@
return true;
}
-@@ -1221,11 +1216,7 @@ static void dwc_free_chan_resources(struct dma_chan *chan)
- dwc->descs_allocated = 0;
+@@ -1167,11 +1162,7 @@ static void dwc_free_chan_resources(struct dma_chan *chan)
+ spin_lock_irqsave(&dwc->lock, flags);
/* Clear custom channel configuration */
- dwc->src_id = 0;
@@ -91,7 +92,7 @@
clear_bit(DW_DMA_IS_INITIALIZED, &dwc->flags);
-@@ -1323,7 +1314,7 @@ struct dw_cyclic_desc *dw_dma_cyclic_prep(struct dma_chan *chan,
+@@ -1264,7 +1255,7 @@ struct dw_cyclic_desc *dw_dma_cyclic_prep(struct dma_chan *chan,
struct dw_cyclic_desc *retval = NULL;
struct dw_desc *desc;
struct dw_desc *last = NULL;
@@ -101,10 +102,10 @@
unsigned int reg_width;
unsigned int periods;
diff --git a/drivers/dma/dw/regs.h b/drivers/dma/dw/regs.h
-index 5b3ea2d..f9e56f9 100644
+index 4b7bd78..f65dd10 100644
--- a/drivers/dma/dw/regs.h
+++ b/drivers/dma/dw/regs.h
-@@ -246,10 +246,7 @@ struct dw_dma_chan {
+@@ -245,10 +245,7 @@ struct dw_dma_chan {
bool nollp;
/* custom slave configuration */
@@ -117,4 +118,4 @@
/* configuration passed via .device_config */
struct dma_slave_config dma_sconfig;
--
-2.8.0.rc3
+2.8.1