forked from Minki/linux
MMC host:
- tmio: Fixup support for reset - sdhci-of-esdhc: Extend erratum for pulse width to more broken HWs - renesas_sdhi: Fix re-binding of drivers -----BEGIN PGP SIGNATURE----- iQJLBAABCgA1FiEEugLDXPmKSktSkQsV/iaEJXNYjCkFAl+ubXUXHHVsZi5oYW5z c29uQGxpbmFyby5vcmcACgkQ/iaEJXNYjCncSBAAmVXt4Ol8Yo0ROpPwlO9GrbHY vI7kVfUcNtnSfEhovRJ9tlL0iVR9WqxaemWVIwLbu3v4UYJgv4PMZktkyqWY4Qbe dC3nI3eBBL1zI+TX0xKoeNNRgPNa7RVuGnJfE8cvOzJ+sGY2Kx/bv3NTJNVKHY8D iOvoQaR9FIoN+8KebyA0fdSYytwAa0GfGck7M+BU/3vTCRABYDtd3tL4UB3o2Qgt 15RfWogbuckowXLxlunFmh8YgZkpTrqul3HJq0B0+SfBozyQnfGLdm7O8Qk8vAQw yzTXtRBmpf4k7rUsVfOkotRVuuDR+WRyywrGdIS2ulXvqUBJ/9P6ACterLpXyx0M JPtPZjevplTDB2yGLcbMD0BSKbteO7uGcptizDvBd6qsXi89Xw6ABmROQ+2lj6sa cDSdJ8azdoYQ3J895uDZo4y+7yNU9DQOnJFAdwCWRsqBpHMvp2XVihyeqD1N3E62 82FFPtlHDCr2/J25mMZfqe+I56kbaJb+4fvIQ07Rl8zdIBL8udj3A3h5o8lLJhP6 qYEXnt8OLXR1GA/5lP3Faynh/4IoeEhIQYqMmywvMnp8qIAAHQznX+oj8uDC8tUz SG7qKYU7V6K/fm4hAbW2Gt2QnfyKkHwDz9DkPw3t1lubPYotutHeNRSPvYNMGvZl d07pN+ybCe4bZ7i7w1s= =9KYt -----END PGP SIGNATURE----- Merge tag 'mmc-v5.10-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc Pull MMC fixes from Ulf Hansson: - tmio: Fixup support for reset - sdhci-of-esdhc: Extend erratum for pulse width to more broken HWs - renesas_sdhi: Fix re-binding of drivers * tag 'mmc-v5.10-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc: Revert "mmc: renesas_sdhi: workaround a regression when reinserting SD cards" mmc: tmio: bring tuning HW to a sane state with MMC_POWER_OFF mmc: tmio: when resetting, reset DMA controller, too mmc: sdhci-of-esdhc: Handle pulse width detection erratum for more SoCs mmc: renesas_sdhi_core: Add missing tmio_mmc_host_free() at remove
This commit is contained in:
commit
673cb932b6
@ -572,17 +572,6 @@ static void renesas_sdhi_reset(struct tmio_mmc_host *host)
|
||||
TMIO_MASK_INIT_RCAR2);
|
||||
}
|
||||
|
||||
/*
|
||||
* This is a temporary workaround! This driver used 'hw_reset' wrongly and the
|
||||
* fix for that showed a regression. So, we mimic the old behaviour until the
|
||||
* proper solution is found.
|
||||
*/
|
||||
static void renesas_sdhi_hw_reset(struct mmc_host *mmc)
|
||||
{
|
||||
struct tmio_mmc_host *host = mmc_priv(mmc);
|
||||
renesas_sdhi_reset(host);
|
||||
}
|
||||
|
||||
#define SH_MOBILE_SDHI_MIN_TAP_ROW 3
|
||||
|
||||
static int renesas_sdhi_select_tuning(struct tmio_mmc_host *host)
|
||||
@ -1020,8 +1009,6 @@ int renesas_sdhi_probe(struct platform_device *pdev,
|
||||
if (of_data && of_data->scc_offset) {
|
||||
priv->scc_ctl = host->ctl + of_data->scc_offset;
|
||||
host->reset = renesas_sdhi_reset;
|
||||
host->ops.hw_reset = renesas_sdhi_hw_reset;
|
||||
host->mmc->caps |= MMC_CAP_HW_RESET;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1160,6 +1147,7 @@ int renesas_sdhi_remove(struct platform_device *pdev)
|
||||
|
||||
tmio_mmc_host_remove(host);
|
||||
renesas_sdhi_clk_disable(host);
|
||||
tmio_mmc_host_free(host);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -1324,6 +1324,8 @@ static struct soc_device_attribute soc_fixup_sdhc_clkdivs[] = {
|
||||
|
||||
static struct soc_device_attribute soc_unreliable_pulse_detection[] = {
|
||||
{ .family = "QorIQ LX2160A", .revision = "1.0", },
|
||||
{ .family = "QorIQ LX2160A", .revision = "2.0", },
|
||||
{ .family = "QorIQ LS1028A", .revision = "1.0", },
|
||||
{ },
|
||||
};
|
||||
|
||||
|
@ -175,6 +175,8 @@ static void tmio_mmc_reset(struct tmio_mmc_host *host)
|
||||
if (host->reset)
|
||||
host->reset(host);
|
||||
|
||||
tmio_mmc_abort_dma(host);
|
||||
|
||||
if (host->pdata->flags & TMIO_MMC_SDIO_IRQ) {
|
||||
sd_ctrl_write16(host, CTL_SDIO_IRQ_MASK, host->sdio_irq_mask);
|
||||
sd_ctrl_write16(host, CTL_TRANSACTION_CTL, 0x0001);
|
||||
@ -223,8 +225,6 @@ static void tmio_mmc_reset_work(struct work_struct *work)
|
||||
|
||||
/* Ready for new calls */
|
||||
host->mrq = NULL;
|
||||
|
||||
tmio_mmc_abort_dma(host);
|
||||
mmc_request_done(host->mmc, mrq);
|
||||
}
|
||||
|
||||
@ -927,6 +927,9 @@ static void tmio_mmc_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
|
||||
switch (ios->power_mode) {
|
||||
case MMC_POWER_OFF:
|
||||
tmio_mmc_power_off(host);
|
||||
/* Downgrade ensures a sane state for tuning HW (e.g. SCC) */
|
||||
if (host->mmc->ops->hs400_downgrade)
|
||||
host->mmc->ops->hs400_downgrade(host->mmc);
|
||||
host->set_clock(host, 0);
|
||||
break;
|
||||
case MMC_POWER_UP:
|
||||
|
Loading…
Reference in New Issue
Block a user