RFC dw_mmc: checking card busy with Status register
Get series with b4
b4 am [email protected]Versions newest first
- v1 RFC Latest0 of 1 patch 1 replyIn review
Patches in v1 No applies recorded yet
The patch the cover letter announces is not in this archive.
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.
Cover letter [RFC PATCH 0/1] dw_mmc: checking card busy with Status register
This RFC patch is applied checking card busy with status register.
In Status register, bit[9] indicate the card busy or not.
So, if we use this bit in status register, we can check the card busy or not.
Maybe, didn't increased the performance, but i think this approach is decreased the CPU usage.
Anyone, let me know how think about this patch.
Signed-off-by Jaehoon Chung <[email protected]>
Signed-off-by Kyungmin Park <[email protected]>
--- drivers/mmc/host/dw_mmc.c | 17 +++++++++++++++++ 1 files changed, 17 insertions(+), 0 deletions(-)
drivers/mmc/host/dw_mmc.c +17 -0
@@ -647,9 +647,26 @@ static void dw_mci_request(struct mmc_host *mmc, struct mmc_request *mrq) {struct dw_mci_slot *slot =mmc_priv (mmc);struct dw_mci *host = slot->host; +unsigned int timeout =0x100 ;WARN_ON (slot->mrq); +while (timeout) { +if ((mrq->data && (mrq->data->flags ==MMC_DATA_READ )) || + !(mci_readl (host,STATUS ) & (1 <<9 ))) +break ; + +if (timeout ==0 ) { +dev_err (&host->pdev->dev,"Card is busy!!\n" ); +return ; + } + +if (!need_resched ()) +usleep_range (10 ,50 ); + + timeout--; + } +if (!test_bit (DW_MMC_CARD_PRESENT , &slot->flags)) { mrq->cmd->error = -ENOMEDIUM ;mmc_request_done (mmc, mrq);