Skip to content

Commit 1be64c7

Browse files
committed
mmc: host: Drop redundant MMC_CAP_ERASE
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 <[email protected]> Reviewed-by: Rui Miguel Silva <[email protected]> Link: https://lore.kernel.org/r/[email protected] Reviewed-by: Linus Walleij <[email protected]>
1 parent 94fe258 commit 1be64c7

File tree

16 files changed

+12
-25
lines changed

16 files changed

+12
-25
lines changed

drivers/mmc/host/bcm2835.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1280,8 +1280,7 @@ static int bcm2835_add_host(struct bcm2835_host *host)
12801280

12811281
/* host controller capabilities */
12821282
mmc->caps |= MMC_CAP_SD_HIGHSPEED | MMC_CAP_MMC_HIGHSPEED |
1283-
MMC_CAP_NEEDS_POLL | MMC_CAP_HW_RESET | MMC_CAP_ERASE |
1284-
MMC_CAP_CMD23;
1283+
MMC_CAP_NEEDS_POLL | MMC_CAP_HW_RESET | MMC_CAP_CMD23;
12851284

12861285
spin_lock_init(&host->lock);
12871286
mutex_init(&host->mutex);

drivers/mmc/host/cavium.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1038,8 +1038,7 @@ int cvm_mmc_of_slot_probe(struct device *dev, struct cvm_mmc_host *host)
10381038
* Disable bounce buffers for max_segs = 1
10391039
*/
10401040
mmc->caps |= MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED |
1041-
MMC_CAP_ERASE | MMC_CAP_CMD23 | MMC_CAP_POWER_OFF_CARD |
1042-
MMC_CAP_3_3V_DDR;
1041+
MMC_CAP_CMD23 | MMC_CAP_POWER_OFF_CARD | MMC_CAP_3_3V_DDR;
10431042

10441043
if (host->use_sg)
10451044
mmc->max_segs = 16;

drivers/mmc/host/dw_mmc.c

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2751,12 +2751,6 @@ static int dw_mci_init_slot_caps(struct dw_mci_slot *slot)
27512751
if (host->pdata->caps)
27522752
mmc->caps = host->pdata->caps;
27532753

2754-
/*
2755-
* Support MMC_CAP_ERASE by default.
2756-
* It needs to use trim/discard/erase commands.
2757-
*/
2758-
mmc->caps |= MMC_CAP_ERASE;
2759-
27602754
if (host->pdata->pm_caps)
27612755
mmc->pm_caps = host->pdata->pm_caps;
27622756

drivers/mmc/host/meson-mx-sdio.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -564,7 +564,7 @@ static int meson_mx_mmc_add_host(struct meson_mx_mmc_host *host)
564564
mmc->f_max = clk_round_rate(host->cfg_div_clk,
565565
clk_get_rate(host->parent_clk));
566566

567-
mmc->caps |= MMC_CAP_ERASE | MMC_CAP_CMD23 | MMC_CAP_WAIT_WHILE_BUSY;
567+
mmc->caps |= MMC_CAP_CMD23 | MMC_CAP_WAIT_WHILE_BUSY;
568568
mmc->ops = &meson_mx_mmc_ops;
569569

570570
ret = mmc_of_parse(mmc);

drivers/mmc/host/mtk-sd.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2326,7 +2326,7 @@ static int msdc_drv_probe(struct platform_device *pdev)
23262326
if (mmc->caps & MMC_CAP_SDIO_IRQ)
23272327
mmc->caps2 |= MMC_CAP2_SDIO_IRQ_NOTHREAD;
23282328

2329-
mmc->caps |= MMC_CAP_ERASE | MMC_CAP_CMD23;
2329+
mmc->caps |= MMC_CAP_CMD23;
23302330
/* MMC core transfer sizes tunable parameters */
23312331
mmc->max_segs = MAX_BD_NUM;
23322332
if (host->dev_comp->support_64g)

drivers/mmc/host/mvsdio.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -752,8 +752,6 @@ static int mvsd_probe(struct platform_device *pdev)
752752
if (maxfreq)
753753
mmc->f_max = maxfreq;
754754

