Subject: [RFC] pl08x: don't use dma_slave_config direction argument

From: [email-masked] (Roland Stigge)
Date: Wed, 16 May 2012 15:06:25 +0200

On 05/16/2012 03:04 PM, Roland Stigge wrote:
> On 05/16/2012 02:52 PM, Russell King - ARM Linux wrote:
>>> * SLC driver says:
>>>
>>> lpc32xx-nand 20020000.flash: FIFO not empty!
>>> lpc32xx-nand 20020000.flash: FIFO held data too long
>>> lpc32xx-nand 20020000.flash: DMA FIFO failure
>>>
>>> Any hints, before I find the time to sort out all the details with
>>> amba-pl08x?
>>
>> Nothing jumps out; it would be useful if you could bisect the small
>> series - I did the conversion in small steps so it should be easy to
>> track down.  And it shouldn't take too long to rebuild between each
>> iteration.  Whatever it is, it's probably going to be a stupid mistake
>> somewhere.
> 
> The problem first appears with patch #4.

FYI: My pl08x is configured via platform data like this:

static struct pl08x_channel_data pl08x_slave_channels[] = {
        {
                .bus_id = "nand-slc",
                .min_signal = 1, /* SLC NAND Flash */
                .max_signal = 1,
                .periph_buses = PL08X_AHB1,
        },
        {

                .bus_id = "nand-mlc",
                .min_signal = 12, /* MLC NAND Flash */
                .max_signal = 12,
                .periph_buses = PL08X_AHB1,
        },
};

static int pl08x_get_signal(struct pl08x_dma_chan *ch) {
        return ch->cd->min_signal;
}

static void pl08x_put_signal(struct pl08x_dma_chan *ch) {
}

static struct pl08x_platform_data pl08x_pd = {
        .slave_channels = &pl08x_slave_channels[0],
        .num_slave_channels = 2,
        .get_signal = &pl08x_get_signal,
        .put_signal = &pl08x_put_signal,
        .lli_buses = PL08X_AHB1,
        .mem_buses = PL08X_AHB1,
};