]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
mmc: omap: Use devm_mmc_alloc_host() helper
authorBinbin Zhou <zhoubinbin@loongson.cn>
Tue, 3 Jun 2025 12:26:33 +0000 (20:26 +0800)
committerUlf Hansson <ulf.hansson@linaro.org>
Tue, 24 Jun 2025 10:43:23 +0000 (12:43 +0200)
Use new function devm_mmc_alloc_host() to simplify the code.

Cc: Aaro Koskinen <aaro.koskinen@iki.fi>
Cc: Allen Pais <allen.lkml@gmail.com>
Reviewed-by: Huacai Chen <chenhuacai@loongson.cn>
Signed-off-by: Binbin Zhou <zhoubinbin@loongson.cn>
Link: https://lore.kernel.org/r/f172097638a161d622dcbfbc1ede6d4bb8aeea0c.1748933789.git.zhoubinbin@loongson.cn
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/omap.c

index c2be0f04439dc6d7ab95920c1be466afae491371..52ac3f128a1ca0d875e4726583e25f02256d64e9 100644 (file)
@@ -1259,7 +1259,7 @@ static int mmc_omap_new_slot(struct mmc_omap_host *host, int id)
        struct mmc_host *mmc;
        int r;
 
-       mmc = mmc_alloc_host(sizeof(struct mmc_omap_slot), host->dev);
+       mmc = devm_mmc_alloc_host(host->dev, sizeof(*slot));
        if (mmc == NULL)
                return -ENOMEM;
 
@@ -1273,25 +1273,21 @@ static int mmc_omap_new_slot(struct mmc_omap_host *host, int id)
        /* Check for some optional GPIO controls */
        slot->vsd = devm_gpiod_get_index_optional(host->dev, "vsd",
                                                  id, GPIOD_OUT_LOW);
-       if (IS_ERR(slot->vsd)) {
-               r = dev_err_probe(host->dev, PTR_ERR(slot->vsd),
+       if (IS_ERR(slot->vsd))
+               return dev_err_probe(host->dev, PTR_ERR(slot->vsd),
                                     "error looking up VSD GPIO\n");
-               goto err_free_host;
-       }
+
        slot->vio = devm_gpiod_get_index_optional(host->dev, "vio",
                                                  id, GPIOD_OUT_LOW);
-       if (IS_ERR(slot->vio)) {
-               r = dev_err_probe(host->dev, PTR_ERR(slot->vio),
+       if (IS_ERR(slot->vio))
+               return dev_err_probe(host->dev, PTR_ERR(slot->vio),
                                     "error looking up VIO GPIO\n");
-               goto err_free_host;
-       }
+
        slot->cover = devm_gpiod_get_index_optional(host->dev, "cover",
                                                    id, GPIOD_IN);
-       if (IS_ERR(slot->cover)) {
-               r = dev_err_probe(host->dev, PTR_ERR(slot->cover),
+       if (IS_ERR(slot->cover))
+               return dev_err_probe(host->dev, PTR_ERR(slot->cover),
                                     "error looking up cover switch GPIO\n");
-               goto err_free_host;
-       }
 
        host->slots[id] = slot;
 
@@ -1351,8 +1347,6 @@ err_remove_slot_name:
                device_remove_file(&mmc->class_dev, &dev_attr_slot_name);
 err_remove_host:
        mmc_remove_host(mmc);
-err_free_host:
-       mmc_free_host(mmc);
        return r;
 }
 
@@ -1370,7 +1364,6 @@ static void mmc_omap_remove_slot(struct mmc_omap_slot *slot)
        flush_workqueue(slot->host->mmc_omap_wq);
 
        mmc_remove_host(mmc);
-       mmc_free_host(mmc);
 }
 
 static int mmc_omap_probe(struct platform_device *pdev)