mmc: proper debugging output in core
authorPierre Ossman <drzeus@drzeus.cx>
Tue, 24 Jul 2007 19:46:49 +0000 (21:46 +0200)
committerPierre Ossman <drzeus@drzeus.cx>
Thu, 26 Jul 2007 00:05:30 +0000 (02:05 +0200)
Make sure that the debugging output in the core is complete.
This should allow us to clean up all the extra debug output
that each and every other host driver seems to contain.

Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
drivers/mmc/core/core.c

index 3208890..d089684 100644 (file)
@@ -68,18 +68,35 @@ void mmc_request_done(struct mmc_host *host, struct mmc_request *mrq)
        struct mmc_command *cmd = mrq->cmd;
        int err = cmd->error;
 
-       pr_debug("%s: req done (CMD%u): %d/%d/%d: %08x %08x %08x %08x\n",
-                mmc_hostname(host), cmd->opcode, err,
-                mrq->data ? mrq->data->error : 0,
-                mrq->stop ? mrq->stop->error : 0,
-                cmd->resp[0], cmd->resp[1], cmd->resp[2], cmd->resp[3]);
-
        if (err && cmd->retries) {
+               pr_debug("%s: req failed (CMD%u): %d, retrying...\n",
+                       mmc_hostname(host), cmd->opcode, err);
+
                cmd->retries--;
                cmd->error = 0;
                host->ops->request(host, mrq);
-       } else if (mrq->done) {
-               mrq->done(mrq);
+       } else {
+               pr_debug("%s: req done (CMD%u): %d: %08x %08x %08x %08x\n",
+                       mmc_hostname(host), cmd->opcode, err,
+                       cmd->resp[0], cmd->resp[1],
+                       cmd->resp[2], cmd->resp[3]);
+
+               if (mrq->data) {
+                       pr_debug("%s:     %d bytes transferred: %d\n",
+                               mmc_hostname(host),
+                               mrq->data->bytes_xfered, mrq->data->error);
+               }
+
+               if (mrq->stop) {
+                       pr_debug("%s:     (CMD%u): %d: %08x %08x %08x %08x\n",
+                               mmc_hostname(host), mrq->stop->opcode,
+                               mrq->stop->error,
+                               mrq->stop->resp[0], mrq->stop->resp[1],
+                               mrq->stop->resp[2], mrq->stop->resp[3]);
+               }
+
+               if (mrq->done)
+                       mrq->done(mrq);
        }
 }
 
@@ -104,6 +121,21 @@ mmc_start_request(struct mmc_host *host, struct mmc_request *mrq)
                 mmc_hostname(host), mrq->cmd->opcode,
                 mrq->cmd->arg, mrq->cmd->flags);
 
+       if (mrq->data) {
+               pr_debug("%s:     blksz %d blocks %d flags %08x "
+                       "tsac %d ms nsac %d\n",
+                       mmc_hostname(host), mrq->data->blksz,
+                       mrq->data->blocks, mrq->data->flags,
+                       mrq->data->timeout_ns / 10000000,
+                       mrq->data->timeout_clks);
+       }
+
+       if (mrq->stop) {
+               pr_debug("%s:     CMD%u arg %08x flags %08x\n",
+                        mmc_hostname(host), mrq->stop->opcode,
+                        mrq->stop->arg, mrq->stop->flags);
+       }
+
        WARN_ON(!host->claimed);
 
        mrq->cmd->error = 0;