diff options
-rw-r--r-- | drivers/pci/quirks.c | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c index f70c36f9b1f3..e5aadf357ae7 100644 --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c | |||
@@ -2745,20 +2745,6 @@ static void ricoh_mmc_fixup_r5c832(struct pci_dev *dev) | |||
2745 | /* disable must be done via function #0 */ | 2745 | /* disable must be done via function #0 */ |
2746 | if (PCI_FUNC(dev->devfn)) | 2746 | if (PCI_FUNC(dev->devfn)) |
2747 | return; | 2747 | return; |
2748 | |||
2749 | pci_read_config_byte(dev, 0xCB, &disable); | ||
2750 | |||
2751 | if (disable & 0x02) | ||
2752 | return; | ||
2753 | |||
2754 | pci_read_config_byte(dev, 0xCA, &write_enable); | ||
2755 | pci_write_config_byte(dev, 0xCA, 0x57); | ||
2756 | pci_write_config_byte(dev, 0xCB, disable | 0x02); | ||
2757 | pci_write_config_byte(dev, 0xCA, write_enable); | ||
2758 | |||
2759 | dev_notice(&dev->dev, "proprietary Ricoh MMC controller disabled (via firewire function)\n"); | ||
2760 | dev_notice(&dev->dev, "MMC cards are now supported by standard SDHCI controller\n"); | ||
2761 | |||
2762 | /* | 2748 | /* |
2763 | * RICOH 0xe823 SD/MMC card reader fails to recognize | 2749 | * RICOH 0xe823 SD/MMC card reader fails to recognize |
2764 | * certain types of SD/MMC cards. Lowering the SD base | 2750 | * certain types of SD/MMC cards. Lowering the SD base |
@@ -2781,6 +2767,20 @@ static void ricoh_mmc_fixup_r5c832(struct pci_dev *dev) | |||
2781 | 2767 | ||
2782 | dev_notice(&dev->dev, "MMC controller base frequency changed to 50Mhz.\n"); | 2768 | dev_notice(&dev->dev, "MMC controller base frequency changed to 50Mhz.\n"); |
2783 | } | 2769 | } |
2770 | |||
2771 | pci_read_config_byte(dev, 0xCB, &disable); | ||
2772 | |||
2773 | if (disable & 0x02) | ||
2774 | return; | ||
2775 | |||
2776 | pci_read_config_byte(dev, 0xCA, &write_enable); | ||
2777 | pci_write_config_byte(dev, 0xCA, 0x57); | ||
2778 | pci_write_config_byte(dev, 0xCB, disable | 0x02); | ||
2779 | pci_write_config_byte(dev, 0xCA, write_enable); | ||
2780 | |||
2781 | dev_notice(&dev->dev, "proprietary Ricoh MMC controller disabled (via firewire function)\n"); | ||
2782 | dev_notice(&dev->dev, "MMC cards are now supported by standard SDHCI controller\n"); | ||
2783 | |||
2784 | } | 2784 | } |
2785 | DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_RICOH, PCI_DEVICE_ID_RICOH_R5C832, ricoh_mmc_fixup_r5c832); | 2785 | DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_RICOH, PCI_DEVICE_ID_RICOH_R5C832, ricoh_mmc_fixup_r5c832); |
2786 | DECLARE_PCI_FIXUP_RESUME_EARLY(PCI_VENDOR_ID_RICOH, PCI_DEVICE_ID_RICOH_R5C832, ricoh_mmc_fixup_r5c832); | 2786 | DECLARE_PCI_FIXUP_RESUME_EARLY(PCI_VENDOR_ID_RICOH, PCI_DEVICE_ID_RICOH_R5C832, ricoh_mmc_fixup_r5c832); |