[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <alpine.LFD.2.02.1211122059101.10000@ionos>
Date: Mon, 12 Nov 2012 21:08:08 +0100 (CET)
From: Thomas Gleixner <tglx@...utronix.de>
To: Vineet Gupta <Vineet.Gupta1@...opsys.com>
cc: linux-arch@...r.kernel.org, linux-kernel@...r.kernel.org,
arnd@...db.de
Subject: Re: [RFC PATCH v1 12/31] ARC: Interrupt Handling
On Wed, 7 Nov 2012, Vineet Gupta wrote:
> +void __init init_IRQ(void)
> +{
> + const int irq = TIMER0_IRQ;
> +
> + /*
> + * Each CPU needs to register irq of it's private TIMER0.
> + * The APIs request_percpu_irq()/enable_percpu_irq() will not be
> + * functional, if we don't "prep" the generic IRQ sub-system with
> + * the following:
> + * -Ensure that devid passed to request_percpu_irq() is indeed per cpu
> + * -disable NOAUTOEN, w/o which the device handler never gets called
What sets NOAUTOEN in the first place? The core code definitely does
not.
> + */
> + irq_set_percpu_devid(irq);
> + irq_modify_status(irq, IRQ_NOAUTOEN, 0);
Aside of that we have irq_clear_status_flags() for this.
> + plat_init_IRQ();
> +}
> +int __init get_hw_config_num_irq(void)
How is that function used ?
> +{
> + uint32_t val = read_aux_reg(ARC_REG_VECBASE_BCR);
> +
> + switch (val & 0x03) {
> + case 0:
> + return 16;
> + case 1:
> + return 32;
> + case 2:
> + return 8;
> + default:
> + return 0;
> + }
> +
> + return 0;
> +}
Thanks,
tglx
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists