2021-09-30 13:09:53

by Mark Brown

[permalink] [raw]
Subject: Re: [PATCH] Revert "spi: modify set_cs_timing parameter"

On Thu, Sep 30, 2021 at 02:07:00PM +0200, Dafna Hirschfeld wrote:
> This reverts commit 04e6bb0d6bb127bac929fb35edd2dd01613c9520.

Please submit patches using subject lines reflecting the style for the
subsystem, this makes it easier for people to identify relevant patches.
Look at what existing commits in the area you're changing are doing and
make sure your subject lines visually resemble what they're doing.
There's no need to resubmit to fix this alone.

> This revert the commit 'spi: modify set_cs_timing parameter'
> and its following commit
> 'spi: mediatek: fix build warnning in set cs timing'.

Which is not what the commit message nor the paste of the full hash
claimed :/

> Those commits cause regression on mt8173 elm device. The EC either is not
> able to register or it sends numerous amount of errors:

> cros-ec-i2c-tunnel 1100a000.spi:ec@0:i2c-tunnel0: Error transferring EC i2c message -71
> cros-ec-spi spi0.0: EC failed to respond in time.

Do we have any analysis as to why? Do these devices use timing
parameters in some way for example, or do the values written out to the
device change in some way?

You've provided no analysis here so it's hard to tell if this is just
some random change that happens to change code generation slighly or if
there's some actual reason why this might fix something. I'll note that
as far as I can see there are no users of this API upstream so I'm
guessing that you've got some out of tree consumer driver which uses the
API, it's possible that there was some error in updating that driver to
the new interface which is causing the issue.


Attachments:
(No filename) (1.60 kB)
signature.asc (499.00 B)
Download all attachments

2021-09-30 13:11:55

by Dafna Hirschfeld

[permalink] [raw]
Subject: Re: [PATCH] Revert "spi: modify set_cs_timing parameter"

hi, thanks for the fast feedback

On 30.09.21 14:25, Mark Brown wrote:
> On Thu, Sep 30, 2021 at 02:07:00PM +0200, Dafna Hirschfeld wrote:
>> This reverts commit 04e6bb0d6bb127bac929fb35edd2dd01613c9520.
>
> Please submit patches using subject lines reflecting the style for the
> subsystem, this makes it easier for people to identify relevant patches.
> Look at what existing commits in the area you're changing are doing and
> make sure your subject lines visually resemble what they're doing.
> There's no need to resubmit to fix this alone.
>
>> This revert the commit 'spi: modify set_cs_timing parameter'
>> and its following commit
>> 'spi: mediatek: fix build warnning in set cs timing'.
>
> Which is not what the commit message nor the paste of the full hash
> claimed :/

What is the paste of the full hash?
Since the second commit is only a warning fixes I thought it is cumbersome to
send two separate reverting patches. Should I?

>
>> Those commits cause regression on mt8173 elm device. The EC either is not
>> able to register or it sends numerous amount of errors:
>
>> cros-ec-i2c-tunnel 1100a000.spi:ec@0:i2c-tunnel0: Error transferring EC i2c message -71
>> cros-ec-spi spi0.0: EC failed to respond in time.
>
> Do we have any analysis as to why? Do these devices use timing
> parameters in some way for example, or do the values written out to the
> device change in some way?
>
> You've provided no analysis here so it's hard to tell if this is just
> some random change that happens to change code generation slighly or if
> there's some actual reason why this might fix something. I'll note that
> as far as I can see there are no users of this API upstream so I'm
> guessing that you've got some out of tree consumer driver which uses the
> API, it's possible that there was some error in updating that driver to
> the new interface which is causing the issue.

Actually the original commit not only change that callback 'set_cs_timing' but it also
calls 'mtk_spi_set_hw_cs_timing' directly from the function "mtk_spi_prepare_message".
So this actually influences all devices bound to this driver (in upstream)
I did some printing and it does change values that are written to registers.

Thanks,
Dafna


>

2021-09-30 13:19:40

by Mark Brown

[permalink] [raw]
Subject: Re: [PATCH] Revert "spi: modify set_cs_timing parameter"

On Thu, Sep 30, 2021 at 02:36:01PM +0200, Dafna Hirschfeld wrote:
> hi, thanks for the fast feedback
>
> On 30.09.21 14:25, Mark Brown wrote:
> > On Thu, Sep 30, 2021 at 02:07:00PM +0200, Dafna Hirschfeld wrote:
> > > This reverts commit 04e6bb0d6bb127bac929fb35edd2dd01613c9520.

> > Which is not what the commit message nor the paste of the full hash
> > claimed :/

> What is the paste of the full hash?

The above.

> Since the second commit is only a warning fixes I thought it is cumbersome to
> send two separate reverting patches. Should I?

No, you should write a proper commit log with (like I said) a normal
subject line - basically, follow the process in submitting-patches.rst.

> > Do we have any analysis as to why? Do these devices use timing
> > parameters in some way for example, or do the values written out to the
> > device change in some way?

> > You've provided no analysis here so it's hard to tell if this is just
> > some random change that happens to change code generation slighly or if
> > there's some actual reason why this might fix something. I'll note that
> > as far as I can see there are no users of this API upstream so I'm
> > guessing that you've got some out of tree consumer driver which uses the
> > API, it's possible that there was some error in updating that driver to
> > the new interface which is causing the issue.