755-
mmc->caps |= MMC_CAP_ERASE;
756-
757755
spin_lock_init(&host->lock);
758756

759757
host->base = devm_platform_ioremap_resource(pdev, 0);

drivers/mmc/host/mxs-mmc.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -634,8 +634,7 @@ static int mxs_mmc_probe(struct platform_device *pdev)
634634
/* set mmc core parameters */
635635
mmc->ops = &mxs_mmc_ops;
636636
mmc->caps = MMC_CAP_SD_HIGHSPEED | MMC_CAP_MMC_HIGHSPEED |
637-
MMC_CAP_SDIO_IRQ | MMC_CAP_NEEDS_POLL | MMC_CAP_CMD23 |
638-
MMC_CAP_ERASE;
637+
MMC_CAP_SDIO_IRQ | MMC_CAP_NEEDS_POLL | MMC_CAP_CMD23;
639638

640639
host->broken_cd = of_property_read_bool(np, "broken-cd");
641640

drivers/mmc/host/omap.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1244,7 +1244,7 @@ static int mmc_omap_new_slot(struct mmc_omap_host *host, int id)
12441244

12451245
mmc->caps = 0;
12461246
if (host->pdata->slots[id].wires >= 4)
1247-
mmc->caps |= MMC_CAP_4_BIT_DATA | MMC_CAP_ERASE;
1247+
mmc->caps |= MMC_CAP_4_BIT_DATA;
12481248

12491249
mmc->ops = &mmc_omap_ops;
12501250
mmc->f_min = 400000;

drivers/mmc/host/omap_hsmmc.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1922,7 +1922,7 @@ static int omap_hsmmc_probe(struct platform_device *pdev)
19221922
mmc->max_req_size = mmc->max_blk_size * mmc->max_blk_count;
19231923

19241924
mmc->caps |= MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED |
1925-
MMC_CAP_WAIT_WHILE_BUSY | MMC_CAP_ERASE | MMC_CAP_CMD23;
1925+
MMC_CAP_WAIT_WHILE_BUSY | MMC_CAP_CMD23;
19261926

19271927
mmc->caps |= mmc_pdata(host)->caps;
19281928
if (mmc->caps & MMC_CAP_8_BIT_DATA)

drivers/mmc/host/rtsx_pci_sdmmc.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1347,7 +1347,7 @@ static void realtek_init_host(struct realtek_pci_sdmmc *host)
13471347
mmc->ocr_avail = MMC_VDD_32_33 | MMC_VDD_33_34 | MMC_VDD_165_195;
13481348
mmc->caps = MMC_CAP_4_BIT_DATA | MMC_CAP_SD_HIGHSPEED |
13491349
MMC_CAP_MMC_HIGHSPEED | MMC_CAP_BUS_WIDTH_TEST |
1350-
MMC_CAP_UHS_SDR12 | MMC_CAP_UHS_SDR25 | MMC_CAP_ERASE;
1350+
MMC_CAP_UHS_SDR12 | MMC_CAP_UHS_SDR25;
13511351
mmc->caps2 = MMC_CAP2_NO_PRESCAN_POWERUP | MMC_CAP2_FULL_PWR_CYCLE;
13521352
mmc->max_current_330 = 400;
13531353
mmc->max_current_180 = 800;

drivers/mmc/host/rtsx_usb_sdmmc.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1314,7 +1314,7 @@ static void rtsx_usb_init_host(struct rtsx_usb_sdmmc *host)
13141314
mmc->caps = MMC_CAP_4_BIT_DATA | MMC_CAP_SD_HIGHSPEED |
13151315
MMC_CAP_MMC_HIGHSPEED | MMC_CAP_BUS_WIDTH_TEST |
13161316
MMC_CAP_UHS_SDR12 | MMC_CAP_UHS_SDR25 | MMC_CAP_UHS_SDR50 |
1317-
MMC_CAP_ERASE | MMC_CAP_SYNC_RUNTIME_PM;
1317+
MMC_CAP_SYNC_RUNTIME_PM;
13181318
mmc->caps2 = MMC_CAP2_NO_PRESCAN_POWERUP | MMC_CAP2_FULL_PWR_CYCLE |
13191319
MMC_CAP2_NO_SDIO;
13201320

