[U-Boot] [PATCH 2/9] mx23: Use XFER_COUNT field in HW_SSP_CTRL0 register in MMC PIO mode

Marek Vasut marex at denx.de
Tue Jan 22 02:45:44 CET 2013


Dear Otavio Salvador,

> From: Marek Vasut <marex at denx.de>
> 
> Signed-off-by: Marek Vasut <marex at denx.de>
> Signed-off-by: Otavio Salvador <otavio at ossystems.com.br>
> ---
>  drivers/mmc/mxsmmc.c | 24 +++++++++++++++++++++---
>  1 file changed, 21 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/mmc/mxsmmc.c b/drivers/mmc/mxsmmc.c
> index 0c4cd54..4b178be 100644
> --- a/drivers/mmc/mxsmmc.c
> +++ b/drivers/mmc/mxsmmc.c
> @@ -211,14 +211,32 @@ mxsmmc_send_cmd(struct mmc *mmc, struct mmc_cmd *cmd,
> struct mmc_data *data) }
> 
>  		ctrl0 |= SSP_CTRL0_DATA_XFER;
> +
> +		reg = data->blocksize * data->blocks;
> +#if defined(CONFIG_MX23)
> +		if (reg & ~SSP_CTRL0_XFER_COUNT_MASK) {
> +			printf("MMC%d: Transfer too large (%i bytes)!\n",
> +				mmc->block_dev.dev, reg);
> +			return -EINVAL;
> +		}
> +
> +		ctrl0 |= reg & SSP_CTRL0_XFER_COUNT_MASK;
> +
> +		reg = readl(&ssp_regs->hw_ssp_cmd0);
> +		reg &= ~0xfff00;
> +		reg |= (data->blocks - 1) << 8;
> +		reg |= (ffs(data->blocksize) - 1) << 16;

This is using some random hard-coded offsets, I told you numerous times I will 
NAK this.

Sorry.

Best regards,
Marek Vasut


More information about the U-Boot mailing list