On 4 June 2014 13:28, Peter Crosthwaite <[email protected]> wrote: > On Wed, Jun 4, 2014 at 4:58 AM, Peter Maydell <[email protected]> > wrote: >> On 3 June 2014 19:30, Peter Maydell <[email protected]> wrote: >>> The pxa2xx-gpio device has a VMStateDescription, but it was accidentally >>> never actually registered, and it wasn't quite correct. Remove the >>> 'lines' field (this is a device property, not mutable state), add >>> the missing 'gpsr' and 'prev_level' fields, and set dc->vmsd so it >>> actually gets used. >>> >>> Signed-off-by: Peter Maydell <[email protected]> >>> --- >>> hw/arm/pxa2xx_gpio.c | 4 +++- >>> 1 file changed, 3 insertions(+), 1 deletion(-) >>> >>> diff --git a/hw/arm/pxa2xx_gpio.c b/hw/arm/pxa2xx_gpio.c >>> index 7f75f05..ccf6e44 100644 >>> --- a/hw/arm/pxa2xx_gpio.c >>> +++ b/hw/arm/pxa2xx_gpio.c >>> @@ -314,14 +314,15 @@ static const VMStateDescription >>> vmstate_pxa2xx_gpio_regs = { >>> .version_id = 1, >>> .minimum_version_id = 1, >>> .fields = (VMStateField[]) { >>> - VMSTATE_INT32(lines, PXA2xxGPIOInfo), >>> VMSTATE_UINT32_ARRAY(ilevel, PXA2xxGPIOInfo, PXA2XX_GPIO_BANKS), >>> VMSTATE_UINT32_ARRAY(olevel, PXA2xxGPIOInfo, PXA2XX_GPIO_BANKS), >>> VMSTATE_UINT32_ARRAY(dir, PXA2xxGPIOInfo, PXA2XX_GPIO_BANKS), >>> VMSTATE_UINT32_ARRAY(rising, PXA2xxGPIOInfo, PXA2XX_GPIO_BANKS), >>> VMSTATE_UINT32_ARRAY(falling, PXA2xxGPIOInfo, PXA2XX_GPIO_BANKS), >>> VMSTATE_UINT32_ARRAY(status, PXA2xxGPIOInfo, PXA2XX_GPIO_BANKS), >>> + VMSTATE_UINT32_ARRAY(gpsr, PXA2xxGPIOInfo, PXA2XX_GPIO_BANKS), > > According to documentation, reading gpsr is undefined, and the only > reason for this gpsr state as implemented in QEMU is return some > arbitrary default when reading the write-only register.
> All, in all, I think GPSR is not legitimate device state at all and > probably should be removed Seems reasonable. thanks -- PMM
