linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* mmc_test with mmc_spi
@ 2008-07-24 13:23 Thomas Kunze
  2008-07-26 23:34 ` Pierre Ossman
  0 siblings, 1 reply; 2+ messages in thread
From: Thomas Kunze @ 2008-07-24 13:23 UTC (permalink / raw)
  To: Pierre Ossman; +Cc: Linux Kernel list, thommycheck, david-b

Hi Pierre,

I wrote a small hack to be able to use the mmc_test driver on mmc-spi host. You or somebody else might find it useful.
All test but "Correct xfer_size at write (start failure)", "Correct xfer_size at read (start failure)" and "Correct xfer_size 
at write (midway failure)" passed.
I'm not sure what these tests try to do and how they do it, so I don't know if my modifcations of mmc_test, my spi driver or the 
mmc-spi driver are responsible.

It would be great if you could provide some insight.

Regards,
Thomas

--
diff --git a/drivers/mmc/card/mmc_test.c b/drivers/mmc/card/mmc_test.c
index d6b9b48..2366150 100644
--- a/drivers/mmc/card/mmc_test.c
+++ b/drivers/mmc/card/mmc_test.c
@@ -44,7 +44,7 @@ static int mmc_test_set_blksize(struct mmc_test_card *test, unsigned size)
 
 	cmd.opcode = MMC_SET_BLOCKLEN;
 	cmd.arg = size;
-	cmd.flags = MMC_RSP_R1 | MMC_CMD_AC;
+	cmd.flags = MMC_RSP_SPI_R1;
 	ret = mmc_wait_for_cmd(test->card->host, &cmd, 0);
 	if (ret)
 		return ret;
@@ -70,14 +70,14 @@ static void mmc_test_prepare_mrq(struct mmc_test_card *test,
 	}
 
 	mrq->cmd->arg = dev_addr;
-	mrq->cmd->flags = MMC_RSP_R1 | MMC_CMD_ADTC;
+	mrq->cmd->flags = MMC_RSP_SPI_R1;
 
 	if (blocks == 1)
 		mrq->stop = NULL;
 	else {
 		mrq->stop->opcode = MMC_STOP_TRANSMISSION;
 		mrq->stop->arg = 0;
-		mrq->stop->flags = MMC_RSP_R1B | MMC_CMD_AC;
+		mrq->stop->flags = MMC_RSP_SPI_R1;
 	}
 
 	mrq->data->blksz = blksz;
@@ -103,7 +103,7 @@ static int mmc_test_wait_busy(struct mmc_test_card *test)
 
 		cmd.opcode = MMC_SEND_STATUS;
 		cmd.arg = test->card->rca << 16;
-		cmd.flags = MMC_RSP_R1 | MMC_CMD_AC;
+		cmd.flags = MMC_RSP_SPI_R2;
 
 		ret = mmc_wait_for_cmd(test->card->host, &cmd, 0);
 		if (ret)
@@ -155,10 +155,10 @@ static int mmc_test_buffer_transfer(struct mmc_test_card *test,
 	if (data.error)
 		return data.error;
 
-	ret = mmc_test_wait_busy(test);
+/*	ret = mmc_test_wait_busy(test);
 	if (ret)
 		return ret;
-
+*/
 	return 0;
 }
 
@@ -240,7 +240,7 @@ static void mmc_test_prepare_broken_mrq(struct mmc_test_card *test,
 			MMC_WRITE_BLOCK : MMC_READ_SINGLE_BLOCK;
 		mrq->stop = NULL;
 	} else {
-		mrq->cmd->opcode = MMC_SEND_STATUS;
+		mrq->cmd->opcode = MMC_SEND_CID;
 		mrq->cmd->arg = test->card->rca << 16;
 	}
 }
@@ -333,7 +333,7 @@ static int mmc_test_simple_transfer(struct mmc_test_card *test,
 
 	mmc_wait_for_req(test->card->host, &mrq);
 
-	mmc_test_wait_busy(test);
+	//mmc_test_wait_busy(test);
 
 	return mmc_test_check_result(test, &mrq);
 }
@@ -367,7 +367,7 @@ static int mmc_test_broken_transfer(struct mmc_test_card *test,
 
 	mmc_wait_for_req(test->card->host, &mrq);
 
-	mmc_test_wait_busy(test);
+	//mmc_test_wait_busy(test);
 
 	return mmc_test_check_broken_result(test, &mrq);
 }


^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2008-07-26 23:34 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-07-24 13:23 mmc_test with mmc_spi Thomas Kunze
2008-07-26 23:34 ` Pierre Ossman

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).