Re: PATCH: rtsx_pci driver - don't disable the rts5229 card reader on Intel NUC boxes

From: Chris Clayton
Date: Mon Aug 03 2020 - 01:27:35 EST


Hi, Ricky

On 03/08/2020 04:01, åææ Ricky wrote:
> Hi Chrisï
>
> We donât think this is our bug...
> This register(FPDCTL) write to OC_POWER_DOWN is for our power saving feature, not to disable the reader
> In your case, we cannot reproduce this on our side that we mention before, we donât have the platform(Intel NUC Tall Arches Canyon NUC6CAYH Celeron J345) to see this issue
> But we think this issue maybe only on this platform, our RTS5229 works well on the new kernel all platform that we have
>
> Ricky

Perhaps I should have used the word regression rather than bug. I didn't buy the machine until earlier this year, but
other people who have reported this problem have indicated that until bede03a579b3 was applied (during the 5.1 merge
window), the driver supported the card reader on this on the Intel NUC boxes. I know that is true because I built and
tested a 5.0 kernel and the card reader worked fine. I've also built and tested an 5.1-rc1 kernel and the card reader no
longer works. Whether by design or by accident, the card reader worked and now it doesn't. That's a regression in my book!

Since you signed off the patch that caused the regression, I believe it is your bug.

Thanks.

Chris
>
>> -----Original Message-----
>> From: Chris Clayton [mailto:chris2553@xxxxxxxxxxxxxx]
>> Sent: Monday, August 03, 2020 3:59 AM
>> To: LKML; åææ Ricky; gregkh@xxxxxxxxxxxxxxxxxxx; rdunlap@xxxxxxxxxxxxx;
>> philquadra@xxxxxxxxx; Arnd Bergmann
>> Subject: Re: PATCH: rtsx_pci driver - don't disable the rts5229 card reader on
>> Intel NUC boxes
>>
>> Sorry, I should have said that the patch is against 5.7.12. It applies to upstream,
>> but with offsets.
>>
>> On 02/08/2020 20:48, Chris Clayton wrote:
>>> bede03a579b3 introduced a bug which leaves the rts5229 PCI Express card
>> reader on my Intel NUC6CAYH box.
>>>
>>> The bug is in drivers/misc/cardreader/rtsx_pcr.c. A call to rtsx_pci_init_ocp()
>> was added to rtsx_pci_init_hw().
>>> At the call point, pcr->ops->init_ocp is NULL and pcr->option.ocp_en is 0, so in
>> rtsx_pci_init_ocp() the cardreader
>>> gets disabled.
>>>
>>> I've avoided this by making excution code that results in the reader being
>> disabled conditional on the device
>>> not being an RTS5229. Of course, other rtsxxx card readers may also be
>> disabled by this bug. I don't have the
>>> knowledge to address that, so I'll leave to the driver maintainers.
>>>
>>> The patch to avoid the bug is attached.
>>>
>>> Fixes: bede03a579b3 ("misc: rtsx: Enable OCP for rts522a rts524a rts525a
>> rts5260")
>>> Link: https://marc.info/?l=linux-kernel&m=159105912832257
>>> Link: https://bugzilla.kernel.org/show_bug.cgi?id=204003
>>> Signed-off-by: Chris Clayton <chris2553@xxxxxxxxxxxxxx>
>>>
>>> bede03a579b3 introduced a bug which leaves the rts5229 PCI Express card
>> reader on my Intel NUC6CAYH box.
>>>
>>> The bug is in drivers/misc/cardreader/rtsx_pcr.c. A call to rtsx_pci_init_ocp()
>> was added to rtsx_pci_init_hw().
>>> At the call point, pcr->ops->init_ocp is NULL and pcr->option.ocp_en is 0, so in
>> rtsx_pci_init_ocp() the cardreader
>>> gets disabled.
>>>
>>> I've avoided this by making excution code that results in the reader being
>> disabled conditional on the device
>>> not being an RTS5229. Of course, other rtsxxx card readers may also be
>> disabled by this bug. I don't have the
>>> knowledge to address that, so I'll leave to the driver maintainers.
>>>
>>> The patch to avoid the bug is attached.
>>>
>>> Chris
>>>
>>
>> ------Please consider the environment before printing this e-mail.