arm: vgic: Split vgic_domain_init() functionality into two functions

Separate the code logic that does the registration of vgic_v3/v2 ops
to a new function domain_vgic_register(). The intention of this
separation is to record the required mmio count in vgic_v3/v2_init()
and pass it to function domain_io_init() in a follow-up patch patch.

Signed-off-by: Shanker Donthineni <shankerd@codeaurora.org>
Reviewed-by: Julien Grall <julien.grall@arm.com>
Acked-by: Stefano Stabellini <sstabellini@kernel.org>
This commit is contained in:
Shanker Donthineni authored and Stefano Stabellini committed 2016-07-14 15:14:43 +01:00
1 parent f4b9488eaa
commit ebc8c6cdeb
1 file changed
+21 -12
+21 -12
View File
@@ -90,19 +90,8 @@ static void vgic_rank_init(struct vgic_irq_rank *rank, uint8_t index,
rank->vcpu[i] = vcpu;
}
int domain_vgic_init(struct domain *d, unsigned int nr_spis)
static int domain_vgic_register(struct domain *d)
{
int i;
int ret;
d->arch.vgic.ctlr = 0;
/* Limit the number of virtual SPIs supported to (1020 - 32) = 988 */
if ( nr_spis > (1020 - NR_LOCAL_IRQS) )
return -EINVAL;
d->arch.vgic.nr_spis = nr_spis;
switch ( d->arch.vgic.version )
{
#ifdef CONFIG_HAS_GICV3
@@ -121,6 +110,26 @@ int domain_vgic_init(struct domain *d, unsigned int nr_spis)
return -ENODEV;
}
return 0;
}
int domain_vgic_init(struct domain *d, unsigned int nr_spis)
{
int i;
int ret;
d->arch.vgic.ctlr = 0;
/* Limit the number of virtual SPIs supported to (1020 - 32) = 988 */
if ( nr_spis > (1020 - NR_LOCAL_IRQS) )
return -EINVAL;
d->arch.vgic.nr_spis = nr_spis;
ret = domain_vgic_register(d);
if ( ret < 0 )
return ret;
spin_lock_init(&d->arch.vgic.lock);
d->arch.vgic.shared_irqs =
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.