[PATCH 27/48] ARM: PL08x: avoid duplicating registers in txd and phychan structures
Dan Williams
dan.j.williams at intel.com
Sun Jan 16 02:17:04 EST 2011
On Sat, Jan 15, 2011 at 1:23 AM, Russell King - ARM Linux
<linux at arm.linux.org.uk> wrote:
> On Fri, Jan 14, 2011 at 05:35:41PM -0800, Dan Williams wrote:
>> On Mon, Jan 3, 2011 at 2:39 PM, Russell King - ARM Linux
>> <linux at arm.linux.org.uk> wrote:
>> > As we now have all the code accessing the phychan {csrc,cdst,clli,cctl,
>> > ccfg} members in one function, there's no point storing the data into
>> > the struct. Get rid of the struct members. Re-order the register dump
>> > in the dev_dbg() to reflect the order we write the registers to the DMA
>> > device.
>> >
>> > The txd {csrc,cdst,clli,cctl} values are duplicates of the lli[0]
>> > values, so there's no point duplicating these either. Program the DMAC
>> > registers directly from the lli[0] values.
>> >
>> > Signed-off-by: Russell King <rmk+kernel at arm.linux.org.uk>
>>
>> This one caused:
>> drivers/dma/amba-pl08x.c: In function 'pl08x_start_txd':
>> drivers/dma/amba-pl08x.c:205: warning: dereferencing 'void *' pointer
>
> That probably means you've got something out of order. I have them
> ordered in my git tree, I'll recheck there.
I rechecked here and I think everything is in order.
The line in question does not get touched in subsequent patches...
diff --git a/drivers/dma/amba-pl08x.c b/drivers/dma/amba-pl08x.c
index c025a4b..a1a18bd 100644
--- a/drivers/dma/amba-pl08x.c
+++ b/drivers/dma/amba-pl08x.c
@@ -193,33 +193,25 @@ static void pl08x_start_txd(struct pl08x_dma_chan *plchan,
{
struct pl08x_driver_data *pl08x = plchan->host;
struct pl08x_phy_chan *phychan = plchan->phychan;
- u32 val;
+ struct pl08x_lli *lli = &txd->llis_va[0];
+ u32 val, ccfg;
29/48 is the only other patch after this to touch pl08x_start_txd.
Double checked the sorted by subject mbox order matches the order they
are applied in git.
...nothing in the series touches the definition of llis_va in
include/linux/amba/pl08x.h.
e8689e63 (Linus Walleij 2010-09-28 15:57:37 +0200 113)
struct pl08x_txd {
e8689e63 (Linus Walleij 2010-09-28 15:57:37 +0200 114)
struct dma_async_tx_descriptor tx;
e8689e63 (Linus Walleij 2010-09-28 15:57:37 +0200 115)
struct list_head node;
e8689e63 (Linus Walleij 2010-09-28 15:57:37 +0200 116)
enum dma_data_direction direction;
d7244e9a (Russell King - ARM Linux 2011-01-03 22:43:35 +0000 117)
dma_addr_t src_addr;
d7244e9a (Russell King - ARM Linux 2011-01-03 22:43:35 +0000 118)
dma_addr_t dst_addr;
cace6585 (Russell King - ARM Linux 2011-01-03 22:37:31 +0000 119)
size_t len;
e8689e63 (Linus Walleij 2010-09-28 15:57:37 +0200 120)
dma_addr_t llis_bus;
e8689e63 (Linus Walleij 2010-09-28 15:57:37 +0200 121)
void *llis_va;
e8689e63 (Linus Walleij 2010-09-28 15:57:37 +0200 122)
bool active;
70b5ed6b (Russell King - ARM Linux 2011-01-03 22:40:13 +0000 123)
/* Default cctl value for LLIs */
70b5ed6b (Russell King - ARM Linux 2011-01-03 22:40:13 +0000 124)
u32 cctl;
4983a04f (Russell King - ARM Linux 2011-01-03 22:39:33 +0000 125) /*
4983a04f (Russell King - ARM Linux 2011-01-03 22:39:33 +0000 126)
* Settings to be put into the physical channe
4983a04f (Russell King - ARM Linux 2011-01-03 22:39:33 +0000 127)
* trigger this txd. Other registers are in l
4983a04f (Russell King - ARM Linux 2011-01-03 22:39:33 +0000 128) */
4983a04f (Russell King - ARM Linux 2011-01-03 22:39:33 +0000 129)
u32 ccfg;
e8689e63 (Linus Walleij 2010-09-28 15:57:37 +0200 130) };
--
Dan
More information about the linux-arm-kernel
mailing list