mmc: block: Use generic_cmd6_time when modifying INAND_CMD38_ARG_EXT_CSD

The INAND_CMD38_ARG_EXT_CSD is a vendor specific EXT_CSD register, which is
used to prepare an erase/trim operation. However, it doesn't make sense to
use a timeout of 10 minutes while updating the register, which becomes the
case when the timeout_ms argument for mmc_switch() is set to zero.

Instead, let's use the generic_cmd6_time, as that seems like a reasonable
timeout to use for these cases.

Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Link: https://lore.kernel.org/r/20200122142747.5690-3-ulf.hansson@linaro.org
This commit is contained in:
Ulf Hansson 2020-01-22 15:27:46 +01:00
parent 24ed3bd01d
commit ad91619aa9
1 changed files with 3 additions and 3 deletions

View File

@ -1107,7 +1107,7 @@ static void mmc_blk_issue_discard_rq(struct mmc_queue *mq, struct request *req)
card->erase_arg == MMC_TRIM_ARG ? card->erase_arg == MMC_TRIM_ARG ?
INAND_CMD38_ARG_TRIM : INAND_CMD38_ARG_TRIM :
INAND_CMD38_ARG_ERASE, INAND_CMD38_ARG_ERASE,
0); card->ext_csd.generic_cmd6_time);
} }
if (!err) if (!err)
err = mmc_erase(card, from, nr, card->erase_arg); err = mmc_erase(card, from, nr, card->erase_arg);
@ -1149,7 +1149,7 @@ static void mmc_blk_issue_secdiscard_rq(struct mmc_queue *mq,
arg == MMC_SECURE_TRIM1_ARG ? arg == MMC_SECURE_TRIM1_ARG ?
INAND_CMD38_ARG_SECTRIM1 : INAND_CMD38_ARG_SECTRIM1 :
INAND_CMD38_ARG_SECERASE, INAND_CMD38_ARG_SECERASE,
0); card->ext_csd.generic_cmd6_time);
if (err) if (err)
goto out_retry; goto out_retry;
} }
@ -1167,7 +1167,7 @@ static void mmc_blk_issue_secdiscard_rq(struct mmc_queue *mq,
err = mmc_switch(card, EXT_CSD_CMD_SET_NORMAL, err = mmc_switch(card, EXT_CSD_CMD_SET_NORMAL,
INAND_CMD38_ARG_EXT_CSD, INAND_CMD38_ARG_EXT_CSD,
INAND_CMD38_ARG_SECTRIM2, INAND_CMD38_ARG_SECTRIM2,
0); card->ext_csd.generic_cmd6_time);
if (err) if (err)
goto out_retry; goto out_retry;
} }