From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
To: minyard@acm.org
Cc: qemu-devel@nongnu.org, Paolo Bonzini <pbonzini@redhat.com>,
"Michael S . Tsirkin" <mst@redhat.com>,
Corey Minyard <cminyard@mvista.com>
Subject: Re: [Qemu-devel] [PATCH 1/3] i2c:pm_smbus: Fix state transfer
Date: Mon, 12 Nov 2018 17:47:20 +0000 [thread overview]
Message-ID: <20181112174719.GI2293@work-vm> (raw)
In-Reply-To: <20181107155405.24013-2-minyard@acm.org>
* minyard@acm.org (minyard@acm.org) wrote:
> From: Corey Minyard <cminyard@mvista.com>
>
> Transfer the state information for the SMBus registers and
> internal data so it will work on a VM transfer.
Weren't the comments from August were that we'd prefer to see this in
a subsection so we didn't break migration compatibility.
Dave
> Signed-off-by: Corey Minyard <cminyard@mvista.com>
> Cc: Michael S. Tsirkin <mst@redhat.com>
> Cc: Paolo Bonzini <pbonzini@redhat.com>
> Cc: Dr. David Alan Gilbert <dgilbert@redhat.com>
> ---
> hw/acpi/piix4.c | 3 ++-
> hw/i2c/pm_smbus.c | 20 ++++++++++++++++++++
> hw/i2c/smbus_ich9.c | 5 +++--
> include/hw/i2c/pm_smbus.h | 2 ++
> 4 files changed, 27 insertions(+), 3 deletions(-)
>
> diff --git a/hw/acpi/piix4.c b/hw/acpi/piix4.c
> index e330f24c71..313305f5a0 100644
> --- a/hw/acpi/piix4.c
> +++ b/hw/acpi/piix4.c
> @@ -309,7 +309,7 @@ static const VMStateDescription vmstate_cpuhp_state = {
> */
> static const VMStateDescription vmstate_acpi = {
> .name = "piix4_pm",
> - .version_id = 3,
> + .version_id = 4,
> .minimum_version_id = 3,
> .minimum_version_id_old = 1,
> .load_state_old = acpi_load_old,
> @@ -320,6 +320,7 @@ static const VMStateDescription vmstate_acpi = {
> VMSTATE_UINT16(ar.pm1.evt.en, PIIX4PMState),
> VMSTATE_UINT16(ar.pm1.cnt.cnt, PIIX4PMState),
> VMSTATE_STRUCT(apm, PIIX4PMState, 0, vmstate_apm, APMState),
> + VMSTATE_STRUCT(smb, PIIX4PMState, 4, pmsmb_vmstate, PMSMBus),
> VMSTATE_TIMER_PTR(ar.tmr.timer, PIIX4PMState),
> VMSTATE_INT64(ar.tmr.overflow_time, PIIX4PMState),
> VMSTATE_STRUCT(ar.gpe, PIIX4PMState, 2, vmstate_gpe, ACPIGPE),
> diff --git a/hw/i2c/pm_smbus.c b/hw/i2c/pm_smbus.c
> index 685a2378ed..4d021bb017 100644
> --- a/hw/i2c/pm_smbus.c
> +++ b/hw/i2c/pm_smbus.c
> @@ -402,6 +402,26 @@ static const MemoryRegionOps pm_smbus_ops = {
> .endianness = DEVICE_LITTLE_ENDIAN,
> };
>
> +const VMStateDescription pmsmb_vmstate = {
> + .name = "pmsmb",
> + .version_id = 1,
> + .minimum_version_id = 1,
> + .fields = (VMStateField[]) {
> + VMSTATE_UINT8(smb_stat, PMSMBus),
> + VMSTATE_UINT8(smb_ctl, PMSMBus),
> + VMSTATE_UINT8(smb_cmd, PMSMBus),
> + VMSTATE_UINT8(smb_addr, PMSMBus),
> + VMSTATE_UINT8(smb_data0, PMSMBus),
> + VMSTATE_UINT8(smb_data1, PMSMBus),
> + VMSTATE_UINT32(smb_index, PMSMBus),
> + VMSTATE_UINT8_ARRAY(smb_data, PMSMBus, PM_SMBUS_MAX_MSG_SIZE),
> + VMSTATE_UINT8(smb_auxctl, PMSMBus),
> + VMSTATE_BOOL(i2c_enable, PMSMBus),
> + VMSTATE_BOOL(op_done, PMSMBus),
> + VMSTATE_END_OF_LIST()
> + }
> +};
> +
> void pm_smbus_init(DeviceState *parent, PMSMBus *smb, bool force_aux_blk)
> {
> smb->op_done = true;
> diff --git a/hw/i2c/smbus_ich9.c b/hw/i2c/smbus_ich9.c
> index 2a8b49e02f..4202b71da5 100644
> --- a/hw/i2c/smbus_ich9.c
> +++ b/hw/i2c/smbus_ich9.c
> @@ -47,10 +47,11 @@ typedef struct ICH9SMBState {
>
> static const VMStateDescription vmstate_ich9_smbus = {
> .name = "ich9_smb",
> - .version_id = 1,
> + .version_id = 2,
> .minimum_version_id = 1,
> .fields = (VMStateField[]) {
> - VMSTATE_PCI_DEVICE(dev, struct ICH9SMBState),
> + VMSTATE_PCI_DEVICE(dev, ICH9SMBState),
> + VMSTATE_STRUCT(smb, ICH9SMBState, 2, pmsmb_vmstate, PMSMBus),
> VMSTATE_END_OF_LIST()
> }
> };
> diff --git a/include/hw/i2c/pm_smbus.h b/include/hw/i2c/pm_smbus.h
> index 060d3c6ac0..471345eaa2 100644
> --- a/include/hw/i2c/pm_smbus.h
> +++ b/include/hw/i2c/pm_smbus.h
> @@ -35,4 +35,6 @@ typedef struct PMSMBus {
>
> void pm_smbus_init(DeviceState *parent, PMSMBus *smb, bool force_aux_blk);
>
> +extern const VMStateDescription pmsmb_vmstate;
> +
> #endif /* PM_SMBUS_H */
> --
> 2.17.1
>
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
next prev parent reply other threads:[~2018-11-12 17:55 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-11-07 15:54 [Qemu-devel] [PATCH 0/3] Fix/add vmstate handling in some I2C code minyard
2018-11-07 15:54 ` [Qemu-devel] [PATCH 1/3] i2c:pm_smbus: Fix state transfer minyard
2018-11-12 17:47 ` Dr. David Alan Gilbert [this message]
2018-11-12 20:32 ` Corey Minyard
2018-11-07 15:54 ` [Qemu-devel] [PATCH 2/3] i2c: Add an SMBus vmstate structure minyard
2018-11-08 14:23 ` Philippe Mathieu-Daudé
2018-11-08 14:40 ` Peter Maydell
2018-11-08 14:48 ` Philippe Mathieu-Daudé
2018-11-07 15:54 ` [Qemu-devel] [PATCH 3/3] i2c: Add vmstate handling to the smbus eeprom minyard
2018-11-08 14:08 ` Peter Maydell
2018-11-08 17:58 ` Corey Minyard
2018-11-08 18:03 ` Peter Maydell
2018-11-09 14:56 ` Corey Minyard
2018-11-09 15:02 ` Peter Maydell
2018-11-09 17:19 ` Corey Minyard
2018-11-09 17:53 ` Peter Maydell
2018-11-12 17:38 ` Dr. David Alan Gilbert
2018-11-12 17:41 ` Peter Maydell
2018-11-12 17:28 ` Dr. David Alan Gilbert
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20181112174719.GI2293@work-vm \
--to=dgilbert@redhat.com \
--cc=cminyard@mvista.com \
--cc=minyard@acm.org \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.