From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from metis.ext.pengutronix.de ([2001:6f8:1178:4:290:27ff:fe1d:cc33]) by merlin.infradead.org with esmtps (Exim 4.76 #1 (Red Hat Linux)) id 1TYYHz-0002AM-05 for barebox@lists.infradead.org; Wed, 14 Nov 2012 08:25:40 +0000 Date: Wed, 14 Nov 2012 09:25:37 +0100 From: Sascha Hauer Message-ID: <20121114082537.GJ10369@pengutronix.de> References: <1352754991-11660-1-git-send-email-franck.jullien@gmail.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <1352754991-11660-1-git-send-email-franck.jullien@gmail.com> List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: barebox-bounces@lists.infradead.org Errors-To: barebox-bounces+u.kleine-koenig=pengutronix.de@lists.infradead.org Subject: Re: [PATCH] mci_spi: always compute command crc byte To: Franck Jullien Cc: barebox@lists.infradead.org On Mon, Nov 12, 2012 at 10:16:31PM +0100, Franck Jullien wrote: > The spec says: "the CMD8 CRC verification is always enabled. > The Host shall set correct CRC in the argument ofCMD8. If > CRC error is detected, card returns CRC error in R1 response > regardless of command index." > > Make it simple, and compute crc on every commands. > > Signed-off-by: Franck Jullien Applied, thanks Sascha > --- > drivers/mci/Kconfig | 2 +- > drivers/mci/mci_spi.c | 12 ------------ > 2 files changed, 1 insertions(+), 13 deletions(-) > > diff --git a/drivers/mci/Kconfig b/drivers/mci/Kconfig > index b1a678e..5c0ca4d 100644 > --- a/drivers/mci/Kconfig > +++ b/drivers/mci/Kconfig > @@ -88,6 +88,7 @@ config MCI_ATMEL > > config MCI_SPI > bool "MMC/SD over SPI" > + select CRC7 > depends on SPI > help > Some systems access MMC/SD/SDIO cards using a SPI controller > @@ -98,7 +99,6 @@ config MCI_SPI > > config MMC_SPI_CRC_ON > bool "Enable CRC protection for transfers" > - select CRC7 > select CRC16 > depends on MCI_SPI > help > diff --git a/drivers/mci/mci_spi.c b/drivers/mci/mci_spi.c > index 5894104..cb5e0bb 100644 > --- a/drivers/mci/mci_spi.c > +++ b/drivers/mci/mci_spi.c > @@ -121,14 +121,6 @@ mmc_spi_writebytes(struct mmc_spi_host *host, unsigned len, void *data) > return status; > } > > -/* > - * Note that while the CRC, in general, is ignored in SPI mode, the very first > - * command must be followed by a valid CRC, since the card is not yet in SPI mode. > - * The CRC byte for a CMD0 command with a zero argument is a constant 0x4A. For > - * simplicity, this CRC byte is always sent with every command. > - */ > -#define MMC_SPI_CMD0_CRC ((0x4a << 1) | 0x1) > - > static int mmc_spi_command_send(struct mmc_spi_host *host, struct mci_cmd *cmd) > { > uint8_t r1; > @@ -141,11 +133,7 @@ static int mmc_spi_command_send(struct mmc_spi_host *host, struct mci_cmd *cmd) > command[3] = cmd->cmdarg >> 16; > command[4] = cmd->cmdarg >> 8; > command[5] = cmd->cmdarg; > -#ifdef CONFIG_MMC_SPI_CRC_ON > command[6] = (crc7(0, &command[1], 5) << 1) | 0x01; > -#else > - command[6] = MMC_SPI_CMD0_CRC; > -#endif > > mmc_spi_writebytes(host, 7, command); > > -- > 1.7.1 > > > _______________________________________________ > barebox mailing list > barebox@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/barebox > -- Pengutronix e.K. | | Industrial Linux Solutions | http://www.pengutronix.de/ | Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | _______________________________________________ barebox mailing list barebox@lists.infradead.org http://lists.infradead.org/mailman/listinfo/barebox