[PATCH 1/1] arm :omap :DMA: fix a bug on reserving the omap SDMA channels
From: Santosh Shilimkar <hidden>
Date: 2013-01-03 08:37:57
Also in:
linux-omap, lkml
Subsystem:
arm port, the rest · Maintainers:
Russell King, Linus Torvalds
On Thursday 03 January 2013 12:58 PM, R Sricharan wrote:
Hi, On Sunday 30 December 2012 02:13 AM, ahemaily at gmail.com wrote:quoted
From: ahemaily <redacted> The variable dma_lch_count used for comparison (omap_dma_reserve_channels <= dma_lch_count) before it initialized to the value from omap_dma_dev_attr : d->lch_count. I change the place of dma_lch_count initialization to be before the comparison. Signed-off-by: Abdelrahman Hemaily <redacted> --- arch/arm/plat-omap/dma.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)diff --git a/arch/arm/plat-omap/dma.c b/arch/arm/plat-omap/dma.c index c76ed8b..cb3e321 100644 --- a/arch/arm/plat-omap/dma.c +++ b/arch/arm/plat-omap/dma.c@@ -2014,12 +2014,12 @@ static int __devinitomap_system_dma_probe(struct platform_device *pdev) d = p->dma_attr; errata = p->errata; - + dma_lch_count = d->lch_count; + if ((d->dev_caps & RESERVE_CHANNEL) && omap_dma_reserve_channels && (omap_dma_reserve_channels <= dma_lch_count)) d->lch_count = omap_dma_reserve_channels; - dma_lch_count = d->lch_count;By removing this line, you are effectively not assigning d->lch_count after reserving. So the patch should only change dma_lch_count in the above "if statement" to d->lch_count
You are right. I missed it in last review. Below should be enough.
diff --git a/arch/arm/plat-omap/dma.c b/arch/arm/plat-omap/dma.c
index 37a488a..555ff7b 100644
--- a/arch/arm/plat-omap/dma.c
+++ b/arch/arm/plat-omap/dma.c@@ -2019,7 +2019,7 @@ static int __devinit omap_system_dma_probe(struct platform_device *pdev) errata = p->errata; if ((d->dev_caps & RESERVE_CHANNEL) && omap_dma_reserve_channels - && (omap_dma_reserve_channels <= dma_lch_count)) + && (omap_dma_reserve_channels <= d->lch_coun)) d->lch_count = omap_dma_reserve_channels; dma_lch_count = d->lch_count;