diff options
author | Vincent Wan <vincent.wan@amd.com> | 2015-06-11 08:11:47 -0400 |
---|---|---|
committer | Ulf Hansson <ulf.hansson@linaro.org> | 2015-06-16 02:58:35 -0400 |
commit | b5e97d6e58617b9d6a3838ede6ccd3883035dbf3 (patch) | |
tree | 47791ac78516114dffa0059235e92d0d105e5ac4 | |
parent | bcb299947f5d77393d84f493b4857bcd7308e6dd (diff) |
mmc: sdhci-pci: Change AMD SDHCI quirk application scope
Change this quirk to apply to AMD Carrizo platform.
Signed-off-by: Wan ZongShun <Vincent.Wan@amd.com>
Tested-by: Nath, Arindam <Arindam.Nath@amd.com>
Tested-by: Ramesh, Ramya <Ramya.Ramesh@amd.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
-rw-r--r-- | drivers/mmc/host/sdhci-pci.c | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/drivers/mmc/host/sdhci-pci.c b/drivers/mmc/host/sdhci-pci.c index f208f2072d0c..94f54d2772e8 100644 --- a/drivers/mmc/host/sdhci-pci.c +++ b/drivers/mmc/host/sdhci-pci.c | |||
@@ -724,14 +724,37 @@ static const struct sdhci_pci_fixes sdhci_rtsx = { | |||
724 | .probe_slot = rtsx_probe_slot, | 724 | .probe_slot = rtsx_probe_slot, |
725 | }; | 725 | }; |
726 | 726 | ||
727 | /*AMD chipset generation*/ | ||
728 | enum amd_chipset_gen { | ||
729 | AMD_CHIPSET_BEFORE_ML, | ||
730 | AMD_CHIPSET_CZ, | ||
731 | AMD_CHIPSET_NL, | ||
732 | AMD_CHIPSET_UNKNOWN, | ||
733 | }; | ||
734 | |||
727 | static int amd_probe(struct sdhci_pci_chip *chip) | 735 | static int amd_probe(struct sdhci_pci_chip *chip) |
728 | { | 736 | { |
729 | struct pci_dev *smbus_dev; | 737 | struct pci_dev *smbus_dev; |
738 | enum amd_chipset_gen gen; | ||
730 | 739 | ||
731 | smbus_dev = pci_get_device(PCI_VENDOR_ID_AMD, | 740 | smbus_dev = pci_get_device(PCI_VENDOR_ID_AMD, |
732 | PCI_DEVICE_ID_AMD_HUDSON2_SMBUS, NULL); | 741 | PCI_DEVICE_ID_AMD_HUDSON2_SMBUS, NULL); |
742 | if (smbus_dev) { | ||
743 | gen = AMD_CHIPSET_BEFORE_ML; | ||
744 | } else { | ||
745 | smbus_dev = pci_get_device(PCI_VENDOR_ID_AMD, | ||
746 | PCI_DEVICE_ID_AMD_KERNCZ_SMBUS, NULL); | ||
747 | if (smbus_dev) { | ||
748 | if (smbus_dev->revision < 0x51) | ||
749 | gen = AMD_CHIPSET_CZ; | ||
750 | else | ||
751 | gen = AMD_CHIPSET_NL; | ||
752 | } else { | ||
753 | gen = AMD_CHIPSET_UNKNOWN; | ||
754 | } | ||
755 | } | ||
733 | 756 | ||
734 | if (smbus_dev && (smbus_dev->revision < 0x51)) { | 757 | if ((gen == AMD_CHIPSET_BEFORE_ML) || (gen == AMD_CHIPSET_CZ)) { |
735 | chip->quirks2 |= SDHCI_QUIRK2_CLEAR_TRANSFERMODE_REG_BEFORE_CMD; | 758 | chip->quirks2 |= SDHCI_QUIRK2_CLEAR_TRANSFERMODE_REG_BEFORE_CMD; |
736 | chip->quirks2 |= SDHCI_QUIRK2_BROKEN_HS200; | 759 | chip->quirks2 |= SDHCI_QUIRK2_BROKEN_HS200; |
737 | } | 760 | } |