[PATCH v3] mmc: implement Driver Stage Register handling
Uwe Kleine-König
u.kleine-koenig at pengutronix.de
Wed Aug 13 08:57:07 PDT 2014
Hello,
On Wed, Aug 13, 2014 at 05:44:16PM +0200, Uwe Kleine-König wrote:
> diff --git a/drivers/mmc/core/mmc_ops.c b/drivers/mmc/core/mmc_ops.c
> index f51b5ba3bbea..37ed493d8030 100644
> --- a/drivers/mmc/core/mmc_ops.c
> +++ b/drivers/mmc/core/mmc_ops.c
> @@ -93,6 +93,27 @@ int mmc_deselect_cards(struct mmc_host *host)
> return _mmc_select_card(host, NULL);
> }
>
> +/*
> + * Write the value specified in the device tree or board code into the optional
> + * 16 bit Driver Stage Register. This can be used to tune raise/fall times and
> + * drive strength of the DAT and CMD outputs. The actual meaning of a given
> + * value is hardware dependant.
> + * The presence of the DSR register can be determined from the CSD register,
> + * bit 76.
> + */
> +int mmc_set_dsr(struct mmc_host *host)
> +{
> + int err;
The line declaring err can and should be dropped. I found that during my
tests, but failed to change this in the patch before sending it out.
If you consider applying my patch, please fix this up. If not I will
take this as an opportunity to remind you in a few days with a v4 :-)
Uwe
> + struct mmc_command cmd = {0};
> +
> + cmd.opcode = MMC_SET_DSR;
> +
> + cmd.arg = ((u32)host->dsr << 16) | 0xffff;
> + cmd.flags = MMC_RSP_NONE | MMC_CMD_AC;
> +
> + return mmc_wait_for_cmd(host, &cmd, MMC_CMD_RETRIES);
> +}
> +
--
Pengutronix e.K. | Uwe Kleine-König |
Industrial Linux Solutions | http://www.pengutronix.de/ |
More information about the linux-arm-kernel
mailing list