[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v2 1/7] xen/arm: gic: Make it clear the GIC node is passed to make_hwdom_dt_node
The callback make_hwdom_dt_node already has the GIC node in parameter. Rather than using a weird mix between "dt_interrupt_controller" (aliased to "gic") and "node", rename the callback parameter "node" to "gic" and remove local GIC definitions in terms of the global dt_interrupt_interrupt_controller. Also, add an assert to gic_make_hwdom_dt_node to check that the GIC really is the global dt_interrupt_controller. Signed-off-by: Julien Grall <julien.grall@xxxxxxxxxx> Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx> --- Changes in v2: - Fix typoes - Improved commit message based on Ian suggestion - Add Ian's acked-by. --- xen/arch/arm/gic-hip04.c | 5 ++--- xen/arch/arm/gic-v2.c | 5 ++--- xen/arch/arm/gic-v3.c | 9 ++++----- xen/arch/arm/gic.c | 6 ++++-- xen/include/asm-arm/gic.h | 5 +++-- 5 files changed, 15 insertions(+), 15 deletions(-) diff --git a/xen/arch/arm/gic-hip04.c b/xen/arch/arm/gic-hip04.c index c5ed545..e8cdcd4 100644 --- a/xen/arch/arm/gic-hip04.c +++ b/xen/arch/arm/gic-hip04.c @@ -562,10 +562,9 @@ static void hip04gic_irq_set_affinity(struct irq_desc *desc, const cpumask_t *cp } static int hip04gic_make_hwdom_dt_node(const struct domain *d, - const struct dt_device_node *node, + const struct dt_device_node *gic, void *fdt) { - const struct dt_device_node *gic = dt_interrupt_controller; const void *compatible; u32 len; const __be32 *regs; @@ -598,7 +597,7 @@ static int hip04gic_make_hwdom_dt_node(const struct domain *d, return -FDT_ERR_XEN(ENOENT); } - len = dt_cells_to_size(dt_n_addr_cells(node) + dt_n_size_cells(node)); + len = dt_cells_to_size(dt_n_addr_cells(gic) + dt_n_size_cells(gic)); len *= 2; res = fdt_property(fdt, "reg", regs, len); diff --git a/xen/arch/arm/gic-v2.c b/xen/arch/arm/gic-v2.c index 596126d..5841e59 100644 --- a/xen/arch/arm/gic-v2.c +++ b/xen/arch/arm/gic-v2.c @@ -552,10 +552,9 @@ static void gicv2_irq_set_affinity(struct irq_desc *desc, const cpumask_t *cpu_m } static int gicv2_make_hwdom_dt_node(const struct domain *d, - const struct dt_device_node *node, + const struct dt_device_node *gic, void *fdt) { - const struct dt_device_node *gic = dt_interrupt_controller; const void *compatible = NULL; u32 len; const __be32 *regs; @@ -584,7 +583,7 @@ static int gicv2_make_hwdom_dt_node(const struct domain *d, return -FDT_ERR_XEN(ENOENT); } - len = dt_cells_to_size(dt_n_addr_cells(node) + dt_n_size_cells(node)); + len = dt_cells_to_size(dt_n_addr_cells(gic) + dt_n_size_cells(gic)); len *= 2; res = fdt_property(fdt, "reg", regs, len); diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c index 1e3c19b..957c6e0 100644 --- a/xen/arch/arm/gic-v3.c +++ b/xen/arch/arm/gic-v3.c @@ -1054,10 +1054,9 @@ static void gicv3_irq_set_affinity(struct irq_desc *desc, const cpumask_t *mask) } static int gicv3_make_hwdom_dt_node(const struct domain *d, - const struct dt_device_node *node, + const struct dt_device_node *gic, void *fdt) { - const struct dt_device_node *gic = dt_interrupt_controller; const void *compatible = NULL; uint32_t len; __be32 *new_cells, *tmp; @@ -1084,7 +1083,7 @@ static int gicv3_make_hwdom_dt_node(const struct domain *d, if ( res ) return res; - len = dt_cells_to_size(dt_n_addr_cells(node) + dt_n_size_cells(node)); + len = dt_cells_to_size(dt_n_addr_cells(gic) + dt_n_size_cells(gic)); /* * GIC has two memory regions: Distributor + rdist regions * CPU interface and virtual cpu interfaces accessesed as System registers @@ -1097,10 +1096,10 @@ static int gicv3_make_hwdom_dt_node(const struct domain *d, tmp = new_cells; - dt_set_range(&tmp, node, d->arch.vgic.dbase, SZ_64K); + dt_set_range(&tmp, gic, d->arch.vgic.dbase, SZ_64K); for ( i = 0; i < d->arch.vgic.nr_regions; i++ ) - dt_set_range(&tmp, node, d->arch.vgic.rdist_regions[i].base, + dt_set_range(&tmp, gic, d->arch.vgic.rdist_regions[i].base, d->arch.vgic.rdist_regions[i].size); res = fdt_property(fdt, "reg", new_cells, len); diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c index 1757193..1e1e5ba 100644 --- a/xen/arch/arm/gic.c +++ b/xen/arch/arm/gic.c @@ -702,10 +702,12 @@ void __cpuinit init_maintenance_interrupt(void) } int gic_make_hwdom_dt_node(const struct domain *d, - const struct dt_device_node *node, + const struct dt_device_node *gic, void *fdt) { - return gic_hw_ops->make_hwdom_dt_node(d, node, fdt); + ASSERT(gic == dt_interrupt_controller); + + return gic_hw_ops->make_hwdom_dt_node(d, gic, fdt); } /* diff --git a/xen/include/asm-arm/gic.h b/xen/include/asm-arm/gic.h index d343abf..6d53f97 100644 --- a/xen/include/asm-arm/gic.h +++ b/xen/include/asm-arm/gic.h @@ -350,13 +350,14 @@ struct gic_hw_operations { unsigned int (*read_apr)(int apr_reg); /* Secondary CPU init */ int (*secondary_init)(void); + /* Create GIC node for the hardware domain */ int (*make_hwdom_dt_node)(const struct domain *d, - const struct dt_device_node *node, void *fdt); + const struct dt_device_node *gic, void *fdt); }; void register_gic_ops(const struct gic_hw_operations *ops); int gic_make_hwdom_dt_node(const struct domain *d, - const struct dt_device_node *node, + const struct dt_device_node *gic, void *fdt); #endif /* __ASSEMBLY__ */ -- 2.1.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |