mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 23:24:38 +00:00
mmc: uniphier-sd: Fix long response processing
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@gmail.com> Cc: Masahiro Yamada <yamada.masahiro@socionext.com> Cc: Jaehoon Chung <jh80.chung@samsung.com> Acked-by: Masahiro Yamada <yamada.masahiro@socionext.com>
This commit is contained in:
parent
2d3c4ae350
commit
ac5efc358b
1 changed files with 7 additions and 7 deletions
|
@ -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);
|
||||
|
|
Loading…
Reference in a new issue