Beispiel #1
0
void __init gic_init(unsigned long gic_base_addr,
             unsigned long gic_addrspace_size,
             struct gic_intr_map *intr_map, unsigned int intr_map_size,
             unsigned int irqbase)
{
    unsigned int gicconfig;

    _gic_base = (unsigned long) ioremap_nocache(gic_base_addr,
                            gic_addrspace_size);
    _irqbase = irqbase;
    _intrmap = intr_map;
    _mapsize = intr_map_size;

    GICREAD(GIC_REG(SHARED, GIC_SH_CONFIG), gicconfig);
    numintrs = (gicconfig & GIC_SH_CONFIG_NUMINTRS_MSK) >>
           GIC_SH_CONFIG_NUMINTRS_SHF;
    numintrs = ((numintrs + 1) * 8);

    numvpes = (gicconfig & GIC_SH_CONFIG_NUMVPES_MSK) >>
          GIC_SH_CONFIG_NUMVPES_SHF;

    pr_debug("%s called\n", __func__);

    gic_basic_init();
}
Beispiel #2
0
void __init gic_init(unsigned long gic_base_addr,
		     unsigned long gic_addrspace_size,
		     struct gic_intr_map *intr_map, unsigned int intr_map_size,
		     unsigned int irqbase)
{
	unsigned int gicconfig;
	int numvpes, numintrs;

	_gic_base = (unsigned long) ioremap_nocache(gic_base_addr,
						    gic_addrspace_size);
	_irqbase = irqbase;

	GICREAD(GIC_REG(SHARED, GIC_SH_CONFIG), gicconfig);
	numintrs = (gicconfig & GIC_SH_CONFIG_NUMINTRS_MSK) >>
		   GIC_SH_CONFIG_NUMINTRS_SHF;
	numintrs = ((numintrs + 1) * 8);

	numvpes = (gicconfig & GIC_SH_CONFIG_NUMVPES_MSK) >>
		  GIC_SH_CONFIG_NUMVPES_SHF;
#ifdef CONFIG_RALINK_SOC
	numvpes = numvpes + 1;
#endif

	pr_debug("%s called\n", __func__);

	gic_basic_init(numintrs, numvpes, intr_map, intr_map_size);
}