Skip to content
Snippets Groups Projects
Commit 6a7f9f6f authored by Philippe Mathieu-Daudé's avatar Philippe Mathieu-Daudé
Browse files

hw/ppc/pnv_xscom: Do not use SysBus API to map local MMIO region


There is no point in exposing an internal MMIO region via
SysBus and directly mapping it in the very same device.

Just map it without using the SysBus API.

Transformation done using the following coccinelle script:

  @@
  expression sbdev;
  expression index;
  expression addr;
  expression subregion;
  @@
  -    sysbus_init_mmio(sbdev, subregion);
       ... when != sbdev
  -    sysbus_mmio_map(sbdev, index, addr);
  +    memory_region_add_subregion(get_system_memory(), addr, subregion);

Signed-off-by: default avatarPhilippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: default avatarRichard Henderson <richard.henderson@linaro.org>
Reviewed-by: default avatarThomas Huth <thuth@redhat.com>
Reviewed-by: default avatarLIU Zhiwei <zhiwei_liu@linux.alibaba.com>
Reviewed-by: default avatarCédric Le Goater <clg@kaod.org>
Message-Id: <20231019131647.19690-5-philmd@linaro.org>
parent e29c4cb0
No related branches found
No related tags found
No related merge requests found
......@@ -223,14 +223,12 @@ const MemoryRegionOps pnv_xscom_ops = {
void pnv_xscom_init(PnvChip *chip, uint64_t size, hwaddr addr)
{
SysBusDevice *sbd = SYS_BUS_DEVICE(chip);
char *name;
name = g_strdup_printf("xscom-%x", chip->chip_id);
memory_region_init_io(&chip->xscom_mmio, OBJECT(chip), &pnv_xscom_ops,
chip, name, size);
sysbus_init_mmio(sbd, &chip->xscom_mmio);
sysbus_mmio_map(sbd, 0, addr);
memory_region_add_subregion(get_system_memory(), addr, &chip->xscom_mmio);
memory_region_init(&chip->xscom, OBJECT(chip), name, size);
address_space_init(&chip->xscom_as, &chip->xscom, name);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment