]> git.baikalelectronics.ru Git - kernel.git/commitdiff
mmc: host: Drop redundant MMC_CAP_ERASE
authorUlf Hansson <ulf.hansson@linaro.org>
Fri, 8 May 2020 11:29:02 +0000 (13:29 +0200)
committerUlf Hansson <ulf.hansson@linaro.org>
Thu, 28 May 2020 09:22:14 +0000 (11:22 +0200)
The MMC_CAP_ERASE bit is no longer used by the mmc core as erase, discard
and trim operations are now always supported. Therefore, drop the bit and
move all mmc hosts away from using it.

Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Reviewed-by: Rui Miguel Silva <rmfrfs@gmail.com>
Link: https://lore.kernel.org/r/20200508112902.23575-1-ulf.hansson@linaro.org
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
16 files changed:
drivers/mmc/host/bcm2835.c
drivers/mmc/host/cavium.c
drivers/mmc/host/dw_mmc.c
drivers/mmc/host/meson-mx-sdio.c
drivers/mmc/host/mtk-sd.c
drivers/mmc/host/mvsdio.c
drivers/mmc/host/mxs-mmc.c
drivers/mmc/host/omap.c
drivers/mmc/host/omap_hsmmc.c
drivers/mmc/host/rtsx_pci_sdmmc.c
drivers/mmc/host/rtsx_usb_sdmmc.c
drivers/mmc/host/sdhci.c
drivers/mmc/host/sunxi-mmc.c
drivers/mmc/host/tmio_mmc_core.c
drivers/staging/greybus/sdio.c
include/linux/mmc/host.h

index c3d949847cbd9d6cd1ffbf4674d93532e658233a..a0767790a826f67465109f07500475125636c967 100644 (file)
@@ -1280,8 +1280,7 @@ static int bcm2835_add_host(struct bcm2835_host *host)
 
        /* host controller capabilities */
        mmc->caps |= MMC_CAP_SD_HIGHSPEED | MMC_CAP_MMC_HIGHSPEED |
-                    MMC_CAP_NEEDS_POLL | MMC_CAP_HW_RESET | MMC_CAP_ERASE |
-                    MMC_CAP_CMD23;
+                    MMC_CAP_NEEDS_POLL | MMC_CAP_HW_RESET | MMC_CAP_CMD23;
 
        spin_lock_init(&host->lock);
        mutex_init(&host->mutex);
index 89deb451e0ac6225c9481dc21ca21373f46c2d7c..c5da3aaee334555a8c6c71ffe30251c48df1eea6 100644 (file)
@@ -1038,8 +1038,7 @@ int cvm_mmc_of_slot_probe(struct device *dev, struct cvm_mmc_host *host)
         * Disable bounce buffers for max_segs = 1
         */
        mmc->caps |= MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED |
-                    MMC_CAP_ERASE | MMC_CAP_CMD23 | MMC_CAP_POWER_OFF_CARD |
-                    MMC_CAP_3_3V_DDR;
+                    MMC_CAP_CMD23 | MMC_CAP_POWER_OFF_CARD | MMC_CAP_3_3V_DDR;
 
        if (host->use_sg)
                mmc->max_segs = 16;
index 5d1f8a3ec3a5db558833698e1c9bc7926a2bf7dd..35ae5737c62267f98fffa78126dce04f2d6b2ccf 100644 (file)
@@ -2751,12 +2751,6 @@ static int dw_mci_init_slot_caps(struct dw_mci_slot *slot)
        if (host->pdata->caps)
                mmc->caps = host->pdata->caps;
 
-       /*
-        * Support MMC_CAP_ERASE by default.
-        * It needs to use trim/discard/erase commands.
-        */
-       mmc->caps |= MMC_CAP_ERASE;
-
        if (host->pdata->pm_caps)
                mmc->pm_caps = host->pdata->pm_caps;
 
index 3813b544f5713c54986b1a8b3488b0f251d0aa0a..9b2cf7afc246f9472eb46ae301c5401271cf693c 100644 (file)
@@ -564,7 +564,7 @@ static int meson_mx_mmc_add_host(struct meson_mx_mmc_host *host)
        mmc->f_max = clk_round_rate(host->cfg_div_clk,
                                    clk_get_rate(host->parent_clk));
 
-       mmc->caps |= MMC_CAP_ERASE | MMC_CAP_CMD23 | MMC_CAP_WAIT_WHILE_BUSY;
+       mmc->caps |= MMC_CAP_CMD23 | MMC_CAP_WAIT_WHILE_BUSY;
        mmc->ops = &meson_mx_mmc_ops;
 
        ret = mmc_of_parse(mmc);
index 53819ae9f2718862249dde1ecf1dd17f110abec5..39e7fc54c438f6592d3f0d71fa8e5f6197d347b9 100644 (file)
@@ -2326,7 +2326,7 @@ static int msdc_drv_probe(struct platform_device *pdev)
        if (mmc->caps & MMC_CAP_SDIO_IRQ)
                mmc->caps2 |= MMC_CAP2_SDIO_IRQ_NOTHREAD;
 
