aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71-e3000/0103-mmc-sdhci-introduce-adma_write_desc-hook-to-struct-s.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71-e3000/0103-mmc-sdhci-introduce-adma_write_desc-hook-to-struct-s.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71-e3000/0103-mmc-sdhci-introduce-adma_write_desc-hook-to-struct-s.patch128
1 files changed, 0 insertions, 128 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71-e3000/0103-mmc-sdhci-introduce-adma_write_desc-hook-to-struct-s.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71-e3000/0103-mmc-sdhci-introduce-adma_write_desc-hook-to-struct-s.patch
deleted file mode 100644
index bea876fd..00000000
--- a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71-e3000/0103-mmc-sdhci-introduce-adma_write_desc-hook-to-struct-s.patch
+++ /dev/null
@@ -1,128 +0,0 @@
-From d564e134441916f5275e277146471997443d0aad Mon Sep 17 00:00:00 2001
-From: Jisheng Zhang <Jisheng.Zhang@synaptics.com>
-Date: Tue, 28 Aug 2018 17:47:23 +0800
-Subject: [PATCH 103/131] mmc: sdhci: introduce adma_write_desc() hook to
- struct sdhci_ops
-
-Add this hook so that it can be overridden with driver specific
-implementations. We also let the original sdhci_adma_write_desc()
-accept &desc so that the function can set its new value. Then export
-the function so that it could be reused by driver's specific
-implementations.
-
-Signed-off-by: Jisheng Zhang <Jisheng.Zhang@synaptics.com>
-Acked-by: Adrian Hunter <adrian.hunter@intel.com>
-Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
-Signed-off-by: Sudheesh Mavila <sudheesh.mavila@amd.com>
----
- drivers/mmc/host/sdhci.c | 37 +++++++++++++++++++++++--------------
- drivers/mmc/host/sdhci.h | 4 ++++
- 2 files changed, 27 insertions(+), 14 deletions(-)
-
-diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
-index 075253f..f345a31 100644
---- a/drivers/mmc/host/sdhci.c
-+++ b/drivers/mmc/host/sdhci.c
-@@ -554,10 +554,10 @@ static void sdhci_kunmap_atomic(void *buffer, unsigned long *flags)
- local_irq_restore(*flags);
- }
-
--static void sdhci_adma_write_desc(struct sdhci_host *host, void *desc,
-- dma_addr_t addr, int len, unsigned cmd)
-+void sdhci_adma_write_desc(struct sdhci_host *host, void **desc,
-+ dma_addr_t addr, int len, unsigned int cmd)
- {
-- struct sdhci_adma2_64_desc *dma_desc = desc;
-+ struct sdhci_adma2_64_desc *dma_desc = *desc;
-
- /* 32-bit and 64-bit descriptors have these members in same position */
- dma_desc->cmd = cpu_to_le16(cmd);
-@@ -566,6 +566,19 @@ static void sdhci_adma_write_desc(struct sdhci_host *host, void *desc,
-
- if (host->flags & SDHCI_USE_64_BIT_DMA)
- dma_desc->addr_hi = cpu_to_le32((u64)addr >> 32);
-+
-+ *desc += host->desc_sz;
-+}
-+EXPORT_SYMBOL_GPL(sdhci_adma_write_desc);
-+
-+static inline void __sdhci_adma_write_desc(struct sdhci_host *host,
-+ void **desc, dma_addr_t addr,
-+ int len, unsigned int cmd)
-+{
-+ if (host->ops->adma_write_desc)
-+ host->ops->adma_write_desc(host, desc, addr, len, cmd);
-+
-+ sdhci_adma_write_desc(host, desc, addr, len, cmd);
- }
-
- static void sdhci_adma_mark_end(void *desc)
-@@ -618,28 +631,24 @@ static void sdhci_adma_table_pre(struct sdhci_host *host,
- }
-
- /* tran, valid */
-- sdhci_adma_write_desc(host, desc, align_addr, offset,
-- ADMA2_TRAN_VALID);
-+ __sdhci_adma_write_desc(host, &desc, align_addr,
-+ offset, ADMA2_TRAN_VALID);
-
- BUG_ON(offset > 65536);
-
- align += SDHCI_ADMA2_ALIGN;
- align_addr += SDHCI_ADMA2_ALIGN;
-
-- desc += host->desc_sz;
--
- addr += offset;
- len -= offset;
- }
-
- BUG_ON(len > 65536);
-
-- if (len) {
-- /* tran, valid */
-- sdhci_adma_write_desc(host, desc, addr, len,
-- ADMA2_TRAN_VALID);
-- desc += host->desc_sz;
-- }
-+ /* tran, valid */
-+ if (len)
-+ __sdhci_adma_write_desc(host, &desc, addr, len,
-+ ADMA2_TRAN_VALID);
-
- /*
- * If this triggers then we have a calculation bug
-@@ -656,7 +665,7 @@ static void sdhci_adma_table_pre(struct sdhci_host *host,
- }
- } else {
- /* Add a terminating entry - nop, end, valid */
-- sdhci_adma_write_desc(host, desc, 0, 0, ADMA2_NOP_END_VALID);
-+ __sdhci_adma_write_desc(host, &desc, 0, 0, ADMA2_NOP_END_VALID);
- }
- }
-
-diff --git a/drivers/mmc/host/sdhci.h b/drivers/mmc/host/sdhci.h
-index 17193f4..14e6545 100755
---- a/drivers/mmc/host/sdhci.h
-+++ b/drivers/mmc/host/sdhci.h
-@@ -591,6 +591,8 @@ struct sdhci_ops {
- void (*adma_workaround)(struct sdhci_host *host, u32 intmask);
- void (*card_event)(struct sdhci_host *host);
- void (*voltage_switch)(struct sdhci_host *host);
-+ void (*adma_write_desc)(struct sdhci_host *host, void **desc,
-+ dma_addr_t addr, int len, unsigned int cmd);
- };
-
- #ifdef CONFIG_MMC_SDHCI_IO_ACCESSORS
-@@ -722,6 +724,8 @@ void sdhci_set_ios(struct mmc_host *mmc, struct mmc_ios *ios);
- int sdhci_start_signal_voltage_switch(struct mmc_host *mmc,
- struct mmc_ios *ios);
- void sdhci_enable_sdio_irq(struct mmc_host *mmc, int enable);
-+void sdhci_adma_write_desc(struct sdhci_host *host, void **desc,
-+ dma_addr_t addr, int len, unsigned int cmd);
-
- #ifdef CONFIG_PM
- int sdhci_suspend_host(struct sdhci_host *host);
---
-2.7.4
-