Re: [RFC PATCH 2/2] mtd: devices: m25p80: Enable spi-nor bounce buffer support

From: Vignesh R
Date: Wed Mar 01 2017 - 02:52:27 EST




On Wednesday 01 March 2017 03:11 AM, Richard Weinberger wrote:
> Vignesh,
>
> Am 27.02.2017 um 13:08 schrieb Vignesh R:
>> Many SPI controller drivers use DMA to read/write from m25p80 compatible
>> flashes. Therefore enable bounce buffers support provided by spi-nor
>> framework to take care of handling vmalloc'd buffers which may not be
>> DMA'able.
>>
>> Signed-off-by: Vignesh R <vigneshr@xxxxxx>
>> ---
>> drivers/mtd/devices/m25p80.c | 1 +
>> 1 file changed, 1 insertion(+)
>>
>> diff --git a/drivers/mtd/devices/m25p80.c b/drivers/mtd/devices/m25p80.c
>> index c4df3b1bded0..d05acf22eadf 100644
>> --- a/drivers/mtd/devices/m25p80.c
>> +++ b/drivers/mtd/devices/m25p80.c
>> @@ -241,6 +241,7 @@ static int m25p_probe(struct spi_device *spi)
>> else
>> flash_name = spi->modalias;
>>
>> + nor->flags |= SNOR_F_USE_BOUNCE_BUFFER;
>
> Isn't there a better way to detect whether a bounce buffer is needed or not?

Yes, I can poke the spi->master struct to see of dma channels are
populated and request SNOR_F_USE_BOUNCE_BUFFER accordingly:

- nor->flags |= SNOR_F_USE_BOUNCE_BUFFER;
+ if (spi->master->dma_tx || spi->master->dma_rx)
+ nor->flags |= SNOR_F_USE_BOUNCE_BUFFER;
+

--
Regards
Vignesh