[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 2/3] sdhci: don't raise a command index error fo
From: |
Peter Crosthwaite |
Subject: |
Re: [Qemu-devel] [PATCH 2/3] sdhci: don't raise a command index error for an unexpected response |
Date: |
Sun, 20 Dec 2015 13:44:38 -0800 |
On Wed, Dec 16, 2015 at 11:47 AM, Andrew Baumann
<address@hidden> wrote:
> This deletes a block of code that raised a command index error if a
> command returned response data, but the guest did not set the
> appropriate bits in the response register to handle such a response. I
> cannot find any documentation that suggests the controller should
> behave in this way, the error code doesn't make sense (command index
> error is defined for the case where the index in a response does not
> match that of the issued command), and in at least one case (CMD23
> issued by UEFI on Raspberry Pi 2), actual hardware does not do this.
>
> Signed-off-by: Andrew Baumann <address@hidden>
Reviewed-by: Peter Crosthwaite <address@hidden>
All I can think of, is the original author is assuming that any
mismatch in response length can only occur on a mismatch of commands.
If we really need _CMDIDX it should be done directly as a check of the
command index in the response.
Regards,
Peter
> ---
> hw/sd/sdhci.c | 3 ---
> 1 file changed, 3 deletions(-)
>
> diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c
> index bc39d48..dd83e89 100644
> --- a/hw/sd/sdhci.c
> +++ b/hw/sd/sdhci.c
> @@ -243,9 +243,6 @@ static void sdhci_send_command(SDHCIState *s)
> (s->cmdreg & SDHC_CMD_RESPONSE) == SDHC_CMD_RSP_WITH_BUSY) {
> s->norintsts |= SDHC_NIS_TRSCMP;
> }
> - } else if (rlen != 0 && (s->errintstsen & SDHC_EISEN_CMDIDX)) {
> - s->errintsts |= SDHC_EIS_CMDIDX;
> - s->norintsts |= SDHC_NIS_ERR;
> }
>
> if (s->norintstsen & SDHC_NISEN_CMDCMP) {
> --
> 2.5.3
>