hw/sd/allwinner-sdhost: report FIFO water level as 1 when data ready
U-Boot queries the FIFO water level to reduce checking status register when doing PIO SD card operation. Report a FIFO water level of 1 when data is ready, to prevent the code from trying to read 0 words from the FIFO each time. Signed-off-by: Icenowy Zheng <uwu@icenowy.me> Message-id: 20220520124200.2112699-1-uwu@icenowy.me Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
b5fb359cb5
commit
fd71f258bc
@ -114,7 +114,9 @@ enum {
|
||||
};
|
||||
|
||||
enum {
|
||||
SD_STAR_FIFO_EMPTY = (1 << 2),
|
||||
SD_STAR_CARD_PRESENT = (1 << 8),
|
||||
SD_STAR_FIFO_LEVEL_1 = (1 << 17),
|
||||
};
|
||||
|
||||
enum {
|
||||
@ -467,6 +469,11 @@ static uint64_t allwinner_sdhost_read(void *opaque, hwaddr offset,
|
||||
break;
|
||||
case REG_SD_STAR: /* Status */
|
||||
res = s->status;
|
||||
if (sdbus_data_ready(&s->sdbus)) {
|
||||
res |= SD_STAR_FIFO_LEVEL_1;
|
||||
} else {
|
||||
res |= SD_STAR_FIFO_EMPTY;
|
||||
}
|
||||
break;
|
||||
case REG_SD_FWLR: /* FIFO Water Level */
|
||||
res = s->fifo_wlevel;
|
||||
|
Loading…
Reference in New Issue
Block a user