-       mmc->caps |= MMC_CAP_ERASE | MMC_CAP_CMD23;
+       mmc->caps |= MMC_CAP_CMD23;
        /* MMC core transfer sizes tunable parameters */
        mmc->max_segs = MAX_BD_NUM;
        if (host->dev_comp->support_64g)
index 203b617126014aaa5062e69636045c4b37fc6a36..cc0752a9df6d4c778ff5cba1583d0f01fa9cb1b7 100644 (file)
@@ -752,8 +752,6 @@ static int mvsd_probe(struct platform_device *pdev)
        if (maxfreq)
                mmc->f_max = maxfreq;
 
-       mmc->caps |= MMC_CAP_ERASE;
-
        spin_lock_init(&host->lock);
 
        host->base = devm_platform_ioremap_resource(pdev, 0);
index d82674aed4474bc6990d27db4b0d8d9b5236beeb..b1820def36c014fe9217da2ea2f707a9e8ae2a22 100644 (file)
@@ -634,8 +634,7 @@ static int mxs_mmc_probe(struct platform_device *pdev)
        /* set mmc core parameters */
        mmc->ops = &mxs_mmc_ops;
        mmc->caps = MMC_CAP_SD_HIGHSPEED | MMC_CAP_MMC_HIGHSPEED |
-                   MMC_CAP_SDIO_IRQ | MMC_CAP_NEEDS_POLL | MMC_CAP_CMD23 |
-                   MMC_CAP_ERASE;
+                   MMC_CAP_SDIO_IRQ | MMC_CAP_NEEDS_POLL | MMC_CAP_CMD23;
 
        host->broken_cd = of_property_read_bool(np, "broken-cd");
 
index d74e73c95fdffa6acf589ea0483d374a7530561d..33d7af7c7762a8499605790b8ebb6966702e5d35 100644 (file)
@@ -1244,7 +1244,7 @@ static int mmc_omap_new_slot(struct mmc_omap_host *host, int id)
 
        mmc->caps = 0;
        if (host->pdata->slots[id].wires >= 4)
-               mmc->caps |= MMC_CAP_4_BIT_DATA | MMC_CAP_ERASE;
+               mmc->caps |= MMC_CAP_4_BIT_DATA;
 
        mmc->ops = &mmc_omap_ops;
        mmc->f_min = 400000;
index a379c45b985cebea031d2c33fb72210741813ecc..37b8740513f5fa3586738bdd1003042d5b2d61cc 100644 (file)
@@ -1922,7 +1922,7 @@ static int omap_hsmmc_probe(struct platform_device *pdev)
        mmc->max_req_size = mmc->max_blk_size * mmc->max_blk_count;
 
        mmc->caps |= MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED |
-                    MMC_CAP_WAIT_WHILE_BUSY | MMC_CAP_ERASE | MMC_CAP_CMD23;
+                    MMC_CAP_WAIT_WHILE_BUSY | MMC_CAP_CMD23;
 
        mmc->caps |= mmc_pdata(host)->caps;
        if (mmc->caps & MMC_CAP_8_BIT_DATA)
index 11087976ab19cf296053fc35205bfb3e69cece2a..5a71f6678fd3acccb952e79b26a7718113becba5 100644 (file)
@@ -1347,7 +1347,7 @@ static void realtek_init_host(struct realtek_pci_sdmmc *host)
        mmc->ocr_avail = MMC_VDD_32_33 | MMC_VDD_33_34 | MMC_VDD_165_195;
        mmc->caps = MMC_CAP_4_BIT_DATA | MMC_CAP_SD_HIGHSPEED |
                MMC_CAP_MMC_HIGHSPEED | MMC_CAP_BUS_WIDTH_TEST |
-               MMC_CAP_UHS_SDR12 | MMC_CAP_UHS_SDR25 | MMC_CAP_ERASE;
+               MMC_CAP_UHS_SDR12 | MMC_CAP_UHS_SDR25;
        mmc->caps2 = MMC_CAP2_NO_PRESCAN_POWERUP | MMC_CAP2_FULL_PWR_CYCLE;
        mmc->max_current_330 = 400;
        mmc->max_current_180 = 800;
index 81d0dfe553a824b4bcee77985920d48f5947dbf1..a7084c50ad65ff2d6ba24bc31e6da60000c5908c 100644 (file)
@@ -1314,7 +1314,7 @@ static void rtsx_usb_init_host(struct rtsx_usb_sdmmc *host)
        mmc->caps = MMC_CAP_4_BIT_DATA | MMC_CAP_SD_HIGHSPEED |
                MMC_CAP_MMC_HIGHSPEED | MMC_CAP_BUS_WIDTH_TEST |
                MMC_CAP_UHS_SDR12 | MMC_CAP_UHS_SDR25 | MMC_CAP_UHS_SDR50 |
