History

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.

Ulf Hansson committed 6 years ago

Commit 1be64c71 parent 94fe25816 files · +12 −25Browse files

Unified · Split

16 files
  1. drivers/mmc/host/bcm2835.c +1 −2
  2. drivers/mmc/host/cavium.c +1 −2
  3. drivers/mmc/host/dw_mmc.c +0 −6
  4. drivers/mmc/host/meson-mx-sdio.c +1 −1
  5. drivers/mmc/host/mtk-sd.c +1 −1
  6. drivers/mmc/host/mvsdio.c +0 −2
  7. drivers/mmc/host/mxs-mmc.c +1 −2
  8. drivers/mmc/host/omap.c +1 −1
  9. drivers/mmc/host/omap_hsmmc.c +1 −1
  10. drivers/mmc/host/rtsx_pci_sdmmc.c +1 −1
  11. drivers/mmc/host/rtsx_usb_sdmmc.c +1 −1
  12. drivers/mmc/host/sdhci.c +1 −1
  13. drivers/mmc/host/sunxi-mmc.c +1 −1
  14. drivers/mmc/host/tmio_mmc_core.c +1 −1
  15. drivers/staging/greybus/sdio.c +0 −1
  16. include/linux/mmc/host.h +0 −1
drivers/mmc/host/bcm2835.c+1−2
@@ -1280,8 +1280,7 @@ static int bcm2835_add_host(struct bcm2835_host *host) · 1279 unmodified lines
1280 1280
1281 /* host controller capabilities */1281 /* host controller capabilities */
1282 mmc->caps |= MMC_CAP_SD_HIGHSPEED | MMC_CAP_MMC_HIGHSPEED |1282 mmc->caps |= MMC_CAP_SD_HIGHSPEED | MMC_CAP_MMC_HIGHSPEED |
1283 MMC_CAP_NEEDS_POLL | MMC_CAP_HW_RESET | MMC_CAP_ERASE |1283 MMC_CAP_NEEDS_POLL | MMC_CAP_HW_RESET | MMC_CAP_CMD23;
1284 MMC_CAP_CMD23;
1285 1284
1286 spin_lock_init(&host->lock);1285 spin_lock_init(&host->lock);
1287 mutex_init(&host->mutex);1286 mutex_init(&host->mutex);
drivers/mmc/host/cavium.c+1−2
@@ -1038,8 +1038,7 @@ int cvm_mmc_of_slot_probe(struct device *dev, struct cvm_mmc_host *host) · 1037 unmodified lines
1038 * Disable bounce buffers for max_segs = 11038 * Disable bounce buffers for max_segs = 1
1039 */1039 */
1040 mmc->caps |= MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED |1040 mmc->caps |= MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED |
1041 MMC_CAP_ERASE | MMC_CAP_CMD23 | MMC_CAP_POWER_OFF_CARD |1041 MMC_CAP_CMD23 | MMC_CAP_POWER_OFF_CARD | MMC_CAP_3_3V_DDR;
1042 MMC_CAP_3_3V_DDR;
1043 1042
1044 if (host->use_sg)1043 if (host->use_sg)
1045 mmc->max_segs = 16;1044 mmc->max_segs = 16;
drivers/mmc/host/dw_mmc.c+0−6
@@ -2751,12 +2751,6 @@ static int dw_mci_init_slot_caps(struct dw_mci_slot *slot) · 2750 unmodified lines
2751 if (host->pdata->caps)2751 if (host->pdata->caps)
2752 mmc->caps = host->pdata->caps;2752 mmc->caps = host->pdata->caps;
2753 2753
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
2760 if (host->pdata->pm_caps)2754 if (host->pdata->pm_caps)
2761 mmc->pm_caps = host->pdata->pm_caps;2755 mmc->pm_caps = host->pdata->pm_caps;
2762 2756
drivers/mmc/host/meson-mx-sdio.c+1−1
@@ -564,7 +564,7 @@ static int meson_mx_mmc_add_host(struct meson_mx_mmc_host *host) · 563 unmodified lines
564 mmc->f_max = clk_round_rate(host->cfg_div_clk,564 mmc->f_max = clk_round_rate(host->cfg_div_clk,
565 clk_get_rate(host->parent_clk));565 clk_get_rate(host->parent_clk));
566 566
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;
568 mmc->ops = &meson_mx_mmc_ops;568 mmc->ops = &meson_mx_mmc_ops;
569 569
570 ret = mmc_of_parse(mmc);570 ret = mmc_of_parse(mmc);
drivers/mmc/host/mtk-sd.c+1−1
@@ -2326,7 +2326,7 @@ static int msdc_drv_probe(struct platform_device *pdev) · 2325 unmodified lines
2326 if (mmc->caps & MMC_CAP_SDIO_IRQ)2326 if (mmc->caps & MMC_CAP_SDIO_IRQ)
2327 mmc->caps2 |= MMC_CAP2_SDIO_IRQ_NOTHREAD;2327 mmc->caps2 |= MMC_CAP2_SDIO_IRQ_NOTHREAD;
2328 2328
2329 mmc->caps |= MMC_CAP_ERASE | MMC_CAP_CMD23;2329 mmc->caps |= MMC_CAP_CMD23;
2330 /* MMC core transfer sizes tunable parameters */2330 /* MMC core transfer sizes tunable parameters */
2331 mmc->max_segs = MAX_BD_NUM;2331 mmc->max_segs = MAX_BD_NUM;
2332 if (host->dev_comp->support_64g)2332 if (host->dev_comp->support_64g)
drivers/mmc/host/mvsdio.c+0−2
@@ -752,8 +752,6 @@ static int mvsd_probe(struct platform_device *pdev) · 751 unmodified lines
752 if (maxfreq)752 if (maxfreq)
753 mmc->f_max = maxfreq;753 mmc->f_max = maxfreq;
754 754
755 mmc->caps |= MMC_CAP_ERASE;
756
757 spin_lock_init(&host->lock);755 spin_lock_init(&host->lock);
758 756
759 host->base = devm_platform_ioremap_resource(pdev, 0);757 host->base = devm_platform_ioremap_resource(pdev, 0);
drivers/mmc/host/mxs-mmc.c+1−2
@@ -634,8 +634,7 @@ static int mxs_mmc_probe(struct platform_device *pdev) · 633 unmodified lines
634 /* set mmc core parameters */634 /* set mmc core parameters */
635 mmc->ops = &mxs_mmc_ops;635 mmc->ops = &mxs_mmc_ops;
636 mmc->caps = MMC_CAP_SD_HIGHSPEED | MMC_CAP_MMC_HIGHSPEED |636 mmc->caps = MMC_CAP_SD_HIGHSPEED | MMC_CAP_MMC_HIGHSPEED |
637 MMC_CAP_SDIO_IRQ | MMC_CAP_NEEDS_POLL | MMC_CAP_CMD23 |637 MMC_CAP_SDIO_IRQ | MMC_CAP_NEEDS_POLL | MMC_CAP_CMD23;
638 MMC_CAP_ERASE;
639 638
640 host->broken_cd = of_property_read_bool(np, "broken-cd");639 host->broken_cd = of_property_read_bool(np, "broken-cd");
641 640
drivers/mmc/host/omap.c+1−1
@@ -1244,7 +1244,7 @@ static int mmc_omap_new_slot(struct mmc_omap_host *host, int id) · 1243 unmodified lines
1244 1244
1245 mmc->caps = 0;1245 mmc->caps = 0;
1246 if (host->pdata->slots[id].wires >= 4)1246 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;
1248 1248
1249 mmc->ops = &mmc_omap_ops;1249 mmc->ops = &mmc_omap_ops;
1250 mmc->f_min = 400000;1250 mmc->f_min = 400000;
drivers/mmc/host/omap_hsmmc.c+1−1
@@ -1922,7 +1922,7 @@ static int omap_hsmmc_probe(struct platform_device *pdev) · 1921 unmodified lines
1922 mmc->max_req_size = mmc->max_blk_size * mmc->max_blk_count;1922 mmc->max_req_size = mmc->max_blk_size * mmc->max_blk_count;
1923 1923
1924 mmc->caps |= MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED |1924 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;
1926 1926
1927 mmc->caps |= mmc_pdata(host)->caps;1927 mmc->caps |= mmc_pdata(host)->caps;
1928 if (mmc->caps & MMC_CAP_8_BIT_DATA)1928 if (mmc->caps & MMC_CAP_8_BIT_DATA)
drivers/mmc/host/rtsx_pci_sdmmc.c+1−1
@@ -1347,7 +1347,7 @@ static void realtek_init_host(struct realtek_pci_sdmmc *host) · 1346 unmodified lines
1347 mmc->ocr_avail = MMC_VDD_32_33 | MMC_VDD_33_34 | MMC_VDD_165_195;1347 mmc->ocr_avail = MMC_VDD_32_33 | MMC_VDD_33_34 | MMC_VDD_165_195;
1348 mmc->caps = MMC_CAP_4_BIT_DATA | MMC_CAP_SD_HIGHSPEED |1348 mmc->caps = MMC_CAP_4_BIT_DATA | MMC_CAP_SD_HIGHSPEED |
1349 MMC_CAP_MMC_HIGHSPEED | MMC_CAP_BUS_WIDTH_TEST |1349 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;
1351 mmc->caps2 = MMC_CAP2_NO_PRESCAN_POWERUP | MMC_CAP2_FULL_PWR_CYCLE;1351 mmc->caps2 = MMC_CAP2_NO_PRESCAN_POWERUP | MMC_CAP2_FULL_PWR_CYCLE;
1352 mmc->max_current_330 = 400;1352 mmc->max_current_330 = 400;
1353 mmc->max_current_180 = 800;1353 mmc->max_current_180 = 800;
drivers/mmc/host/rtsx_usb_sdmmc.c+1−1
@@ -1314,7 +1314,7 @@ static void rtsx_usb_init_host(struct rtsx_usb_sdmmc *host) · 1313 unmodified lines
1314 mmc->caps = MMC_CAP_4_BIT_DATA | MMC_CAP_SD_HIGHSPEED |1314 mmc->caps = MMC_CAP_4_BIT_DATA | MMC_CAP_SD_HIGHSPEED |
1315 MMC_CAP_MMC_HIGHSPEED | MMC_CAP_BUS_WIDTH_TEST |1315 MMC_CAP_MMC_HIGHSPEED | MMC_CAP_BUS_WIDTH_TEST |
1316 MMC_CAP_UHS_SDR12 | MMC_CAP_UHS_SDR25 | MMC_CAP_UHS_SDR50 |1316 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;
1318 mmc->caps2 = MMC_CAP2_NO_PRESCAN_POWERUP | MMC_CAP2_FULL_PWR_CYCLE |1318 mmc->caps2 = MMC_CAP2_NO_PRESCAN_POWERUP | MMC_CAP2_FULL_PWR_CYCLE |
1319 MMC_CAP2_NO_SDIO;1319 MMC_CAP2_NO_SDIO;
1320 1320
drivers/mmc/host/sdhci.c+1−1
@@ -4331,7 +4331,7 @@ int sdhci_setup_host(struct sdhci_host *host) · 4330 unmodified lines
4331 !host->ops->get_max_timeout_count)4331 !host->ops->get_max_timeout_count)
4332 mmc->max_busy_timeout = 0;4332 mmc->max_busy_timeout = 0;
4333 4333
4334 mmc->caps |= MMC_CAP_SDIO_IRQ | MMC_CAP_ERASE | MMC_CAP_CMD23;4334 mmc->caps |= MMC_CAP_SDIO_IRQ | MMC_CAP_CMD23;
4335 mmc->caps2 |= MMC_CAP2_SDIO_IRQ_NOTHREAD;4335 mmc->caps2 |= MMC_CAP2_SDIO_IRQ_NOTHREAD;
4336 4336
4337 if (host->quirks & SDHCI_QUIRK_MULTIBLOCK_READ_ACMD12)4337 if (host->quirks & SDHCI_QUIRK_MULTIBLOCK_READ_ACMD12)
drivers/mmc/host/sunxi-mmc.c+1−1
@@ -1394,7 +1394,7 @@ static int sunxi_mmc_probe(struct platform_device *pdev) · 1393 unmodified lines
1394 mmc->f_min = 400000;1394 mmc->f_min = 400000;
1395 mmc->f_max = 52000000;1395 mmc->f_max = 52000000;
1396 mmc->caps |= MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED |1396 mmc->caps |= MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED |
1397 MMC_CAP_ERASE | MMC_CAP_SDIO_IRQ;1397 MMC_CAP_SDIO_IRQ;
1398 1398
1399 /*1399 /*
1400 * Some H5 devices do not have signal traces precise enough to1400 * Some H5 devices do not have signal traces precise enough to
drivers/mmc/host/tmio_mmc_core.c+1−1
@@ -1128,7 +1128,7 @@ int tmio_mmc_host_probe(struct tmio_mmc_host *_host) · 1127 unmodified lines
1128 if (ret == -EPROBE_DEFER)1128 if (ret == -EPROBE_DEFER)
1129 return ret;1129 return ret;
1130 1130
1131 mmc->caps |= MMC_CAP_ERASE | MMC_CAP_4_BIT_DATA | pdata->capabilities;1131 mmc->caps |= MMC_CAP_4_BIT_DATA | pdata->capabilities;
1132 mmc->caps2 |= pdata->capabilities2;1132 mmc->caps2 |= pdata->capabilities2;
1133 mmc->max_segs = pdata->max_segs ? : 32;1133 mmc->max_segs = pdata->max_segs ? : 32;
1134 mmc->max_blk_size = TMIO_MAX_BLK_SIZE;1134 mmc->max_blk_size = TMIO_MAX_BLK_SIZE;
drivers/staging/greybus/sdio.c+0−1
@@ -67,7 +67,6 @@ static void _gb_sdio_set_host_caps(struct gb_sdio_host *host, u32 r) · 66 unmodified lines
67 ((r & GB_SDIO_CAP_8_BIT_DATA) ? MMC_CAP_8_BIT_DATA : 0) |67 ((r & GB_SDIO_CAP_8_BIT_DATA) ? MMC_CAP_8_BIT_DATA : 0) |
68 ((r & GB_SDIO_CAP_MMC_HS) ? MMC_CAP_MMC_HIGHSPEED : 0) |68 ((r & GB_SDIO_CAP_MMC_HS) ? MMC_CAP_MMC_HIGHSPEED : 0) |
69 ((r & GB_SDIO_CAP_SD_HS) ? MMC_CAP_SD_HIGHSPEED : 0) |69 ((r & GB_SDIO_CAP_SD_HS) ? MMC_CAP_SD_HIGHSPEED : 0) |
70 ((r & GB_SDIO_CAP_ERASE) ? MMC_CAP_ERASE : 0) |
71 ((r & GB_SDIO_CAP_1_2V_DDR) ? MMC_CAP_1_2V_DDR : 0) |70 ((r & GB_SDIO_CAP_1_2V_DDR) ? MMC_CAP_1_2V_DDR : 0) |
72 ((r & GB_SDIO_CAP_1_8V_DDR) ? MMC_CAP_1_8V_DDR : 0) |71 ((r & GB_SDIO_CAP_1_8V_DDR) ? MMC_CAP_1_8V_DDR : 0) |
73 ((r & GB_SDIO_CAP_POWER_OFF_CARD) ? MMC_CAP_POWER_OFF_CARD : 0) |72 ((r & GB_SDIO_CAP_POWER_OFF_CARD) ? MMC_CAP_POWER_OFF_CARD : 0) |
include/linux/mmc/host.h+0−1
@@ -321,7 +321,6 @@ struct mmc_host { · 320 unmodified lines
321#define MMC_CAP_AGGRESSIVE_PM (1 << 7) /* Suspend (e)MMC/SD at idle */321#define MMC_CAP_AGGRESSIVE_PM (1 << 7) /* Suspend (e)MMC/SD at idle */
322#define MMC_CAP_NONREMOVABLE (1 << 8) /* Nonremovable e.g. eMMC */322#define MMC_CAP_NONREMOVABLE (1 << 8) /* Nonremovable e.g. eMMC */
323#define MMC_CAP_WAIT_WHILE_BUSY (1 << 9) /* Waits while card is busy */323#define MMC_CAP_WAIT_WHILE_BUSY (1 << 9) /* Waits while card is busy */
324#define MMC_CAP_ERASE (1 << 10) /* Allow erase/trim commands */
325#define MMC_CAP_3_3V_DDR (1 << 11) /* Host supports eMMC DDR 3.3V */324#define MMC_CAP_3_3V_DDR (1 << 11) /* Host supports eMMC DDR 3.3V */
326#define MMC_CAP_1_8V_DDR (1 << 12) /* Host supports eMMC DDR 1.8V */325#define MMC_CAP_1_8V_DDR (1 << 12) /* Host supports eMMC DDR 1.8V */
327#define MMC_CAP_1_2V_DDR (1 << 13) /* Host supports eMMC DDR 1.2V */326#define MMC_CAP_1_2V_DDR (1 << 13) /* Host supports eMMC DDR 1.2V */