On 1/28/21 7:30 AM, Bin Meng wrote:
> From: Bin Meng <[email protected]>
> 
> Besides CMD12, the following command's reponse type is R1b:
> 
> - SET_WRITE_PROT (CMD28)
> - CLR_WRITE_PROT (CMD29)
> - ERASE (CMD38)
> 
> Reuse the same s->stopping to indicate a R1b reponse is needed.
> 
> Signed-off-by: Bin Meng <[email protected]>
> 
> ---
> 
> Changes in v4:
> - new patch: handle the rest commands with R1b response type
> 
>  hw/sd/ssi-sd.c | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/hw/sd/ssi-sd.c b/hw/sd/ssi-sd.c
> index 907d681d19..97ee58e20c 100644
> --- a/hw/sd/ssi-sd.c
> +++ b/hw/sd/ssi-sd.c
> @@ -194,6 +194,12 @@ static uint32_t ssi_sd_transfer(SSIPeripheral *dev, 
> uint32_t val)
>                  /* CMD13 returns a 2-byte statuse work. Other commands
>                     only return the first byte.  */
>                  s->arglen = (s->cmd == 13) ? 2 : 1;
> +
> +                /* handle R1b */
> +                if (s->cmd == 28 || s->cmd == 29 || s->cmd == 38) {

Why not also check CMD13 for completeness?

Otherwise:
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>

> +                    s->stopping = 1;
> +                }
> +
>                  cardstatus = ldl_be_p(longresp);
>                  status = 0;
>                  if (((cardstatus >> 9) & 0xf) < 4)
> 

Reply via email to