All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Cédric Le Goater" <clg@kaod.org>
To: qemu-ppc@nongnu.org, qemu-devel@nongnu.org
Cc: "Peter Maydell" <peter.maydell@linaro.org>,
	"Daniel Henrique Barboza" <danielhb413@gmail.com>,
	"Richard Henderson" <richard.henderson@linaro.org>,
	"Cédric Le Goater" <clg@kaod.org>
Subject: [PULL 27/34] pnv_phb4_pec.c: move pnv_pec_phb_offset() to pnv_phb4.c
Date: Wed, 12 Jan 2022 12:55:44 +0100	[thread overview]
Message-ID: <20220112115551.987666-28-clg@kaod.org> (raw)
In-Reply-To: <20220112115551.987666-1-clg@kaod.org>

From: Daniel Henrique Barboza <danielhb413@gmail.com>

The logic inside pnv_pec_phb_offset() will be useful in the next patch
to determine the stack that should contain a PHB4 device.

Move the function to pnv_phb4.c and make it public since there's no
pnv_phb4_pec.h header. While we're at it, add 'stack_index' as a
parameter and make the function return 'phb-id' directly. And rename it
to pnv_phb4_pec_get_phb_id() to be even clearer about the function
intent.

Reviewed-by: Cédric Le Goater <clg@kaod.org>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Message-Id: <20220110143346.455901-3-danielhb413@gmail.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
 include/hw/pci-host/pnv_phb4.h |  2 ++
 hw/pci-host/pnv_phb4.c         | 17 +++++++++++++++++
 hw/pci-host/pnv_phb4_pec.c     | 15 +--------------
 3 files changed, 20 insertions(+), 14 deletions(-)

diff --git a/include/hw/pci-host/pnv_phb4.h b/include/hw/pci-host/pnv_phb4.h
index 88dc6abb1ca7..5ee996ebc650 100644
--- a/include/hw/pci-host/pnv_phb4.h
+++ b/include/hw/pci-host/pnv_phb4.h
@@ -15,6 +15,7 @@
 #include "hw/ppc/xive.h"
 #include "qom/object.h"
 
+typedef struct PnvPhb4PecState PnvPhb4PecState;
 typedef struct PnvPhb4PecStack PnvPhb4PecStack;
 typedef struct PnvPHB4 PnvPHB4;
 typedef struct PnvChip PnvChip;
