On Wed, Dec 16, 2015 at 11:47 AM, Andrew Baumann <andrew.baum...@microsoft.com> 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 <andrew.baum...@microsoft.com>
Reviewed-by: Peter Crosthwaite <crosthwaite.pe...@gmail.com> 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 >