Re: [PATCH/RFC] mtd: spi-nor: honour max_message_size for spi-nor writes.

From: Marek Vasut
Date: Thu May 10 2018 - 08:27:59 EST

On 05/10/2018 01:57 PM, NeilBrown wrote:
> On Thu, May 10 2018, Marek Vasut wrote:
>> On 05/10/2018 12:28 AM, NeilBrown wrote:
>>> On Wed, May 09 2018, Boris Brezillon wrote:
>>>> On Fri, 27 Apr 2018 16:18:05 +1000
>>>> NeilBrown <neil@xxxxxxxxxx> wrote:
>>>>> Hi,
>>>>> I've labeled this an RFC because I'm really not sure about removing the
>>>>> error path from spi_nor_write() -- maybe that really matters. But on
>>>>> my hardware, performing multiple small spi writes to the flash seems
>>>>> to work.
>>>>> The spi driver is drivers/staging/mt7621-spi. Possibly this needs to
>>>>> use DMA instead of a FIFO (assuming the hardware can) - or maybe
>>>>> drivers/spi/spi-mt65xx.c can be made to work on this hardware, though
>>>>> that is for an ARM SOC and mt7621 is a MIPS SOC.
>>>>> I note that openwrt has similar patches:
>>>>> target/linux/generic/pending-4.14/450-mtd-spi-nor-allow-NOR-driver-to-write-fewer-bytes-th.patch
>>>>> They also change the spi driver to do a short write, rather
>>>>> than change m25p80 to request a short write.
>>>>> Is there something horribly wrong with this?
>>>> Marek, any opinion on this patch?
>>> Hi,
>>> thanks for following up.
>>> I have since found that I don't need this patch, though maybe others
>>> still do(??).
>>> My hardware can only send 36 bytes and receive 32 in a single
>>> transaction. However I can run a sequence of transactions
>>> to process a whole message no matter how large that message is. As
>>> long as I keep chip-select asserted, all the slave device sees is that
>>> the clock period isn't quite constant, and the slave shouldn't care
>>> much about that.
>>> When reading from flash, I found that handling large messages with
>>> multiple hardware transactions was 50% faster than breaking the
>>> read down into lots of 32 byte messages.
>>> So, I won't object if this patch is forgotten. Thanks for
>>> your time anyway.
>> Nice, which hardware is that ?
> Mediatek MT7621 SOC (particularly in the NAS platform).

On nice, a mips, good to see someone still cares about mips :)

Best regards,
Marek Vasut