@@ -131,6 +132,7 @@ struct PnvPHB4 {
 
 void pnv_phb4_pic_print_info(PnvPHB4 *phb, Monitor *mon);
 void pnv_phb4_update_regions(PnvPhb4PecStack *stack);
+int pnv_phb4_pec_get_phb_id(PnvPhb4PecState *pec, int stack_index);
 extern const MemoryRegionOps pnv_phb4_xscom_ops;
 
 /*
diff --git a/hw/pci-host/pnv_phb4.c b/hw/pci-host/pnv_phb4.c
index 83dedc878a57..2223b985b269 100644
--- a/hw/pci-host/pnv_phb4.c
+++ b/hw/pci-host/pnv_phb4.c
@@ -1069,6 +1069,23 @@ static const TypeInfo pnv_phb4_iommu_memory_region_info = {
     .class_init = pnv_phb4_iommu_memory_region_class_init,
 };
 
+/*
+ * Return the index/phb-id of a PHB4 that belongs to a
+ * pec->stacks[stack_index] stack.
+ */
+int pnv_phb4_pec_get_phb_id(PnvPhb4PecState *pec, int stack_index)
+{
+    PnvPhb4PecClass *pecc = PNV_PHB4_PEC_GET_CLASS(pec);
+    int index = pec->index;
+    int offset = 0;
+
+    while (index--) {
+        offset += pecc->num_stacks[index];
+    }
+
+    return offset + stack_index;
+}
+
 /*
  * MSI/MSIX memory region implementation.
  * The handler handles both MSI and MSIX.
diff --git a/hw/pci-host/pnv_phb4_pec.c b/hw/pci-host/pnv_phb4_pec.c
index f3e4fa0c8297..49360de8c858 100644
--- a/hw/pci-host/pnv_phb4_pec.c
+++ b/hw/pci-host/pnv_phb4_pec.c
@@ -374,19 +374,6 @@ static void pnv_pec_instance_init(Object *obj)
     }
 }
 
-static int pnv_pec_phb_offset(PnvPhb4PecState *pec)
-{
-    PnvPhb4PecClass *pecc = PNV_PHB4_PEC_GET_CLASS(pec);
-    int index = pec->index;
-    int offset = 0;
-
-    while (index--) {
-        offset += pecc->num_stacks[index];
-    }
-
-    return offset;
-}
-
 static void pnv_pec_realize(DeviceState *dev, Error **errp)
 {
     PnvPhb4PecState *pec = PNV_PHB4_PEC(dev);
@@ -405,7 +392,7 @@ static void pnv_pec_realize(DeviceState *dev, Error **errp)
     for (i = 0; i < pec->num_stacks; i++) {
         PnvPhb4PecStack *stack = &pec->stacks[i];
         Object *stk_obj = OBJECT(stack);
-        int phb_id = pnv_pec_phb_offset(pec) + i;
+        int phb_id = pnv_phb4_pec_get_phb_id(pec, i);
 
         object_property_set_int(stk_obj, "stack-no", i, &error_abort);
         object_property_set_int(stk_obj, "phb-id", phb_id, &error_abort);
-- 
2.31.1



  parent reply	other threads:[~2022-01-12 12:57 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-12 11:55 [PULL 00/34] ppc queue Cédric Le Goater
2022-01-12 11:55 ` [PULL 01/34] pseries: Update SLOF firmware image Cédric Le Goater
2022-01-12 11:55 ` [PULL 02/34] target/ppc: Add popcntb instruction to POWER5+ processors Cédric Le Goater
2022-01-12 11:55 ` [PULL 03/34] spapr: Fix support of " Cédric Le Goater
2022-01-12 11:55 ` [PULL 04/34] target/ppc: Add extra float instructions to POWER5P processors Cédric Le Goater
2022-01-12 11:55 ` [PULL 05/34] docs/system/ppc: Merge the PEF information into the pseries page Cédric Le Goater
2022-01-12 11:55 ` [PULL 06/34] MAINTAINERS: Improve the PowerPC machines section Cédric Le Goater
2022-01-12 11:55 ` [PULL 07/34] docs: Clarifications and formatting changes in ppc docs Cédric Le Goater
2022-01-12 11:55 ` [PULL 08/34] target/ppc: powerpc_excp: Extract software TLB logging into a function Cédric Le Goater
2022-01-12 11:55 ` [PULL 09/34] target/ppc: powerpc_excp: Keep 60x/7x5 soft MMU logs active Cédric Le Goater
2022-01-12 11:55 ` [PULL 10/34] target/ppc: powerpc_excp: Group unimplemented exceptions Cédric Le Goater
2022-01-12 11:55 ` [PULL 11/34] target/ppc: Add HV support to ppc_interrupts_little_endian Cédric Le Goater
2022-01-12 11:55 ` [PULL 12/34] target/ppc: Add MSR_ILE " Cédric Le Goater
2022-01-12 11:55 ` [PULL 13/34] target/ppc: Use ppc_interrupts_little_endian in powerpc_excp Cédric Le Goater
2022-01-12 11:55 ` [PULL 14/34] target/ppc: Introduce a wrapper for powerpc_excp Cédric Le Goater
2022-01-12 11:55 ` [PULL 15/34] target/ppc: Set the correct endianness for powernv memory dumps Cédric Le Goater
2022-01-12 11:55 ` [PULL 16/34] pnv_phb3.c: add unique chassis and slot for pnv_phb3_root_port Cédric Le Goater
2022-01-12 11:55 ` [PULL 17/34] pnv_phb4.c: add unique chassis and slot for pnv_phb4_root_port Cédric Le Goater
2022-01-12 11:55 ` [PULL 18/34] ppc/pnv: Attach PHB3 root port device when defaults are enabled Cédric Le Goater
2022-01-12 11:55 ` [PULL 19/34] pnv_phb4.c: make pnv-phb4-root-port user creatable Cédric Le Goater
2022-01-12 11:55 ` [PULL 20/34] pnv_phb4.c: check if root port exists in rc_config functions Cédric Le Goater
2022-01-12 11:55 ` [PULL 21/34] ppc/pnv: Introduce support for user created PHB3 devices Cédric Le Goater
2022-01-12 11:55 ` [PULL 22/34] ppc/pnv: Reparent user created PHB3 devices to the PnvChip Cédric Le Goater
2022-01-12 11:55 ` [PULL 23/34] ppc/pnv: Complete user created PHB3 devices Cédric Le Goater
2022-01-12 11:55 ` [PULL 24/34] ppc/pnv: Move num_phbs under Pnv8Chip Cédric Le Goater
2022-01-12 11:55 ` [PULL 25/34] pnv_phb3.h: change TYPE_PNV_PHB3_ROOT_BUS name Cédric Le Goater
2022-01-12 11:55 ` [PULL 26/34] pnv_phb4.c: change TYPE_PNV_PHB4_ROOT_BUS name Cédric Le Goater
2022-01-12 11:55 ` Cédric Le Goater [this message]
2022-01-12 11:55 ` [PULL 28/34] pnv_phb4_pec: use pnv_phb4_pec_get_phb_id() in pnv_pec_dt_xscom() Cédric Le Goater
2022-01-12 11:55 ` [PULL 29/34] ppc/pnv: set phb4 properties in stk_realize() Cédric Le Goater
2022-01-12 11:55 ` [PULL 30/34] ppc/pnv: move PHB4 XSCOM init to phb4_realize() Cédric Le Goater
2022-01-12 11:55 ` [PULL 31/34] ppc/pnv: turn 'phb' into a pointer in struct PnvPhb4PecStack Cédric Le Goater
2022-01-12 11:55 ` [PULL 32/34] ppc/pnv: Introduce user creatable pnv-phb4 devices Cédric Le Goater
2022-01-12 11:55 ` [PULL 33/34] ppc/pnv: turn pnv_phb4_update_regions() into static Cédric Le Goater
2022-01-12 11:55 ` [PULL 34/34] ppc/pnv: use stack->pci_regs[] in pnv_pec_stk_pci_xscom_write() Cédric Le Goater
2022-01-13 13:59 ` [PULL 00/34] ppc queue Peter Maydell

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=20220112115551.987666-28-clg@kaod.org \
    --to=clg@kaod.org \
    --cc=danielhb413@gmail.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@nongnu.org \
    --cc=richard.henderson@linaro.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.