Re: SDHCI: Ricoh [1180:e823] unable to mount MMC cards.

Chris Ball
2011-03-31T15:07:21Z

Hi,

On Thu, Mar 31 2011, Manoj wrote:
>> How about setting CONFIG_MMC_RICOH_MMC?
>
> Yes Sir... that was already set.
> CONFIG_MMC_RICOH_MMC=y

Ah, I think MMC_RICOH_MMC needs to know about this new PCI ID too.
I don't know whether that code knows how to turn off the MMC controller
on this model, though.

Please try this patch:

diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index bd80f63..0852046 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -2758,6 +2758,9 @@ static void ricoh_mmc_fixup_r5c832(struct pci_dev *dev)
}
DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_RICOH, PCI_DEVICE_ID_RICOH_R5C832, ricoh_mmc_fixup_r5c832);
DECLARE_PCI_FIXUP_RESUME_EARLY(PCI_VENDOR_ID_RICOH, PCI_DEVICE_ID_RICOH_R5C832, ricoh_mmc_fixup_r5c832);
+
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_RICOH, PCI_DEVICE_ID_RICOH_R5C823, ricoh_mmc_fixup_r5c832);
+DECLARE_PCI_FIXUP_RESUME_EARLY(PCI_VENDOR_ID_RICOH, PCI_DEVICE_ID_RICOH_R5C823, ricoh_mmc_fixup_r5c832);
#endif /*CONFIG_MMC_RICOH_MMC*/

#if defined(CONFIG_DMAR) || defined(CONFIG_INTR_REMAP)
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h
index 11fd381..9ec3316 100644
--- a/include/linux/pci_ids.h
+++ b/include/linux/pci_ids.h
@@ -1535,6 +1535,7 @@
#define PCI_DEVICE_ID_RICOH_RL5C476 0x0476
#define PCI_DEVICE_ID_RICOH_RL5C478 0x0478
#define PCI_DEVICE_ID_RICOH_R5C822 0x0822
+#define PCI_DEVICE_ID_RICOH_R5C823 0x0823
#define PCI_DEVICE_ID_RICOH_R5C832 0x0832
#define PCI_DEVICE_ID_RICOH_R5C843 0x0843

and post dmesg of the result, as well as whether it worked.

We're trying the 0x832 disable method on an 0x823 controller, so I don't
know whether that'll work.

Thanks,

- Chris.
--
Chris Ball <cjb@laptop.org> <http://printf.net/>
One Laptop Per Child