LKML Archive on lore.kernel.org
 help / color / Atom feed
* PATCH: rtsx_pci driver - don't disable the rts5229 card reader on Intel NUC boxes
@ 2020-08-02 19:48 Chris Clayton
  2020-08-02 19:58 ` Chris Clayton
  0 siblings, 1 reply; 15+ messages in thread
From: Chris Clayton @ 2020-08-02 19:48 UTC (permalink / raw)
  To: LKML, ricky_wu, gregkh, rdunlap, philquadra, Arnd Bergmann


[-- Attachment #1: Type: text/plain, Size: 1623 bytes --]

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@googlemail.com>

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

[-- Attachment #2: dont-disable-rts5229-cardreader-on-intel-NUC.patch --]
[-- Type: text/x-patch, Size: 697 bytes --]

--- linux-5.7.12/drivers/misc/cardreader/rtsx_pcr.c.orig	2020-08-02 13:36:50.216947944 +0100
+++ linux-5.7.12/drivers/misc/cardreader/rtsx_pcr.c	2020-08-02 18:37:30.456610731 +0100
@@ -1200,9 +1200,13 @@ void rtsx_pci_init_ocp(struct rtsx_pcr *
 				SD_OCP_GLITCH_MASK, pcr->hw_param.ocp_glitch);
 			rtsx_pci_enable_ocp(pcr);
 		} else {
-			/* OC power down */
-			rtsx_pci_write_register(pcr, FPDCTL, OC_POWER_DOWN,
-				OC_POWER_DOWN);
+			/* On (some?) Intel NUC platforms, this disables
+			 * the rts5229 cardreader, so don't do it
+			 */
+			if(!CHK_PCI_PID(pcr, 0x5229))
+				/* OC power down */
+				rtsx_pci_write_register(pcr, FPDCTL, OC_POWER_DOWN,
+					OC_POWER_DOWN);
 		}
 	}
 }

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, back to index

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-08-02 19:48 PATCH: rtsx_pci driver - don't disable the rts5229 card reader on Intel NUC boxes Chris Clayton
2020-08-02 19:58 ` Chris Clayton
2020-08-03  3:01   ` 吳昊澄 Ricky
2020-08-03  5:27     ` Chris Clayton
2020-08-04  2:44   ` 吳昊澄 Ricky
2020-08-04  7:48     ` gregkh
2020-08-04  8:08       ` 吳昊澄 Ricky
2020-08-04  8:13         ` gregkh
2020-08-04  8:50         ` Chris Clayton
2020-08-04 10:46           ` 吳昊澄 Ricky
2020-08-04 11:51             ` Chris Clayton
2020-08-05  2:35               ` 吳昊澄 Ricky
2020-08-05  5:51                 ` Chris Clayton
2020-08-05 12:48                   ` Chris Clayton
2020-08-22  7:24                     ` Chris Clayton

LKML Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/lkml/0 lkml/git/0.git
	git clone --mirror https://lore.kernel.org/lkml/1 lkml/git/1.git
	git clone --mirror https://lore.kernel.org/lkml/2 lkml/git/2.git
	git clone --mirror https://lore.kernel.org/lkml/3 lkml/git/3.git
	git clone --mirror https://lore.kernel.org/lkml/4 lkml/git/4.git
	git clone --mirror https://lore.kernel.org/lkml/5 lkml/git/5.git
	git clone --mirror https://lore.kernel.org/lkml/6 lkml/git/6.git
	git clone --mirror https://lore.kernel.org/lkml/7 lkml/git/7.git
	git clone --mirror https://lore.kernel.org/lkml/8 lkml/git/8.git
	git clone --mirror https://lore.kernel.org/lkml/9 lkml/git/9.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 lkml lkml/ https://lore.kernel.org/lkml \
		linux-kernel@vger.kernel.org
	public-inbox-index lkml

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-kernel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git