On 1/24/21 5:59 PM, Philippe Mathieu-Daudé wrote:
> On 1/23/21 11:40 AM, Bin Meng wrote:
>> From: Bin Meng <[email protected]>
>>
>> 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 <[email protected]>
>>
>> ---
>>
>> 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 <[email protected]>
>> + *
>> + * 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),
>>
>