drivers/mmc/host/sdhci.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4331,7 +4331,7 @@ int sdhci_setup_host(struct sdhci_host *host)
43314331
!host->ops->get_max_timeout_count)
43324332
mmc->max_busy_timeout = 0;
43334333

4334-
mmc->caps |= MMC_CAP_SDIO_IRQ | MMC_CAP_ERASE | MMC_CAP_CMD23;
4334+
mmc->caps |= MMC_CAP_SDIO_IRQ | MMC_CAP_CMD23;
43354335
mmc->caps2 |= MMC_CAP2_SDIO_IRQ_NOTHREAD;
43364336

43374337
if (host->quirks & SDHCI_QUIRK_MULTIBLOCK_READ_ACMD12)

drivers/mmc/host/sunxi-mmc.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1394,7 +1394,7 @@ static int sunxi_mmc_probe(struct platform_device *pdev)
13941394
mmc->f_min = 400000;
13951395
mmc->f_max = 52000000;
13961396
mmc->caps |= MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED |
1397-
MMC_CAP_ERASE | MMC_CAP_SDIO_IRQ;
1397+
MMC_CAP_SDIO_IRQ;
13981398

13991399
/*
14001400
* Some H5 devices do not have signal traces precise enough to

drivers/mmc/host/tmio_mmc_core.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1128,7 +1128,7 @@ int tmio_mmc_host_probe(struct tmio_mmc_host *_host)
11281128
if (ret == -EPROBE_DEFER)
11291129
return ret;
11301130

1131-
mmc->caps |= MMC_CAP_ERASE | MMC_CAP_4_BIT_DATA | pdata->capabilities;
1131+
mmc->caps |= MMC_CAP_4_BIT_DATA | pdata->capabilities;
11321132
mmc->caps2 |= pdata->capabilities2;
11331133
mmc->max_segs = pdata->max_segs ? : 32;
11341134
mmc->max_blk_size = TMIO_MAX_BLK_SIZE;

drivers/staging/greybus/sdio.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,6 @@ static void _gb_sdio_set_host_caps(struct gb_sdio_host *host, u32 r)
6767
((r & GB_SDIO_CAP_8_BIT_DATA) ? MMC_CAP_8_BIT_DATA : 0) |
6868
((r & GB_SDIO_CAP_MMC_HS) ? MMC_CAP_MMC_HIGHSPEED : 0) |
6969
((r & GB_SDIO_CAP_SD_HS) ? MMC_CAP_SD_HIGHSPEED : 0) |
70-
((r & GB_SDIO_CAP_ERASE) ? MMC_CAP_ERASE : 0) |
7170
((r & GB_SDIO_CAP_1_2V_DDR) ? MMC_CAP_1_2V_DDR : 0) |
7271
((r & GB_SDIO_CAP_1_8V_DDR) ? MMC_CAP_1_8V_DDR : 0) |
7372
((r & GB_SDIO_CAP_POWER_OFF_CARD) ? MMC_CAP_POWER_OFF_CARD : 0) |

include/linux/mmc/host.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -321,7 +321,6 @@ struct mmc_host {
321321
#define MMC_CAP_AGGRESSIVE_PM (1 << 7) /* Suspend (e)MMC/SD at idle */
322322
#define MMC_CAP_NONREMOVABLE (1 << 8) /* Nonremovable e.g. eMMC */
323323
#define MMC_CAP_WAIT_WHILE_BUSY (1 << 9) /* Waits while card is busy */
324-
#define MMC_CAP_ERASE (1 << 10) /* Allow erase/trim commands */
325324
#define MMC_CAP_3_3V_DDR (1 << 11) /* Host supports eMMC DDR 3.3V */
326325
#define MMC_CAP_1_8V_DDR (1 << 12) /* Host supports eMMC DDR 1.8V */
327326
#define MMC_CAP_1_2V_DDR (1 << 13) /* Host supports eMMC DDR 1.2V */

0 commit comments

Comments
 (0)