> Actually the original commit not only change that callback 'set_cs_timing' but it also
> calls 'mtk_spi_set_hw_cs_timing' directly from the function "mtk_spi_prepare_message".
> So this actually influences all devices bound to this driver (in upstream)
> I did some printing and it does change values that are written to registers.

OK, so that's something that should have been in the commit log,
preferrably in a more detailed form that identifies what the change is.
However changing the values written out is clearly not the intent of the
patch and it is a substantially better API so can we not just fix things
so that the old values are written out? Why are we jumping straight to
a revert here?


Attachments:
(No filename) (2.07 kB)
signature.asc (499.00 B)
Download all attachments

2021-09-30 18:20:30

by Dafna Hirschfeld

[permalink] [raw]
Subject: Re: [PATCH] Revert "spi: modify set_cs_timing parameter"



On 30.09.21 14:46, Mark Brown wrote:
> On Thu, Sep 30, 2021 at 02:36:01PM +0200, Dafna Hirschfeld wrote:
>> hi, thanks for the fast feedback
>>
>> On 30.09.21 14:25, Mark Brown wrote:
>>> On Thu, Sep 30, 2021 at 02:07:00PM +0200, Dafna Hirschfeld wrote:
>>>> This reverts commit 04e6bb0d6bb127bac929fb35edd2dd01613c9520.
>
>>> Which is not what the commit message nor the paste of the full hash
>>> claimed :/
>
>> What is the paste of the full hash?
>
> The above.
>
>> Since the second commit is only a warning fixes I thought it is cumbersome to
>> send two separate reverting patches. Should I?
>
> No, you should write a proper commit log with (like I said) a normal
> subject line - basically, follow the process in submitting-patches.rst.
>
>>> Do we have any analysis as to why? Do these devices use timing
>>> parameters in some way for example, or do the values written out to the
>>> device change in some way?
>
>>> You've provided no analysis here so it's hard to tell if this is just
>>> some random change that happens to change code generation slighly or if
>>> there's some actual reason why this might fix something. I'll note that
>>> as far as I can see there are no users of this API upstream so I'm
>>> guessing that you've got some out of tree consumer driver which uses the
>>> API, it's possible that there was some error in updating that driver to
>>> the new interface which is causing the issue.
>
>> Actually the original commit not only change that callback 'set_cs_timing' but it also
>> calls 'mtk_spi_set_hw_cs_timing' directly from the function "mtk_spi_prepare_message".
>> So this actually influences all devices bound to this driver (in upstream)
>> I did some printing and it does change values that are written to registers.
>
> OK, so that's something that should have been in the commit log,
> preferrably in a more detailed form that identifies what the change is.
> However changing the values written out is clearly not the intent of the
> patch and it is a substantially better API so can we not just fix things
> so that the old values are written out? Why are we jumping straight to
> a revert here?

It could be that the values written to the register in the new version of "mtk_spi_set_hw_cs_timing" are the same
as with the previous version. I didn't check that. The difference is that before that patch
the function was not called so it was a dead code. Now it is called and causes erros.
Without the datasheet it is hard to know how to fix it. I responded to that patch two days ago explaining
that but Mason Zhang didn't respond yet.

Thanks,
Dafna

>

2021-09-30 18:22:47

by Mark Brown

[permalink] [raw]
Subject: Re: [PATCH] Revert "spi: modify set_cs_timing parameter"

On Thu, Sep 30, 2021 at 03:06:52PM +0200, Dafna Hirschfeld wrote:
> On 30.09.21 14:46, Mark Brown wrote:
> > On Thu, Sep 30, 2021 at 02:36:01PM +0200, Dafna Hirschfeld wrote:

> > > Actually the original commit not only change that callback 'set_cs_timing' but it also
> > > calls 'mtk_spi_set_hw_cs_timing' directly from the function "mtk_spi_prepare_message".
> > > So this actually influences all devices bound to this driver (in upstream)
> > > I did some printing and it does change values that are written to registers.

> > OK, so that's something that should have been in the commit log,
> > preferrably in a more detailed form that identifies what the change is.
> > However changing the values written out is clearly not the intent of the
> > patch and it is a substantially better API so can we not just fix things
> > so that the old values are written out? Why are we jumping straight to
> > a revert here?

> It could be that the values written to the register in the new version of "mtk_spi_set_hw_cs_timing" are the same
> as with the previous version. I didn't check that. The difference is that before that patch
> the function was not called so it was a dead code. Now it is called and causes erros.

> Without the datasheet it is hard to know how to fix it. I responded to that patch two days ago explaining
> that but Mason Zhang didn't respond yet.

The hardware supports register readback (it's doing a read/modify/write
to set the new values) so it should be possible to look at what the
default values that get written out are and work out what the default
parameters should be set to to give the same effect (instead of 1 which
is what's currently used). I would say just skip the delays if they are
zero but that means that if only one device on a bus has a delay
configured there'd be problems.

Please fix your mail client to word wrap within paragraphs at something
substantially less than 80 columns. Doing this makes your messages much
easier to read and reply to.


Attachments:
(No filename) (1.99 kB)
signature.asc (499.00 B)
Download all attachments