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

* Re: mmc_test with mmc_spi
  2008-07-24 13:23 mmc_test with mmc_spi Thomas Kunze
@ 2008-07-26 23:34 ` Pierre Ossman
  0 siblings, 0 replies; 2+ messages in thread
From: Pierre Ossman @ 2008-07-26 23:34 UTC (permalink / raw)
  To: Thomas Kunze; +Cc: Linux Kernel list, thommycheck, david-b

[-- Attachment #1: Type: text/plain, Size: 1510 bytes --]

On Thu, 24 Jul 2008 15:23:38 +0200
Thomas Kunze <thommycheck@gmx.de> wrote:

> 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.
> 

I haven't really thought about the SPI part that much. It has just the
one driver, so bugs should not be that reoccuring. There's no harm in
making mmc_test handle it though.

I don't know why those tests fail. There's a bit hackish, so they might
not work as intended with the SPI version of the protocol. Basically,
the send and invalid request to the controller where the card will stop
the data transaction too early. This is a crude test to make sure the
controller doesn't over-estimate the amount of data transferred.

Rgds
-- 
     -- Pierre Ossman

  Linux kernel, MMC maintainer        http://www.kernel.org
  rdesktop, core developer          http://www.rdesktop.org

  WARNING: This correspondence is being monitored by the
  Swedish government. Make sure your server uses encryption
  for SMTP traffic and consider using PGP for end-to-end
  encryption.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[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).