Re: [PATCH 06/10] ARM: OMAP: Fix DMA CCR programming for request line > 63, v2

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



* Russell King - ARM Linux <linux@xxxxxxxxxxxxxxxx> [090112 18:01]:
> On Mon, Jan 12, 2009 at 05:35:28PM +0200, Tony Lindgren wrote:
> > Well at least you could remove some parens.
> > How about (dma_trigger / 32) << 19 instead?
> 
> Oh, and further to my previous reply there is also the general principle
> of writing what you mean.  So, if you mean to clear the least significant
> 5 bits, write it as a mask with ~0x1f, not as a divide.
> 
> And no, you don't need ~(0x1f) - the parens there are pure noise.  ~0x1f
> does just as well and isn't in any way confusing to the compiler.
> To put it another way, parens around a single value are completely
> meaningless.

Here's this one with the extra parens removed.

Tony
>From cccdfb22248a88a68c0947cb6ff6b7faae852739 Mon Sep 17 00:00:00 2001
From: Anand Gadiyar <gadiyar@xxxxxx>
Date: Mon, 12 Jan 2009 16:01:03 +0200
Subject: [PATCH] ARM: OMAP: Fix DMA CCR programming for request line > 63, v2

Bug in existing code causes synchro control to be set +32 if request
line greater than 63 is used.

Reported by Wenbiao Wang

Signed-off-by: Anand Gadiyar <gadiyar@xxxxxx>
Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx>

diff --git a/arch/arm/plat-omap/dma.c b/arch/arm/plat-omap/dma.c
index 692d2b4..660a4eb 100644
--- a/arch/arm/plat-omap/dma.c
+++ b/arch/arm/plat-omap/dma.c
@@ -279,10 +279,7 @@ void omap_set_dma_transfer_params(int lch, int data_type, int elem_count,
 
 		val = dma_read(CCR(lch));
 		val &= ~(3 << 19);
-		if (dma_trigger > 63)
-			val |= 1 << 20;
-		if (dma_trigger > 31)
-			val |= 1 << 19;
+		val |= ((dma_trigger & ~0x1f) << 14);
 
 		val &= ~(0x1f);
 		val |= (dma_trigger & 0x1f);

[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux