lkml.org 
[lkml]   [2012]   [Nov]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [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


\
 
 \ /
  Last update: 2012-11-12 21:21    [W:0.554 / U:0.048 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site