mind entropy <mindentropy <at> gmail.com> writes:
Hi,
I am reading through mini2440 code. I am going through the init_irq (http://lxr.free-electrons.com/source/arch/arm/mach-s3c24xx/mach-
mini2440.c#L689)
code. In it (http://lxr.free-electrons.com/source/arch/arm/mach- s3c24xx/irq.c#L446) there is irq_domain_add_legacy(..) which references irq_desc and irq_data. I am not sure where these descriptors are created? In the irq_domain_add_legacy there is a lookup for irq_data from the number. Could someone tell where these descriptors are created?
Thanks.
I think it is statically created here https://github.com/torvalds/linux/blob/master/kernel/irq/irqdesc.c#L243 and the initialization happens in early_irq_init(..) here https://github.com/torvalds/linux/blob/master/kernel/irq/irqdesc.c#L251.
Please correct me if I am wrong.
Thanks.
Within the function definition for irq_domain_add_legacy (), a pointer to the structure irq_data is obtained [$KERN_HOME/kernel/irq/irqdomain.c, L: 232] by returning from function irq_get_irq_data() [$KERN_HOME/kernel/irq/chip.c, L: 147]. Function irq_get_irq_data() in turn retrieves the pointer to corresponding irq_desc structure from array of the same type in $KERN_HOME/kernel/irq/irqdesc.c, L: 243. So, you're correct, IMHO. ~Sarkar