[U-Boot] mmc: uniphier-sd: Fix long response processing
Jaehoon Chung
jh80.chung at samsung.com
Thu Aug 17 05:36:46 UTC 2017
On 07/22/2017 06:11 AM, Marek Vasut wrote:
> The long response entry 0..3 LSByte comes from the next response
> register MSByte, not from the next response register LSByte. Fix
> this to make the driver report correct values in response 136 .
>
> Signed-off-by: Marek Vasut <marek.vasut+renesas at gmail.com>
> Cc: Masahiro Yamada <yamada.masahiro at socionext.com>
> Cc: Jaehoon Chung <jh80.chung at samsung.com>
> Acked-by: Masahiro Yamada <yamada.masahiro at socionext.com>
Applied to u-boot-mmc. Sorry for late!
Best Regards,
Jaehoon Chung
> ---
> drivers/mmc/uniphier-sd.c | 14 +++++++-------
> 1 file changed, 7 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/mmc/uniphier-sd.c b/drivers/mmc/uniphier-sd.c
> index 3c462bd583..e272b14153 100644
> --- a/drivers/mmc/uniphier-sd.c
> +++ b/drivers/mmc/uniphier-sd.c
> @@ -470,13 +470,13 @@ static int uniphier_sd_send_cmd(struct udevice *dev, struct mmc_cmd *cmd,
> u32 rsp_71_40 = readl(priv->regbase + UNIPHIER_SD_RSP32);
> u32 rsp_39_8 = readl(priv->regbase + UNIPHIER_SD_RSP10);
>
> - cmd->response[0] = (rsp_127_104 & 0xffffff) << 8 |
> - (rsp_103_72 & 0xff);
> - cmd->response[1] = (rsp_103_72 & 0xffffff) << 8 |
> - (rsp_71_40 & 0xff);
> - cmd->response[2] = (rsp_71_40 & 0xffffff) << 8 |
> - (rsp_39_8 & 0xff);
> - cmd->response[3] = (rsp_39_8 & 0xffffff) << 8;
> + cmd->response[0] = ((rsp_127_104 & 0x00ffffff) << 8) |
> + ((rsp_103_72 & 0xff000000) >> 24);
> + cmd->response[1] = ((rsp_103_72 & 0x00ffffff) << 8) |
> + ((rsp_71_40 & 0xff000000) >> 24);
> + cmd->response[2] = ((rsp_71_40 & 0x00ffffff) << 8) |
> + ((rsp_39_8 & 0xff000000) >> 24);
> + cmd->response[3] = (rsp_39_8 & 0xffffff) << 8;
> } else {
> /* bit 39-8 */
> cmd->response[0] = readl(priv->regbase + UNIPHIER_SD_RSP10);
>
More information about the U-Boot
mailing list