ARM: PL08x: don't assume that the LLI pointer has the bus bit clear
authorRussell King - ARM Linux <linux@arm.linux.org.uk>
Mon, 3 Jan 2011 22:36:50 +0000 (22:36 +0000)
committerDan Williams <dan.j.williams@intel.com>
Wed, 5 Jan 2011 03:16:11 +0000 (19:16 -0800)
We only want use the address of the LLI pointer when locating the
corresponding structure in memory, so clear the master bus selection
bit.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Acked-by: Linus Walleij <linus.walleij@stericsson.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
drivers/dma/amba-pl08x.c

index 78c84b3f903d1f044fd03f95202bd2cad4053a51..1081165d01a3bf9cf76bb1b8fc8ff864f0af5064 100644 (file)
@@ -356,7 +356,7 @@ static u32 pl08x_getbytes_chan(struct pl08x_dma_chan *plchan)
        if (ch && txd) {
                struct pl08x_lli *llis_va = txd->llis_va;
                struct pl08x_lli *llis_bus = (struct pl08x_lli *) txd->llis_bus;
-               u32 clli = readl(ch->base + PL080_CH_LLI);
+               u32 clli = readl(ch->base + PL080_CH_LLI) & ~PL080_LLI_LM_AHB2;
 
                /* First get the bytes in the current active LLI */
                bytes = get_bytes_in_cctl(readl(ch->base + PL080_CH_CONTROL));