[PATCH 1/3] spi/qspi: Add memory mapped read support.
Sourav Poddar
sourav.poddar at ti.com
Tue Oct 15 06:23:46 PDT 2013
On Tuesday 15 October 2013 06:16 PM, Mark Brown wrote:
> On Tue, Oct 15, 2013 at 05:19:07PM +0530, Sourav Poddar wrote:
>> On Tuesday 15 October 2013 04:46 PM, Mark Brown wrote:
>>> Can you fix this by enabling the clock is enabled when you return the
>>> buffer to the MTD layer and then disabling the clock when the buffer is
>>> released?
>> Sorry, I did not get you here. With memory mapped read, there is no
>> buffer exchanged, everything takes place at the mtd layer only, what gets
>> exchanged is just the memory mapped address.
> The buffer is the memory mapped address - part of getting the address
> should be preparing the hardware for it.
>
>> if (spi->mode&& SPI_RX_MMAP) {
>> printk("memory mapped mode set\n");
>> - flash->mmap_read = true;
>> + flash->mmap_read = spi->memory_map;
> So this probably needs to be a function call to get the buffer (and a
> corresponding one to free it).
So, the flow can be something like this:
drivers/mtd/devices/m25p80.c
get_flash_buf()
{
lock();
t[0] = GET_BUFFER;
t[1] = buf;
......
spi_sync();
unlock();
}
mtd_read
{
get_flash_buf();
if (flash->buf) {
memcpy();
return 0;
}
}
Not sure, if free buf is needed as devm_* variant is used to allocate that
memory.
}
More information about the linux-mtd
mailing list