From d66fb5b1f6662a8aa5f78994696994c2594dbb22 Mon Sep 17 00:00:00 2001 From: Ezequiel Garcia Date: Sat, 25 May 2019 19:25:22 -0300 Subject: [PATCH] mmc: Register only the first MMC device on MMC_TINY When MMC_TINY is enabled, support for only one MMC device is provided. Boards that register more than one device, will just write over mmc_static keeping only the last one registered. This commit prevents this, keeping only the first MMC device created. A debug warning message is added, if nothing else, as a hint/documentation for developers. Signed-off-by: Ezequiel Garcia --- drivers/mmc/mmc_legacy.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/mmc/mmc_legacy.c b/drivers/mmc/mmc_legacy.c index 66a7cda..b0f5cf5 100644 --- a/drivers/mmc/mmc_legacy.c +++ b/drivers/mmc/mmc_legacy.c @@ -150,6 +150,15 @@ struct mmc *mmc_create(const struct mmc_config *cfg, void *priv) { struct mmc *mmc = &mmc_static; + /* First MMC device registered, fail to register a new one. + * Given users are not expecting this to fail, instead + * of failing let's just return the only MMC device + */ + if (mmc->cfg) { + debug("Warning: MMC_TINY doesn't support multiple MMC devices\n"); + return mmc; + } + mmc->cfg = cfg; mmc->priv = priv; -- 2.7.4