On 25/05/2017 12:28, Andrew Jones wrote: > +int gic_init(void) > +{ > + if (gicv2_init()) > + gic_common_ops = &gicv2_common_ops; > + else if (gicv3_init()) > + gic_common_ops = &gicv3_common_ops; > + return gic_version(); > +} > + Of the other uses of gic_version(), this one is the ugliest: if (gic_version() == 2) base = gicv2_dist_base(); else base = gicv3_redist_base(); writel(val, base + GICD_ICACTIVER); Could you change this writel to a new op gicv[23]_eoi or something like that? Thanks, Paolo