I'm patching dw-axi-dmac to add more features, but I found a small
clean up point and some drivers in drivers/dma/ have the same issue,
so this series comes.
The dma framework will calculate the dma channels chancnt, setting it
is wrong.
NOTE: I leav drivers/dma/ioat/ as is, because its logic have a
heavy dependency on chancnt usage, however it's still doable.
Jisheng Zhang (5):
dmaengine: dw-axi-dmac: Don't set chancnt
dmaengine: axi-dmac: Don't set chancnt
dmaengine: plx_dma: Don't set chancnt
dmaengine: hidma: Don't set chancnt
dmaengine: sprd: Don't set chancnt
drivers/dma/dma-axi-dmac.c | 1 -
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c | 1 -
drivers/dma/plx_dma.c | 1 -
drivers/dma/qcom/hidma.c | 1 -
drivers/dma/sprd-dma.c | 1 -
5 files changed, 5 deletions(-)
--
2.39.2
The dma framework will calculate the dma channels chancnt, setting it
outself is wrong.
Signed-off-by: Jisheng Zhang <[email protected]>
---
drivers/dma/plx_dma.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/drivers/dma/plx_dma.c b/drivers/dma/plx_dma.c
index 12725fa1655f..34b6416c3287 100644
--- a/drivers/dma/plx_dma.c
+++ b/drivers/dma/plx_dma.c
@@ -517,7 +517,6 @@ static int plx_dma_create(struct pci_dev *pdev)
plxdev->bar = pcim_iomap_table(pdev)[0];
dma = &plxdev->dma_dev;
- dma->chancnt = 1;
INIT_LIST_HEAD(&dma->channels);
dma_cap_set(DMA_MEMCPY, dma->cap_mask);
dma->copy_align = DMAENGINE_ALIGN_1_BYTE;
--
2.39.2
The dma framework will calculate the dma channels chancnt, setting it
outself is wrong.
Signed-off-by: Jisheng Zhang <[email protected]>
---
drivers/dma/sprd-dma.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/drivers/dma/sprd-dma.c b/drivers/dma/sprd-dma.c
index 474d3ba8ec9f..2b639adb48ba 100644
--- a/drivers/dma/sprd-dma.c
+++ b/drivers/dma/sprd-dma.c
@@ -1169,7 +1169,6 @@ static int sprd_dma_probe(struct platform_device *pdev)
dma_cap_set(DMA_MEMCPY, sdev->dma_dev.cap_mask);
sdev->total_chns = chn_count;
- sdev->dma_dev.chancnt = chn_count;
INIT_LIST_HEAD(&sdev->dma_dev.channels);
INIT_LIST_HEAD(&sdev->dma_dev.global_node);
sdev->dma_dev.dev = &pdev->dev;
--
2.39.2
The dma framework will calculate the dma channels chancnt, setting it
outself is wrong.
Signed-off-by: Jisheng Zhang <[email protected]>
---
drivers/dma/dma-axi-dmac.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/drivers/dma/dma-axi-dmac.c b/drivers/dma/dma-axi-dmac.c
index a812b9b00e6b..fc7cdad37161 100644
--- a/drivers/dma/dma-axi-dmac.c
+++ b/drivers/dma/dma-axi-dmac.c
@@ -963,7 +963,6 @@ static int axi_dmac_probe(struct platform_device *pdev)
dma_dev->device_terminate_all = axi_dmac_terminate_all;
dma_dev->device_synchronize = axi_dmac_synchronize;
dma_dev->dev = &pdev->dev;
- dma_dev->chancnt = 1;
dma_dev->src_addr_widths = BIT(dmac->chan.src_width);
dma_dev->dst_addr_widths = BIT(dmac->chan.dest_width);
dma_dev->directions = BIT(dmac->chan.direction);
--
2.39.2
The dma framework will calculate the dma channels chancnt, setting it
outself is wrong.
Signed-off-by: Jisheng Zhang <[email protected]>
---
drivers/dma/qcom/hidma.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/drivers/dma/qcom/hidma.c b/drivers/dma/qcom/hidma.c
index 04d1c33afc12..344525c3a32f 100644
--- a/drivers/dma/qcom/hidma.c
+++ b/drivers/dma/qcom/hidma.c
@@ -214,7 +214,6 @@ static int hidma_chan_init(struct hidma_dev *dmadev, u32 dma_sig)
spin_lock_init(&mchan->lock);
list_add_tail(&mchan->chan.device_node, &ddev->channels);
- dmadev->ddev.chancnt++;
return 0;
}
--
2.39.2
On 3/13/23 10:02, Jisheng Zhang wrote:
> The dma framework will calculate the dma channels chancnt, setting it
> outself is wrong.
s/outself/ourself/
Looks good otherwise, thanks.
Acked-by: Lars-Peter Clausen <[email protected]>
>
> Signed-off-by: Jisheng Zhang <[email protected]>
> ---
> drivers/dma/dma-axi-dmac.c | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/drivers/dma/dma-axi-dmac.c b/drivers/dma/dma-axi-dmac.c
> index a812b9b00e6b..fc7cdad37161 100644
> --- a/drivers/dma/dma-axi-dmac.c
> +++ b/drivers/dma/dma-axi-dmac.c
> @@ -963,7 +963,6 @@ static int axi_dmac_probe(struct platform_device *pdev)
> dma_dev->device_terminate_all = axi_dmac_terminate_all;
> dma_dev->device_synchronize = axi_dmac_synchronize;
> dma_dev->dev = &pdev->dev;
> - dma_dev->chancnt = 1;
> dma_dev->src_addr_widths = BIT(dmac->chan.src_width);
> dma_dev->dst_addr_widths = BIT(dmac->chan.dest_width);
> dma_dev->directions = BIT(dmac->chan.direction);
On 3/14/2023 1:02 AM, Jisheng Zhang wrote:
> The dma framework will calculate the dma channels chancnt, setting it
> outself is wrong.
>
> Signed-off-by: Jisheng Zhang <[email protected]>
LGTM. Thanks.
Reviewed-by: Baolin Wang <[email protected]>
> ---
> drivers/dma/sprd-dma.c | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/drivers/dma/sprd-dma.c b/drivers/dma/sprd-dma.c
> index 474d3ba8ec9f..2b639adb48ba 100644
> --- a/drivers/dma/sprd-dma.c
> +++ b/drivers/dma/sprd-dma.c
> @@ -1169,7 +1169,6 @@ static int sprd_dma_probe(struct platform_device *pdev)
>
> dma_cap_set(DMA_MEMCPY, sdev->dma_dev.cap_mask);
> sdev->total_chns = chn_count;
> - sdev->dma_dev.chancnt = chn_count;
> INIT_LIST_HEAD(&sdev->dma_dev.channels);
> INIT_LIST_HEAD(&sdev->dma_dev.global_node);
> sdev->dma_dev.dev = &pdev->dev;