* [RFC PATCH 0/1] dw_mmc: checking card busy with Status register
@ 2011-03-25 6:00 Jaehoon Chung
2011-03-25 10:58 ` Will Newton
0 siblings, 1 reply; 2+ messages in thread
From: Jaehoon Chung @ 2011-03-25 6:00 UTC (permalink / raw)
To: linux-mmc@vger.kernel.org; +Cc: will.newton, Chris Ball, Kyungmin Park
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 <jh80.chung@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
---
drivers/mmc/host/dw_mmc.c | 17 +++++++++++++++++
1 files changed, 17 insertions(+), 0 deletions(-)
diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c
index 87e1f57..882d004 100644
--- a/drivers/mmc/host/dw_mmc.c
+++ b/drivers/mmc/host/dw_mmc.c
@@ -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);
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [RFC PATCH 0/1] dw_mmc: checking card busy with Status register
2011-03-25 6:00 [RFC PATCH 0/1] dw_mmc: checking card busy with Status register Jaehoon Chung
@ 2011-03-25 10:58 ` Will Newton
0 siblings, 0 replies; 2+ messages in thread
From: Will Newton @ 2011-03-25 10:58 UTC (permalink / raw)
To: Jaehoon Chung
Cc: linux-mmc@vger.kernel.org, will.newton, Chris Ball, Kyungmin Park
On Fri, Mar 25, 2011 at 6:00 AM, Jaehoon Chung <jh80.chung@samsung.com> wrote:
> 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.
Do you have any numbers to report how this patch altered CPU usage or
card throughput for you? e.g. oprofile output or dd performance
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2011-03-25 10:58 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-03-25 6:00 [RFC PATCH 0/1] dw_mmc: checking card busy with Status register Jaehoon Chung
2011-03-25 10:58 ` Will Newton
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox