Commit b5e97d6e authored by Vincent Wan's avatar Vincent Wan Committed by Ulf Hansson

mmc: sdhci-pci: Change AMD SDHCI quirk application scope

Change this quirk to apply to AMD Carrizo platform.
Signed-off-by: default avatarWan ZongShun <Vincent.Wan@amd.com>
Tested-by: default avatarNath, Arindam <Arindam.Nath@amd.com>
Tested-by: default avatarRamesh, Ramya <Ramya.Ramesh@amd.com>
Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
parent bcb29994
...@@ -724,14 +724,37 @@ static const struct sdhci_pci_fixes sdhci_rtsx = { ...@@ -724,14 +724,37 @@ static const struct sdhci_pci_fixes sdhci_rtsx = {
.probe_slot = rtsx_probe_slot, .probe_slot = rtsx_probe_slot,
}; };
/*AMD chipset generation*/
enum amd_chipset_gen {
AMD_CHIPSET_BEFORE_ML,
AMD_CHIPSET_CZ,
AMD_CHIPSET_NL,
AMD_CHIPSET_UNKNOWN,
};
static int amd_probe(struct sdhci_pci_chip *chip) static int amd_probe(struct sdhci_pci_chip *chip)
{ {
struct pci_dev *smbus_dev; struct pci_dev *smbus_dev;
enum amd_chipset_gen gen;
smbus_dev = pci_get_device(PCI_VENDOR_ID_AMD, smbus_dev = pci_get_device(PCI_VENDOR_ID_AMD,
PCI_DEVICE_ID_AMD_HUDSON2_SMBUS, NULL); PCI_DEVICE_ID_AMD_HUDSON2_SMBUS, NULL);
if (smbus_dev) {
gen = AMD_CHIPSET_BEFORE_ML;
} else {
smbus_dev = pci_get_device(PCI_VENDOR_ID_AMD,
PCI_DEVICE_ID_AMD_KERNCZ_SMBUS, NULL);
if (smbus_dev) {
if (smbus_dev->revision < 0x51)
gen = AMD_CHIPSET_CZ;
else
gen = AMD_CHIPSET_NL;
} else {
gen = AMD_CHIPSET_UNKNOWN;
}
}
if (smbus_dev && (smbus_dev->revision < 0x51)) { if ((gen == AMD_CHIPSET_BEFORE_ML) || (gen == AMD_CHIPSET_CZ)) {
chip->quirks2 |= SDHCI_QUIRK2_CLEAR_TRANSFERMODE_REG_BEFORE_CMD; chip->quirks2 |= SDHCI_QUIRK2_CLEAR_TRANSFERMODE_REG_BEFORE_CMD;
chip->quirks2 |= SDHCI_QUIRK2_BROKEN_HS200; chip->quirks2 |= SDHCI_QUIRK2_BROKEN_HS200;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment