hw/sd/sdcard: Cover more SDCardStates

So far eMMC will only use sd_sleep_state, but
all all states specified for completeness.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Tested-by: Andrew Jeffery <andrew@codeconstruct.com.au>
Tested-by: Cédric Le Goater <clg@redhat.com>
Message-Id: <20240628070216.92609-81-philmd@linaro.org>
This commit is contained in:
Philippe Mathieu-Daudé 2024-06-17 12:05:21 +02:00
parent 2a97045b48
commit f18a78de24

View File

@ -76,7 +76,9 @@ enum SDCardModes {
}; };
enum SDCardStates { enum SDCardStates {
sd_waitirq_state = -2, /* emmc */
sd_inactive_state = -1, sd_inactive_state = -1,
sd_idle_state = 0, sd_idle_state = 0,
sd_ready_state = 1, sd_ready_state = 1,
sd_identification_state = 2, sd_identification_state = 2,
@ -86,6 +88,9 @@ enum SDCardStates {
sd_receivingdata_state = 6, sd_receivingdata_state = 6,
sd_programming_state = 7, sd_programming_state = 7,
sd_disconnect_state = 8, sd_disconnect_state = 8,
sd_bus_test_state = 9, /* emmc */
sd_sleep_state = 10, /* emmc */
sd_io_state = 15 /* sd */
}; };
#define SDMMC_CMD_MAX 64 #define SDMMC_CMD_MAX 64
@ -203,13 +208,19 @@ static const char *sd_state_name(enum SDCardStates state)
[sd_standby_state] = "standby", [sd_standby_state] = "standby",
[sd_transfer_state] = "transfer", [sd_transfer_state] = "transfer",
[sd_sendingdata_state] = "sendingdata", [sd_sendingdata_state] = "sendingdata",
[sd_bus_test_state] = "bus-test",
[sd_receivingdata_state] = "receivingdata", [sd_receivingdata_state] = "receivingdata",
[sd_programming_state] = "programming", [sd_programming_state] = "programming",
[sd_disconnect_state] = "disconnect", [sd_disconnect_state] = "disconnect",
[sd_sleep_state] = "sleep",
[sd_io_state] = "i/o"
}; };
if (state == sd_inactive_state) { if (state == sd_inactive_state) {
return "inactive"; return "inactive";
} }
if (state == sd_waitirq_state) {
return "wait-irq";
}
assert(state < ARRAY_SIZE(state_name)); assert(state < ARRAY_SIZE(state_name));
return state_name[state]; return state_name[state];
} }