On Fri, Feb 07, 2020 at 01:14:37PM +0100, Andrew Jones wrote: > On Tue, Jan 28, 2020 at 11:34:52AM +0100, Eric Auger wrote: > > This helper function controls the signaling of LPIs at > > redistributor level. > > > > Signed-off-by: Eric Auger <eric.auger@xxxxxxxxxx> > > > > --- > > > > v2 -> v3: > > - move the helper in lib/arm/gic-v3.c > > - rename the function with gicv3_lpi_ prefix > > - s/report_abort/assert > > --- > > lib/arm/asm/gic-v3.h | 1 + > > lib/arm/gic-v3.c | 17 +++++++++++++++++ > > 2 files changed, 18 insertions(+) > > > > diff --git a/lib/arm/asm/gic-v3.h b/lib/arm/asm/gic-v3.h > > index ec2a6f0..734c0c0 100644 > > --- a/lib/arm/asm/gic-v3.h > > +++ b/lib/arm/asm/gic-v3.h > > @@ -96,6 +96,7 @@ extern void gicv3_lpi_set_config(int n, u8 val); > > extern u8 gicv3_lpi_get_config(int n); > > extern void gicv3_lpi_set_pending_table_bit(int rdist, int n, bool set); > > extern void gicv3_lpi_alloc_tables(void); > > +extern void gicv3_lpi_rdist_ctrl(u32 redist, bool set); > > > > static inline void gicv3_do_wait_for_rwp(void *base) > > { > > diff --git a/lib/arm/gic-v3.c b/lib/arm/gic-v3.c > > index c33f883..7865d01 100644 > > --- a/lib/arm/gic-v3.c > > +++ b/lib/arm/gic-v3.c > > @@ -210,4 +210,21 @@ void gicv3_lpi_set_pending_table_bit(int rdist, int n, bool set) > > byte &= ~mask; > > *ptr = byte; > > } > > + > > +void gicv3_lpi_rdist_ctrl(u32 redist, bool set) > > _set_clr_ ? No, probably not _set_clr_ here. The function could be static though, with other functions to enable/disable void gicv3_lpi_rdist_enable(redist) { gicv3_lpi_rdist_ctrl(redist, true); } void gicv3_lpi_rdist_disable(redist) { gicv3_lpi_rdist_ctrl(redist, false); } But whatever. > > > +{ > > + void *ptr; > > + u64 val; > > + > > + assert(redist < nr_cpus); > > + > > + ptr = gicv3_data.redist_base[redist]; > > + val = readl(ptr + GICR_CTLR); > > + if (set) > > + val |= GICR_CTLR_ENABLE_LPIS; > > + else > > + val &= ~GICR_CTLR_ENABLE_LPIS; > > + writel(val, ptr + GICR_CTLR); > > +} > > #endif /* __aarch64__ */ > > + > > stray blank line here > > > -- > > 2.20.1 > > > > I'm not sure why this needs its own patch. I could just be part of the > next patch. > > Thanks, > drew >