aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71-e3000/0109-amd-eMMC-sdhci-HS400-workaround-for-ZP.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71-e3000/0109-amd-eMMC-sdhci-HS400-workaround-for-ZP.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71-e3000/0109-amd-eMMC-sdhci-HS400-workaround-for-ZP.patch149
1 files changed, 0 insertions, 149 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71-e3000/0109-amd-eMMC-sdhci-HS400-workaround-for-ZP.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71-e3000/0109-amd-eMMC-sdhci-HS400-workaround-for-ZP.patch
deleted file mode 100644
index 50b0433b..00000000
--- a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71-e3000/0109-amd-eMMC-sdhci-HS400-workaround-for-ZP.patch
+++ /dev/null
@@ -1,149 +0,0 @@
-From c3dcaa45a3f29d943e18bc6470a80b827ac7a115 Mon Sep 17 00:00:00 2001
-From: Sudheesh Mavila <sudheesh.mavila@amd.com>
-Date: Tue, 22 Jan 2019 23:01:45 +0530
-Subject: [PATCH 109/131] amd-eMMC sdhci HS400 workaround for ZP
-
-Signed-off-by: Sudheesh Mavila <sudheesh.mavila@amd.com>
----
- drivers/mmc/core/mmc.c | 12 ++++++++++--
- drivers/mmc/host/sdhci-acpi.c | 1 +
- drivers/mmc/host/sdhci.c | 9 +++++++++
- drivers/mmc/host/sdhci.h | 1 +
- include/linux/mmc/host.h | 1 +
- 5 files changed, 22 insertions(+), 2 deletions(-)
- mode change 100644 => 100755 drivers/mmc/core/mmc.c
- mode change 100644 => 100755 drivers/mmc/host/sdhci-acpi.c
- mode change 100644 => 100755 drivers/mmc/host/sdhci.c
- mode change 100644 => 100755 include/linux/mmc/host.h
-
-diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c
-old mode 100644
-new mode 100755
-index 16b22d7..2313e58
---- a/drivers/mmc/core/mmc.c
-+++ b/drivers/mmc/core/mmc.c
-@@ -1161,7 +1161,9 @@ static int mmc_select_hs400(struct mmc_card *card)
- mmc_hostname(host), err);
- return err;
- }
-+ /*In AMD Platform due to hardware ip issue this fails*/
-
-+ if (!host->ops->set_hs400_dll) {
- /* Set host controller to HS timing */
- mmc_set_timing(card->host, MMC_TIMING_MMC_HS);
-
-@@ -1172,7 +1174,7 @@ static int mmc_select_hs400(struct mmc_card *card)
- /* Reduce frequency to HS frequency */
- max_dtr = card->ext_csd.hs_max_dtr;
- mmc_set_clock(host, max_dtr);
--
-+ }
- err = mmc_switch_status(card);
- if (err)
- goto out_err;
-@@ -1212,6 +1214,8 @@ static int mmc_select_hs400(struct mmc_card *card)
- if (host->ops->hs400_complete)
- host->ops->hs400_complete(host);
-
-+ if (host->ops->set_hs400_dll)
-+ host->ops->set_hs400_dll(host);
- return 0;
-
- out_err:
-@@ -1234,6 +1238,7 @@ int mmc_hs400_to_hs200(struct mmc_card *card)
-
- /* Reduce frequency to HS */
- max_dtr = card->ext_csd.hs_max_dtr;
-+ if (!host->ops->set_hs400_dll)
- mmc_set_clock(host, max_dtr);
-
- /* Switch HS400 to HS DDR */
-@@ -1243,12 +1248,15 @@ int mmc_hs400_to_hs200(struct mmc_card *card)
- true, false, true);
- if (err)
- goto out_err;
--
-+ /*In AMD Platform due to hardware ip issue this fails*/
-+ if (!host->ops->set_hs400_dll)
-+ {
- mmc_set_timing(host, MMC_TIMING_MMC_DDR52);
-
- err = mmc_switch_status(card);
- if (err)
- goto out_err;
-+ }
-
- /* Switch HS DDR to HS */
- err = __mmc_switch(card, EXT_CSD_CMD_SET_NORMAL, EXT_CSD_BUS_WIDTH,
-diff --git a/drivers/mmc/host/sdhci-acpi.c b/drivers/mmc/host/sdhci-acpi.c
-old mode 100644
-new mode 100755
-index c2e7048..558b792
---- a/drivers/mmc/host/sdhci-acpi.c
-+++ b/drivers/mmc/host/sdhci-acpi.c
-@@ -411,6 +411,7 @@ static const struct sdhci_ops sdhci_acpi_ops_amd = {
- .set_bus_width = sdhci_set_bus_width,
- .reset = sdhci_reset,
- .set_uhs_signaling = sdhci_set_uhs_signaling,
-+ .set_hs400_dll = sdhci_acpi_amd_hs400_dll,
- };
-
- static const struct sdhci_acpi_chip sdhci_acpi_chip_amd = {
-diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
-old mode 100644
-new mode 100755
-index dc5d75f..34c6a81
---- a/drivers/mmc/host/sdhci.c
-+++ b/drivers/mmc/host/sdhci.c
-@@ -1977,6 +1977,14 @@ static void sdhci_hw_reset(struct mmc_host *mmc)
- host->ops->hw_reset(host);
- }
-
-+static void sdhci_set_hs400_dll(struct mmc_host *mmc)
-+{
-+ struct sdhci_host *host = mmc_priv(mmc);
-+
-+ if (host->ops && host->ops->set_hs400_dll)
-+ host->ops->set_hs400_dll(host);
-+}
-+
- static void sdhci_enable_sdio_irq_nolock(struct sdhci_host *host, int enable)
- {
- if (!(host->flags & SDHCI_DEVICE_DEAD)) {
-@@ -2465,6 +2473,7 @@ static const struct mmc_host_ops sdhci_ops = {
- .get_cd = sdhci_get_cd,
- .get_ro = sdhci_get_ro,
- .hw_reset = sdhci_hw_reset,
-+ .set_hs400_dll = sdhci_set_hs400_dll,
- .enable_sdio_irq = sdhci_enable_sdio_irq,
- .start_signal_voltage_switch = sdhci_start_signal_voltage_switch,
- .prepare_hs400_tuning = sdhci_prepare_hs400_tuning,
-diff --git a/drivers/mmc/host/sdhci.h b/drivers/mmc/host/sdhci.h
-index 23ddc46..492401d 100755
---- a/drivers/mmc/host/sdhci.h
-+++ b/drivers/mmc/host/sdhci.h
-@@ -611,6 +611,7 @@ struct sdhci_ops {
- int (*platform_execute_tuning)(struct sdhci_host *host, u32 opcode);
- void (*set_uhs_signaling)(struct sdhci_host *host, unsigned int uhs);
- void (*hw_reset)(struct sdhci_host *host);
-+ void (*set_hs400_dll)(struct sdhci_host *host);
- void (*adma_workaround)(struct sdhci_host *host, u32 intmask);
- void (*card_event)(struct sdhci_host *host);
- void (*voltage_switch)(struct sdhci_host *host);
-diff --git a/include/linux/mmc/host.h b/include/linux/mmc/host.h
-old mode 100644
-new mode 100755
-index 843c38f..ba4af38
---- a/include/linux/mmc/host.h
-+++ b/include/linux/mmc/host.h
-@@ -159,6 +159,7 @@ struct mmc_host_ops {
- unsigned int max_dtr, int host_drv,
- int card_drv, int *drv_type);
- void (*hw_reset)(struct mmc_host *host);
-+ void (*set_hs400_dll)(struct mmc_host *host);
- void (*card_event)(struct mmc_host *host);
-
- /*
---
-2.7.4
-