summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2019-07-31 08:34:35 -0400
committerTom Rini <trini@konsulko.com>2019-07-31 08:34:35 -0400
commit3fe483b13ec96aacfeb6fa9b7c2a5dc8bb38a866 (patch)
treec6d04d4d492ea8c354ec0b853355c4a0cdca3fdf /drivers
parenta239147fa2c0c3fe849ccaffd72c4dc4cae2be71 (diff)
parentfea3939d31ccde5b8372bc5506a35ac169de03c8 (diff)
downloadu-boot-3fe483b13ec96aacfeb6fa9b7c2a5dc8bb38a866.tar.gz
Merge tag 'mmc-7-31' of https://gitlab.denx.de/u-boot/custodians/u-boot-mmc
A new mmc/sd block test case Bug fixes for sdhci and mv_sdhci
Diffstat (limited to 'drivers')
-rw-r--r--drivers/mmc/mmc.c2
-rw-r--r--drivers/mmc/mtk-sd.c3
-rw-r--r--drivers/mmc/mv_sdhci.c6
-rw-r--r--drivers/mmc/sdhci.c2
4 files changed, 8 insertions, 5 deletions
diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c
index c9aa13b409..eecc7d687e 100644
--- a/drivers/mmc/mmc.c
+++ b/drivers/mmc/mmc.c
@@ -2819,12 +2819,12 @@ int mmc_start_init(struct mmc *mmc)
MMC_CAP(MMC_LEGACY) | MMC_MODE_1BIT;
#if !defined(CONFIG_MMC_BROKEN_CD)
- /* we pretend there's no card when init is NULL */
no_card = mmc_getcd(mmc) == 0;
#else
no_card = 0;
#endif
#if !CONFIG_IS_ENABLED(DM_MMC)
+ /* we pretend there's no card when init is NULL */
no_card = no_card || (mmc->cfg->ops->init == NULL);
#endif
if (no_card) {
diff --git a/drivers/mmc/mtk-sd.c b/drivers/mmc/mtk-sd.c
index e0ac3e9d69..49085090c8 100644
--- a/drivers/mmc/mtk-sd.c
+++ b/drivers/mmc/mtk-sd.c
@@ -13,6 +13,7 @@
#include <errno.h>
#include <malloc.h>
#include <stdbool.h>
+#include <watchdog.h>
#include <asm/gpio.h>
#include <dm/pinctrl.h>
#include <linux/bitops.h>
@@ -623,6 +624,8 @@ static int msdc_start_data(struct msdc_host *host, struct mmc_data *data)
u32 size;
int ret;
+ WATCHDOG_RESET();
+
if (data->flags == MMC_DATA_WRITE)
host->last_data_write = 1;
diff --git a/drivers/mmc/mv_sdhci.c b/drivers/mmc/mv_sdhci.c
index bf26d2e4e2..f5f3e43247 100644
--- a/drivers/mmc/mv_sdhci.c
+++ b/drivers/mmc/mv_sdhci.c
@@ -114,6 +114,9 @@ static int mv_sdhci_probe(struct udevice *dev)
host->name = MVSDH_NAME;
host->ioaddr = (void *)devfdt_get_addr(dev);
host->quirks = SDHCI_QUIRK_32BIT_DMA_ADDR | SDHCI_QUIRK_WAIT_SEND_CMD;
+ host->mmc = &plat->mmc;
+ host->mmc->dev = dev;
+ host->mmc->priv = host;
ret = sdhci_setup_cfg(&plat->cfg, host, 0, 0);
if (ret)
@@ -124,9 +127,6 @@ static int mv_sdhci_probe(struct udevice *dev)
sdhci_mvebu_mbus_config(host->ioaddr);
}
- host->mmc = &plat->mmc;
- host->mmc->dev = dev;
- host->mmc->priv = host;
upriv->mmc = host->mmc;
return sdhci_probe(dev);
diff --git a/drivers/mmc/sdhci.c b/drivers/mmc/sdhci.c
index 0a0770cc20..2779bca93f 100644
--- a/drivers/mmc/sdhci.c
+++ b/drivers/mmc/sdhci.c
@@ -623,7 +623,7 @@ static int sdhci_init(struct mmc *mmc)
#if CONFIG_IS_ENABLED(DM_MMC) && CONFIG_IS_ENABLED(DM_GPIO)
struct udevice *dev = mmc->dev;
- gpio_request_by_name(dev, "cd-gpio", 0,
+ gpio_request_by_name(dev, "cd-gpios", 0,
&host->cd_gpio, GPIOD_IS_IN);
#endif