itarget registers are GIC version specific. So move
initialization of these registers to vgic-v2 driver.
Signed-off-by: Vijaya Kumar K <Vijaya.Kumar@caviumnetworks.com>
Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Reviewed-by: Julien Grall <julien.grall@linaro.org>
static int vgic_v2_domain_init(struct domain *d)
{
+ int i;
+
+ /* By default deliver to CPU0 */
+ for ( i = 0; i < DOMAIN_NR_RANKS(d); i++ )
+ memset(d->arch.vgic.shared_irqs[i].itargets, 0x1,
+ sizeof(d->arch.vgic.shared_irqs[i].itargets));
+
/* We rely on gicv_setup() to initialize dbase(vGIC distributor base) */
register_mmio_handler(d, &vgic_v2_distr_mmio_handler, d->arch.vgic.dbase,
PAGE_SIZE);
INIT_LIST_HEAD(&d->arch.vgic.pending_irqs[i].lr_queue);
}
for (i=0; i<DOMAIN_NR_RANKS(d); i++)
- {
spin_lock_init(&d->arch.vgic.shared_irqs[i].lock);
- /* By default deliver to CPU0 */
- memset(d->arch.vgic.shared_irqs[i].itargets,
- 0x1,
- sizeof(d->arch.vgic.shared_irqs[i].itargets));
- }
d->arch.vgic.handler->domain_init(d);