diff options
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.patch | 128 |
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 - |