-               MMC_CAP_ERASE | MMC_CAP_SYNC_RUNTIME_PM;
+               MMC_CAP_SYNC_RUNTIME_PM;
        mmc->caps2 = MMC_CAP2_NO_PRESCAN_POWERUP | MMC_CAP2_FULL_PWR_CYCLE |
                MMC_CAP2_NO_SDIO;
 
index 1bb6b679631836b0e6705a5d95fe1c744ebda9d5..95cc08c1fed953f06a8431ebce2f3ae5e9376b6e 100644 (file)
@@ -4331,7 +4331,7 @@ int sdhci_setup_host(struct sdhci_host *host)
            !host->ops->get_max_timeout_count)
                mmc->max_busy_timeout = 0;
 
-       mmc->caps |= MMC_CAP_SDIO_IRQ | MMC_CAP_ERASE | MMC_CAP_CMD23;
+       mmc->caps |= MMC_CAP_SDIO_IRQ | MMC_CAP_CMD23;
        mmc->caps2 |= MMC_CAP2_SDIO_IRQ_NOTHREAD;
 
        if (host->quirks & SDHCI_QUIRK_MULTIBLOCK_READ_ACMD12)
index 3bfbd89bd4ab5418e4c98d1b06a4fa2a03321c7d..5e95bbc516444677336a5d657f780bba12c38d08 100644 (file)
@@ -1394,7 +1394,7 @@ static int sunxi_mmc_probe(struct platform_device *pdev)
        mmc->f_min              =   400000;
        mmc->f_max              = 52000000;
        mmc->caps              |= MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED |
-                                 MMC_CAP_ERASE | MMC_CAP_SDIO_IRQ;
+                                 MMC_CAP_SDIO_IRQ;
 
        /*
         * Some H5 devices do not have signal traces precise enough to
index 9520bd94cf435335434e254d343c248d2e2cbae7..f31afd1c26718b786eee17fe4826fd943324bca7 100644 (file)
@@ -1128,7 +1128,7 @@ int tmio_mmc_host_probe(struct tmio_mmc_host *_host)
        if (ret == -EPROBE_DEFER)
                return ret;
 
-       mmc->caps |= MMC_CAP_ERASE | MMC_CAP_4_BIT_DATA | pdata->capabilities;
+       mmc->caps |= MMC_CAP_4_BIT_DATA | pdata->capabilities;
        mmc->caps2 |= pdata->capabilities2;
        mmc->max_segs = pdata->max_segs ? : 32;
        mmc->max_blk_size = TMIO_MAX_BLK_SIZE;
index c4b16bb5c1a4fbb568a129f222badc74122faa4f..0939f4a4c963b11a0ddd50d1d20f9682a3199147 100644 (file)
@@ -67,7 +67,6 @@ static void _gb_sdio_set_host_caps(struct gb_sdio_host *host, u32 r)
                ((r & GB_SDIO_CAP_8_BIT_DATA) ? MMC_CAP_8_BIT_DATA : 0) |
                ((r & GB_SDIO_CAP_MMC_HS) ? MMC_CAP_MMC_HIGHSPEED : 0) |
                ((r & GB_SDIO_CAP_SD_HS) ? MMC_CAP_SD_HIGHSPEED : 0) |
-               ((r & GB_SDIO_CAP_ERASE) ? MMC_CAP_ERASE : 0) |
                ((r & GB_SDIO_CAP_1_2V_DDR) ? MMC_CAP_1_2V_DDR : 0) |
                ((r & GB_SDIO_CAP_1_8V_DDR) ? MMC_CAP_1_8V_DDR : 0) |
                ((r & GB_SDIO_CAP_POWER_OFF_CARD) ? MMC_CAP_POWER_OFF_CARD : 0) |
index d4a50e5dc11107815f22cfdf06115269e7bd0cdd..7149bab555d7123d25754fc3e52e0c7bddf68191 100644 (file)
@@ -321,7 +321,6 @@ struct mmc_host {
 #define MMC_CAP_AGGRESSIVE_PM  (1 << 7)        /* Suspend (e)MMC/SD at idle  */
 #define MMC_CAP_NONREMOVABLE   (1 << 8)        /* Nonremovable e.g. eMMC */
 #define MMC_CAP_WAIT_WHILE_BUSY        (1 << 9)        /* Waits while card is busy */
-#define MMC_CAP_ERASE          (1 << 10)       /* Allow erase/trim commands */
 #define MMC_CAP_3_3V_DDR       (1 << 11)       /* Host supports eMMC DDR 3.3V */
 #define MMC_CAP_1_8V_DDR       (1 << 12)       /* Host supports eMMC DDR 1.8V */
 #define MMC_CAP_1_2V_DDR       (1 << 13)       /* Host supports eMMC DDR 1.2V */