mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-28 20:02:17 +00:00
MMC host:
- mxs: Fix flags passed to dmaengine_prep_slave_sg - cqhci: Add a missing memory barrier - sdhci-omap: Fix tuning procedure for temperatures < -20C -----BEGIN PGP SIGNATURE----- iQJLBAABCgA1FiEEugLDXPmKSktSkQsV/iaEJXNYjCkFAl2y/6gXHHVsZi5oYW5z c29uQGxpbmFyby5vcmcACgkQ/iaEJXNYjCmSAxAAtgihy3Lh26+z0U0SCSTc7KUB WOrV0rXZ6O58p4vMuuY4idYsNA2QtqFBi97bjLVEi6fFZChkkUjQeDkx5YqgmpvA ZquLahjWg0OK/c+puS1E/p1wMwV+t5BYYw4db79U58gzAtfezloLKEO9p12Xa8oT O+6Pa5u8aXPRglzmtjbca8mcbcOvpk9tVRiSC3LCA1GLGflbUF3JLgELxFjmlv2s WAdP5Ij/uZ0cz7PLI9jlRXURYuvSIfeJzgBBYX2i1Ii9CeC97cEJsbiLtaBEfJjl IPya+1/CCriIY+CoC0dcPUilTvp/BQZdWMmMQf5iP6PSMYZzBQf08APrbryKVKuB 5xmK8OICbc49T0LJGcjTiCIk5NaVbT/xIm6A3mBBQV2Zsm37TX2yJdNl1PWbEDUi N5Mg/WKfisY7zWLrFzE2wZE+0evNPbFOtLjbZJSPtNWKrtSVU+ool8n+srZcdtEE uWY1d+Gpdbt1Ix1jLv5JlBQ5SuAXuLL8gwAcINGIufqasxAVatDXU9/38/mms9e4 eXpmwZzJd3HbMJJe6ggcuzFP7E/bM02h+RrtXkaO13SzoFA7cLJB6w8Wlixfwzw1 hFYu/JUNFOVCXJ6MX4d5DfhcG9lKWvWA1qqynLX+f1Y9rmvCx/2lfDJksFc5nvDx U3rTi2vuiYv/g+TCeHQ= =rD69 -----END PGP SIGNATURE----- Merge tag 'mmc-v5.4-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc Pull MMC fixes from Ulf Hansson: "MMC host fixes: - mxs: Fix flags passed to dmaengine_prep_slave_sg - cqhci: Add a missing memory barrier - sdhci-omap: Fix tuning procedure for temperatures < -20C" * tag 'mmc-v5.4-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc: mmc: mxs: fix flags passed to dmaengine_prep_slave_sg mmc: cqhci: Commit descriptors before setting the doorbell mmc: sdhci-omap: Fix Tuning procedure for temperatures < -20C
This commit is contained in:
commit
f64928480f
3 changed files with 7 additions and 5 deletions
|
@ -611,7 +611,8 @@ static int cqhci_request(struct mmc_host *mmc, struct mmc_request *mrq)
|
|||
cq_host->slot[tag].flags = 0;
|
||||
|
||||
cq_host->qcnt += 1;
|
||||
|
||||
/* Make sure descriptors are ready before ringing the doorbell */
|
||||
wmb();
|
||||
cqhci_writel(cq_host, 1 << tag, CQHCI_TDBR);
|
||||
if (!(cqhci_readl(cq_host, CQHCI_TDBR) & (1 << tag)))
|
||||
pr_debug("%s: cqhci: doorbell not set for tag %d\n",
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
#include <linux/interrupt.h>
|
||||
#include <linux/dma-mapping.h>
|
||||
#include <linux/dmaengine.h>
|
||||
#include <linux/dma/mxs-dma.h>
|
||||
#include <linux/highmem.h>
|
||||
#include <linux/clk.h>
|
||||
#include <linux/err.h>
|
||||
|
@ -266,7 +267,7 @@ static void mxs_mmc_bc(struct mxs_mmc_host *host)
|
|||
ssp->ssp_pio_words[2] = cmd1;
|
||||
ssp->dma_dir = DMA_NONE;
|
||||
ssp->slave_dirn = DMA_TRANS_NONE;
|
||||
desc = mxs_mmc_prep_dma(host, DMA_CTRL_ACK);
|
||||
desc = mxs_mmc_prep_dma(host, MXS_DMA_CTRL_WAIT4END);
|
||||
if (!desc)
|
||||
goto out;
|
||||
|
||||
|
@ -311,7 +312,7 @@ static void mxs_mmc_ac(struct mxs_mmc_host *host)
|
|||
ssp->ssp_pio_words[2] = cmd1;
|
||||
ssp->dma_dir = DMA_NONE;
|
||||
ssp->slave_dirn = DMA_TRANS_NONE;
|
||||
desc = mxs_mmc_prep_dma(host, DMA_CTRL_ACK);
|
||||
desc = mxs_mmc_prep_dma(host, MXS_DMA_CTRL_WAIT4END);
|
||||
if (!desc)
|
||||
goto out;
|
||||
|
||||
|
@ -441,7 +442,7 @@ static void mxs_mmc_adtc(struct mxs_mmc_host *host)
|
|||
host->data = data;
|
||||
ssp->dma_dir = dma_data_dir;
|
||||
ssp->slave_dirn = slave_dirn;
|
||||
desc = mxs_mmc_prep_dma(host, DMA_PREP_INTERRUPT | DMA_CTRL_ACK);
|
||||
desc = mxs_mmc_prep_dma(host, DMA_PREP_INTERRUPT | MXS_DMA_CTRL_WAIT4END);
|
||||
if (!desc)
|
||||
goto out;
|
||||
|
||||
|
|
|
@ -372,7 +372,7 @@ static int sdhci_omap_execute_tuning(struct mmc_host *mmc, u32 opcode)
|
|||
* on temperature
|
||||
*/
|
||||
if (temperature < -20000)
|
||||
phase_delay = min(max_window + 4 * max_len - 24,
|
||||
phase_delay = min(max_window + 4 * (max_len - 1) - 24,
|
||||
max_window +
|
||||
DIV_ROUND_UP(13 * max_len, 16) * 4);
|
||||
else if (temperature < 20000)
|
||||
|
|
Loading…
Reference in a new issue