aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mmc
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/mmc')
-rw-r--r--drivers/mmc/card/block.c6
-rw-r--r--drivers/mmc/core/core.c3
2 files changed, 5 insertions, 4 deletions
diff --git a/drivers/mmc/card/block.c b/drivers/mmc/card/block.c
index 452782bffebc..ede41f05c392 100644
--- a/drivers/mmc/card/block.c
+++ b/drivers/mmc/card/block.c
@@ -2028,8 +2028,7 @@ static int mmc_blk_issue_rq(struct mmc_queue *mq, struct request *req)
2028 /* complete ongoing async transfer before issuing discard */ 2028 /* complete ongoing async transfer before issuing discard */
2029 if (card->host->areq) 2029 if (card->host->areq)
2030 mmc_blk_issue_rw_rq(mq, NULL); 2030 mmc_blk_issue_rw_rq(mq, NULL);
2031 if (req->cmd_flags & REQ_SECURE && 2031 if (req->cmd_flags & REQ_SECURE)
2032 !(card->quirks & MMC_QUIRK_SEC_ERASE_TRIM_BROKEN))
2033 ret = mmc_blk_issue_secdiscard_rq(mq, req); 2032 ret = mmc_blk_issue_secdiscard_rq(mq, req);
2034 else 2033 else
2035 ret = mmc_blk_issue_discard_rq(mq, req); 2034 ret = mmc_blk_issue_discard_rq(mq, req);
@@ -2432,6 +2431,8 @@ static int mmc_blk_probe(struct mmc_card *card)
2432 if (!(card->csd.cmdclass & CCC_BLOCK_READ)) 2431 if (!(card->csd.cmdclass & CCC_BLOCK_READ))
2433 return -ENODEV; 2432 return -ENODEV;
2434 2433
2434 mmc_fixup_device(card, blk_fixups);
2435
2435 md = mmc_blk_alloc(card); 2436 md = mmc_blk_alloc(card);
2436 if (IS_ERR(md)) 2437 if (IS_ERR(md))
2437 return PTR_ERR(md); 2438 return PTR_ERR(md);
@@ -2446,7 +2447,6 @@ static int mmc_blk_probe(struct mmc_card *card)
2446 goto out; 2447 goto out;
2447 2448
2448 mmc_set_drvdata(card, md); 2449 mmc_set_drvdata(card, md);
2449 mmc_fixup_device(card, blk_fixups);
2450 2450
2451 if (mmc_add_disk(md)) 2451 if (mmc_add_disk(md))
2452 goto out; 2452 goto out;
diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c
index 7dc0c85fdb60..d03a080fb9cd 100644
--- a/drivers/mmc/core/core.c
+++ b/drivers/mmc/core/core.c
@@ -2102,7 +2102,8 @@ EXPORT_SYMBOL(mmc_can_sanitize);
2102 2102
2103int mmc_can_secure_erase_trim(struct mmc_card *card) 2103int mmc_can_secure_erase_trim(struct mmc_card *card)
2104{ 2104{
2105 if (card->ext_csd.sec_feature_support & EXT_CSD_SEC_ER_EN) 2105 if ((card->ext_csd.sec_feature_support & EXT_CSD_SEC_ER_EN) &&
2106 !(card->quirks & MMC_QUIRK_SEC_ERASE_TRIM_BROKEN))
2106 return 1; 2107 return 1;
2107 return 0; 2108 return 0;
2108} 2109}