Re: [PATCH v2 2/2] spi: fsl-spi: Implement trailing bits

From: Christophe Leroy
Date: Tue Mar 01 2022 - 07:54:05 EST




Le 28/02/2022 à 17:14, Mark Brown a écrit :
> On Mon, Feb 28, 2022 at 04:02:30PM +0000, Christophe Leroy wrote:
>> Le 28/02/2022 à 16:29, Mark Brown a écrit :
>
>>> The binding looks good now but this is still driver specific code when
>>> it looks like it could easily be implemented in the core - like I said
>>> on the previous version you'd need to update drivers to advertise less
>>> than 8 bits but there's basically nothing driver specific I can see here
>>> so any driver using transfer_one() would get support that way.
>
>> Argh ! Sorry your comment to the previous version ended up in Junk
>> mails. I see it now.
>
> No problem.
>
>> We discussed that back in 2016 in
>> https://lore.kernel.org/linux-spi/20160824112701.GE22076@xxxxxxxxxxxxx/
>> and my understanding at that time was that it was not something that
>> could be done at core level.
>
>> But maybe things have changed since then ?
>
> What I said then was "it would need a new core feature" which is what
> the binding does, I'm suggesting that you also do that for the handling
> of the implementation as well.
>
> Actually now I think about it perhaps this shouldn't be a binding at all
> but rather something specified by the client driver - presumably any
> system using an affected device is going to need these extra clock
> cycles so they'll all need to add the same property.
>
>> By the way, fsl-spi driver doesn't implement transfer_one() but
>> transfer_one_message() so it takes care of the chipselect changes and
>> therefore the final dummy transfer with CS off is to be done there as
>> far as I understand.
>
>> Would it mean changing fsl-spi driver to implement transfer_one() first ?
>
> Well, if it can implement transfer_one() without any negative
> consequences whichh

Seems like your sentence is truncated.

My understanding today is that this trailing transfer with chipselect
OFF is to be added at the end of transfer_one_message().

It can be implemented in the core transfer_one_message() for drivers
implementing transfer_one(). For the other drivers not having
transfer_one() but having transfer_one_message(), it must be implemented
in the driver's transfer_one_message().

Am I right ?


fsl-spi driver is the one I need to support this new functionnality and
it has its own transfer_one_message().

What would you expect ?


Thanks
Christophe