[PATCH v2 01/13] vt82c686: Move superio memory region to SuperIOConfig struct

BALATON Zoltan posted 13 patches 5 years, 1 month ago
Maintainers: Huacai Chen <chenhuacai@kernel.org>, Aurelien Jarno <aurelien@aurel32.net>, Aleksandar Rikalo <aleksandar.rikalo@syrmia.com>, Jiaxun Yang <jiaxun.yang@flygoat.com>, "Michael S. Tsirkin" <mst@redhat.com>, Marcel Apfelbaum <marcel.apfelbaum@gmail.com>, "Philippe Mathieu-Daudé" <f4bug@amsat.org>
[PATCH v2 01/13] vt82c686: Move superio memory region to SuperIOConfig struct
Posted by BALATON Zoltan 5 years, 1 month ago
The superio memory region holds the io space index/data registers used
to access the superio config registers that are implemented in struct
SuperIOConfig. To keep these related things together move the memory
region to SuperIOConfig and rename it accordingly.
Also remove the unused "data" member of SuperIOConfig which is not
needed as we store actual data values in the regs array.

Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
---
 hw/isa/vt82c686.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/hw/isa/vt82c686.c b/hw/isa/vt82c686.c
index a6f5a0843d..30fe02f4c6 100644
--- a/hw/isa/vt82c686.c
+++ b/hw/isa/vt82c686.c
@@ -29,12 +29,11 @@
 typedef struct SuperIOConfig {
     uint8_t regs[0x100];
     uint8_t index;
-    uint8_t data;
+    MemoryRegion io;
 } SuperIOConfig;
 
 struct VT82C686BISAState {
     PCIDevice dev;
-    MemoryRegion superio;
     SuperIOConfig superio_cfg;
 };
 
@@ -128,8 +127,9 @@ static void vt82c686b_write_config(PCIDevice *d, uint32_t addr,
 
     trace_via_isa_write(addr, val, len);
     pci_default_write_config(d, addr, val, len);
-    if (addr == 0x85) {  /* enable or disable super IO configure */
-        memory_region_set_enabled(&s->superio, val & 0x2);
+    if (addr == 0x85) {
+        /* BIT(1): enable or disable superio config io ports */
+        memory_region_set_enabled(&s->superio_cfg.io, val & BIT(1));
     }
 }
 
@@ -311,15 +311,15 @@ static void vt82c686b_realize(PCIDevice *d, Error **errp)
         }
     }
 
-    memory_region_init_io(&s->superio, OBJECT(d), &superio_cfg_ops,
-                          &s->superio_cfg, "superio", 2);
-    memory_region_set_enabled(&s->superio, false);
+    memory_region_init_io(&s->superio_cfg.io, OBJECT(d), &superio_cfg_ops,
+                          &s->superio_cfg, "superio_cfg", 2);
+    memory_region_set_enabled(&s->superio_cfg.io, false);
     /*
      * The floppy also uses 0x3f0 and 0x3f1.
      * But we do not emulate a floppy, so just set it here.
      */
     memory_region_add_subregion(isa_bus->address_space_io, 0x3f0,
-                                &s->superio);
+                                &s->superio_cfg.io);
 }
 
 static void via_class_init(ObjectClass *klass, void *data)
-- 
2.21.3


Re: [PATCH v2 01/13] vt82c686: Move superio memory region to SuperIOConfig struct
Posted by Philippe Mathieu-Daudé 5 years, 1 month ago
On 1/9/21 9:16 PM, BALATON Zoltan wrote:
> The superio memory region holds the io space index/data registers used
> to access the superio config registers that are implemented in struct
> SuperIOConfig. To keep these related things together move the memory
> region to SuperIOConfig and rename it accordingly.
> Also remove the unused "data" member of SuperIOConfig which is not
> needed as we store actual data values in the regs array.
> 
> Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
> ---
>  hw/isa/vt82c686.c | 16 ++++++++--------
>  1 file changed, 8 insertions(+), 8 deletions(-)

Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

Re: [PATCH v2 01/13] vt82c686: Move superio memory region to SuperIOConfig struct
Posted by Jiaxun Yang 5 years ago
在 2021/1/10 上午4:16, BALATON Zoltan 写道:
> The superio memory region holds the io space index/data registers used
> to access the superio config registers that are implemented in struct
> SuperIOConfig. To keep these related things together move the memory
> region to SuperIOConfig and rename it accordingly.
> Also remove the unused "data" member of SuperIOConfig which is not
> needed as we store actual data values in the regs array.
>
> Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>

Reviewed-by: Jiaxun Yang <jiaxun.yang@flygoat.com>

> ---
>   hw/isa/vt82c686.c | 16 ++++++++--------
>   1 file changed, 8 insertions(+), 8 deletions(-)
>
> diff --git a/hw/isa/vt82c686.c b/hw/isa/vt82c686.c
> index a6f5a0843d..30fe02f4c6 100644
> --- a/hw/isa/vt82c686.c
> +++ b/hw/isa/vt82c686.c
> @@ -29,12 +29,11 @@
>   typedef struct SuperIOConfig {
>       uint8_t regs[0x100];
>       uint8_t index;
> -    uint8_t data;
> +    MemoryRegion io;
>   } SuperIOConfig;
>   
>   struct VT82C686BISAState {
>       PCIDevice dev;
> -    MemoryRegion superio;
>       SuperIOConfig superio_cfg;
>   };
>   
> @@ -128,8 +127,9 @@ static void vt82c686b_write_config(PCIDevice *d, uint32_t addr,
>   
>       trace_via_isa_write(addr, val, len);
>       pci_default_write_config(d, addr, val, len);
> -    if (addr == 0x85) {  /* enable or disable super IO configure */
> -        memory_region_set_enabled(&s->superio, val & 0x2);
> +    if (addr == 0x85) {
> +        /* BIT(1): enable or disable superio config io ports */
> +        memory_region_set_enabled(&s->superio_cfg.io, val & BIT(1));
>       }
>   }
>   
> @@ -311,15 +311,15 @@ static void vt82c686b_realize(PCIDevice *d, Error **errp)
>           }
>       }
>   
> -    memory_region_init_io(&s->superio, OBJECT(d), &superio_cfg_ops,
> -                          &s->superio_cfg, "superio", 2);
> -    memory_region_set_enabled(&s->superio, false);
> +    memory_region_init_io(&s->superio_cfg.io, OBJECT(d), &superio_cfg_ops,
> +                          &s->superio_cfg, "superio_cfg", 2);
> +    memory_region_set_enabled(&s->superio_cfg.io, false);
>       /*
>        * The floppy also uses 0x3f0 and 0x3f1.
>        * But we do not emulate a floppy, so just set it here.
>        */
>       memory_region_add_subregion(isa_bus->address_space_io, 0x3f0,
> -                                &s->superio);
> +                                &s->superio_cfg.io);
>   }
>   
>   static void via_class_init(ObjectClass *klass, void *data)