[U-Boot] [PATCH] mmc: Remove incorrect cmd->flags usage

Marek Vasut marex at denx.de
Fri Sep 7 01:24:48 CEST 2012


Dear Andy Fleming,

> There were a couple of drivers that were actually using the flags
> field of the cmd structure, despite the fact that no one ever
> *set* that field. When we removed the field, those drivers failed
> to compile. Replaced the references with the correct usage of
> resp_type.

I'll run duts tests on this on M28, stay tuned.

> Signed-off-by: Andy Fleming <afleming at freescale.com>
> ---
> I've gone and applied this to the mmc repository, as it's more
> correct than the current implementation. I don't anticipate any
> problems, but the pl180 and pxa folks should make sure their
> drivers still work.
> 
>  drivers/mmc/arm_pl180_mmci.c |    2 +-
>  drivers/mmc/pxa_mmc_gen.c    |    8 +++++---
>  2 files changed, 6 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/mmc/arm_pl180_mmci.c b/drivers/mmc/arm_pl180_mmci.c
> index db2c7ab..af1380a 100644
> --- a/drivers/mmc/arm_pl180_mmci.c
> +++ b/drivers/mmc/arm_pl180_mmci.c
> @@ -52,7 +52,7 @@ static int wait_for_command_end(struct mmc *dev, struct
> mmc_cmd *cmd) debug("CMD%d time out\n", cmd->cmdidx);
>  		return TIMEOUT;
>  	} else if ((hoststatus & SDI_STA_CCRCFAIL) &&
> -		   (cmd->flags & MMC_RSP_CRC)) {
> +		   (cmd->resp_type & MMC_RSP_CRC)) {
>  		printf("CMD%d CRC error\n", cmd->cmdidx);
>  		return -EILSEQ;
>  	}
> diff --git a/drivers/mmc/pxa_mmc_gen.c b/drivers/mmc/pxa_mmc_gen.c
> index 2c5bf17..b3ec441 100644
> --- a/drivers/mmc/pxa_mmc_gen.c
> +++ b/drivers/mmc/pxa_mmc_gen.c
> @@ -118,7 +118,7 @@ static int pxa_mmc_start_cmd(struct mmc *mmc, struct
> mmc_cmd *cmd, int ret;
> 
>  	/* The card can send a "busy" response */
> -	if (cmd->flags & MMC_RSP_BUSY)
> +	if (cmd->resp_type & MMC_RSP_BUSY)
>  		cmdat |= MMC_CMDAT_BUSY;
> 
>  	/* Inform the controller about response type */
> @@ -181,9 +181,11 @@ static int pxa_mmc_cmd_done(struct mmc *mmc, struct
> mmc_cmd *cmd) /* The command response didn't arrive */
>  	if (stat & MMC_STAT_TIME_OUT_RESPONSE)
>  		return -ETIMEDOUT;
> -	else if (stat & MMC_STAT_RES_CRC_ERROR && cmd->flags & MMC_RSP_CRC) {
> +	else if (stat & MMC_STAT_RES_CRC_ERROR
> +			&& cmd->resp_type & MMC_RSP_CRC) {
>  #ifdef	PXAMMC_CRC_SKIP
> -		if (cmd->flags & MMC_RSP_136 && cmd->response[0] & (1 << 31))
> +		if (cmd->resp_type & MMC_RSP_136
> +				&& cmd->response[0] & (1 << 31))
>  			printf("Ignoring CRC, this may be dangerous!\n");
>  		else
>  #endif

Best regards,
Marek Vasut


More information about the U-Boot mailing list