On 1/24/21 5:59 PM, Philippe Mathieu-Daudé wrote: > On 1/23/21 11:40 AM, Bin Meng wrote: >> From: Bin Meng <bin.m...@windriver.com> >> >> With all these fixes and improvements, there is no way for the >> VMStateDescription to keep backward compatibility. We will have >> to bump up version ids. > > Unfortunately this breaks bisectability (think about downstream > distributions cherry-picking patches individually). > > I don't think there is a problem increasing 2 -> 3 -> 4 -> 5 > (Cc'ed David in case). Could you respin increasing the version > on each VMState change? > >> >> The s->mode check in the post_load() hook is also updated. >> >> Signed-off-by: Bin Meng <bin.m...@windriver.com> >> >> --- >> >> Changes in v2: >> - new patch: bump up version ids of VMStateDescription >> >> hw/sd/ssi-sd.c | 11 ++++++++--- >> 1 file changed, 8 insertions(+), 3 deletions(-) >> >> diff --git a/hw/sd/ssi-sd.c b/hw/sd/ssi-sd.c >> index ee4fbc3dfe..0c507f3ec5 100644 >> --- a/hw/sd/ssi-sd.c >> +++ b/hw/sd/ssi-sd.c >> @@ -4,6 +4,11 @@ >> * Copyright (c) 2007-2009 CodeSourcery. >> * Written by Paul Brook >> * >> + * Copyright (c) 2021 Wind River Systems, Inc. >> + * Improved by Bin Meng <bin.m...@windriver.com> >> + * >> + * Validated with U-Boot v2021.01 and Linux v5.10 mmc_spi driver >> + * >> * This code is licensed under the GNU GPL v2. >> * >> * Contributions after 2012-01-13 are licensed under the terms of the >> @@ -319,7 +324,7 @@ static int ssi_sd_post_load(void *opaque, int version_id) >> { >> ssi_sd_state *s = (ssi_sd_state *)opaque; >> >> - if (s->mode > SSI_SD_DATA_READ) { >> + if (s->mode > SSI_SD_SKIP_CRC16) {
Doesn't this belong to patch #16 "Support single block write"? >> return -EINVAL; >> } >> if (s->mode == SSI_SD_CMDARG && >> @@ -337,8 +342,8 @@ static int ssi_sd_post_load(void *opaque, int version_id) >> >> static const VMStateDescription vmstate_ssi_sd = { >> .name = "ssi_sd", >> - .version_id = 2, >> - .minimum_version_id = 2, >> + .version_id = 3, >> + .minimum_version_id = 3, >> .post_load = ssi_sd_post_load, >> .fields = (VMStateField []) { >> VMSTATE_UINT32(mode, ssi_sd_state), >> >