Skip to content

Commit

Permalink
hw/ppc/pnv_xscom: Do not use SysBus API to map local MMIO region
Browse files Browse the repository at this point in the history
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: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: LIU Zhiwei <zhiwei_liu@linux.alibaba.com>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Message-Id: <20231019131647.19690-5-philmd@linaro.org>
  • Loading branch information
philmd committed Oct 20, 2023
1 parent e29c4cb commit 6a7f9f6
Showing 1 changed file with 1 addition and 3 deletions.
4 changes: 1 addition & 3 deletions hw/ppc/pnv_xscom.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down

0 comments on commit 6a7f9f6

Please sign in to comment.