[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [RFC PATCH 06/10] hw/sd: Add sd_cmd_unimplemented() handler
From: |
Bin Meng |
Subject: |
Re: [RFC PATCH 06/10] hw/sd: Add sd_cmd_unimplemented() handler |
Date: |
Fri, 25 Jun 2021 21:49:23 +0800 |
On Thu, Jun 24, 2021 at 10:28 PM Philippe Mathieu-Daudé <f4bug@amsat.org> wrote:
>
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
> hw/sd/sd.c | 21 ++++++++++++---------
> 1 file changed, 12 insertions(+), 9 deletions(-)
>
> diff --git a/hw/sd/sd.c b/hw/sd/sd.c
> index 0215bdb3689..2647fd26566 100644
> --- a/hw/sd/sd.c
> +++ b/hw/sd/sd.c
> @@ -973,6 +973,15 @@ static sd_rsp_type_t sd_cmd_illegal(SDState *sd,
> SDRequest req)
> return sd_illegal;
> }
>
> +/* Commands that are recognised but not yet implemented. */
> +static sd_rsp_type_t sd_cmd_unimplemented(SDState *sd, SDRequest req)
> +{
> + qemu_log_mask(LOG_UNIMP, "%s: CMD%i not implemented\n",
> + sd->proto->name, req.cmd);
> +
> + return sd_illegal;
> +}
> +
> static sd_rsp_type_t sd_normal_command(SDState *sd, SDRequest req)
> {
> uint32_t rca = 0x0000;
> @@ -1522,9 +1531,6 @@ static sd_rsp_type_t sd_app_command(SDState *sd,
>
> switch (req.cmd) {
> case 6: /* ACMD6: SET_BUS_WIDTH */
> - if (sd->spi) {
> - goto unimplemented_spi_cmd;
> - }
> switch (sd->state) {
> case sd_transfer_state:
> sd->sd_status[0] &= 0x3f;
> @@ -1655,12 +1661,6 @@ static sd_rsp_type_t sd_app_command(SDState *sd,
> default:
> /* Fall back to standard commands. */
> return sd_normal_command(sd, req);
> -
> - unimplemented_spi_cmd:
> - /* Commands that are recognised but not yet implemented in SPI mode.
> */
> - qemu_log_mask(LOG_UNIMP, "SD: CMD%i not implemented in SPI mode\n",
> - req.cmd);
> - return sd_illegal;
> }
>
> qemu_log_mask(LOG_GUEST_ERROR, "SD: ACMD%i in a wrong state\n", req.cmd);
> @@ -2096,6 +2096,9 @@ static const SDProto sd_proto_spi = {
> [26] = sd_cmd_illegal,
> [52 ... 54] = sd_cmd_illegal,
> },
> + .cmd = {
> + [6] = sd_cmd_unimplemented,
> + },
> };
Does this compile? Or is this another GCC extension to C?
But I think you wanted to say .acmd = ?
Regards,
Bin
- Re: [RFC PATCH 01/10] hw/sd: When card is in wrong state, log which state it is, (continued)
- [RFC PATCH 02/10] hw/sd: Extract address_in_range() helper, log invalid accesses, Philippe Mathieu-Daudé, 2021/06/24
- [RFC PATCH 03/10] hw/sd: Move proto_name to SDProto structure, Philippe Mathieu-Daudé, 2021/06/24
- [RFC PATCH 04/10] hw/sd: Introduce sd_cmd_handler type, Philippe Mathieu-Daudé, 2021/06/24
- [RFC PATCH 05/10] hw/sd: Add sd_cmd_illegal() handler, Philippe Mathieu-Daudé, 2021/06/24
- [RFC PATCH 06/10] hw/sd: Add sd_cmd_unimplemented() handler, Philippe Mathieu-Daudé, 2021/06/24
- Re: [RFC PATCH 06/10] hw/sd: Add sd_cmd_unimplemented() handler,
Bin Meng <=
[RFC PATCH 07/10] hw/sd: Add sd_cmd_GO_IDLE_STATE() handler, Philippe Mathieu-Daudé, 2021/06/24
[RFC PATCH 08/10] hw/sd: Add sd_cmd_SEND_OP_CMD() handler, Philippe Mathieu-Daudé, 2021/06/24
[RFC PATCH 09/10] hw/sd: Add sd_cmd_ALL_SEND_CID() handler, Philippe Mathieu-Daudé, 2021/06/24
[RFC PATCH 10/10] hw/sd: Add sd_cmd_SEND_RELATIVE_ADDR() handler, Philippe Mathieu-Daudé, 2021/06/24