Re: Ask help about pre_init_apic_IRQ0()

Mika Westerberg
2014-09-11T08:53:09Z

On Thu, Sep 11, 2014 at 04:44:54PM +0800, Jiang Liu wrote:
> Hi Thomas,
>
> When converting IOAPIC to hierarchy irqdomain, I ran into trouble when
> dealing with pre_init_apic_IRQ0(). Currently pre_init_apic_IRQ0() is
> only used by intel-mid platform and is called before initializing of
> IOAPIC irqdomains. That really causes headache when converting to
> hierarchy irqdomain. So could we delay
> io_apic_setup_irq_pin(0, 0, &attr);
> irq_set_chip_and_handler_name(0, &ioapic_chip, handle_edge_irq,
> "edge");
> to the point of "check_timer()"?
>
> I have no MID hardware at handle so can't experiment with it. Could
> you please refer someone for help?

Andy (Cc'd) has some MID boards that he uses almost daily basis. Andy
can you help Jiang here?

>
> /* Enable IOAPIC early just for system timer */
> void __init pre_init_apic_IRQ0(void)
> {
> struct io_apic_irq_attr attr = { 0, 0, 0, 0 };
>
> printk(KERN_INFO "Early APIC setup for system timer0\n");
> #ifndef CONFIG_SMP
> physid_set_mask_of_physid(boot_cpu_physical_apicid,
> &phys_cpu_present_map);
> #endif
> setup_local_APIC();
>
> io_apic_setup_irq_pin(0, 0, &attr);
> irq_set_chip_and_handler_name(0, &ioapic_chip, handle_edge_irq,
> "edge");
> }
>
> Regards!
> Gerry