diff options
Diffstat (limited to 'drivers/mmc/core/core.c')
-rw-r--r-- | drivers/mmc/core/core.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c index b45aaa904107..681b089f669a 100644 --- a/drivers/mmc/core/core.c +++ b/drivers/mmc/core/core.c | |||
@@ -1847,7 +1847,7 @@ static unsigned int mmc_align_erase_size(struct mmc_card *card, | |||
1847 | * @card: card to erase | 1847 | * @card: card to erase |
1848 | * @from: first sector to erase | 1848 | * @from: first sector to erase |
1849 | * @nr: number of sectors to erase | 1849 | * @nr: number of sectors to erase |
1850 | * @arg: erase command argument (SD supports only %SD_ERASE_ARG) | 1850 | * @arg: erase command argument |
1851 | * | 1851 | * |
1852 | * Caller must claim host before calling this function. | 1852 | * Caller must claim host before calling this function. |
1853 | */ | 1853 | */ |
@@ -1864,14 +1864,14 @@ int mmc_erase(struct mmc_card *card, unsigned int from, unsigned int nr, | |||
1864 | if (!card->erase_size) | 1864 | if (!card->erase_size) |
1865 | return -EOPNOTSUPP; | 1865 | return -EOPNOTSUPP; |
1866 | 1866 | ||
1867 | if (mmc_card_sd(card) && arg != SD_ERASE_ARG) | 1867 | if (mmc_card_sd(card) && arg != SD_ERASE_ARG && arg != SD_DISCARD_ARG) |
1868 | return -EOPNOTSUPP; | 1868 | return -EOPNOTSUPP; |
1869 | 1869 | ||
1870 | if ((arg & MMC_SECURE_ARGS) && | 1870 | if (mmc_card_mmc(card) && (arg & MMC_SECURE_ARGS) && |
1871 | !(card->ext_csd.sec_feature_support & EXT_CSD_SEC_ER_EN)) | 1871 | !(card->ext_csd.sec_feature_support & EXT_CSD_SEC_ER_EN)) |
1872 | return -EOPNOTSUPP; | 1872 | return -EOPNOTSUPP; |
1873 | 1873 | ||
1874 | if ((arg & MMC_TRIM_ARGS) && | 1874 | if (mmc_card_mmc(card) && (arg & MMC_TRIM_ARGS) && |
1875 | !(card->ext_csd.sec_feature_support & EXT_CSD_SEC_GB_CL_EN)) | 1875 | !(card->ext_csd.sec_feature_support & EXT_CSD_SEC_GB_CL_EN)) |
1876 | return -EOPNOTSUPP; | 1876 | return -EOPNOTSUPP; |
1877 | 1877 | ||