Thread (77 messages) 77 messages, 11 authors, 2012-07-06
STALE5137d

[PATCH 16/16] ARM: imx: enable SPARSE_IRQ for imx platform

From: Shawn Guo <hidden>
Date: 2012-06-18 15:04:24

On Mon, Jun 18, 2012 at 04:48:53PM +0800, Dong Aisheng wrote:
On Thu, Jun 14, 2012 at 01:59:47PM +0800, Shawn Guo wrote:
quoted
As all irqchips on imx have been changed to allocate their irq_descs,
and all unneeded mach/irqs.h inclusions on imx have been cleaned up,
now it's time to select SPARSE_IRQ for imx/mxc.

The SPARSE_IRQ support forces irqs allocation starting from 16.  All
those static irq number definition for SoCs need to shift 16 to keep
non-DT boot works.
It seems shift 16 is to get the correct linux virt irq, right?
Yes.
If yes, i do not like this approach very much since it's an implicit way
based on users know how legacy irqdomain works internally.
I do not quite follow on this.  Users do not need to know how legacy
irqdomain works internally.  They are still using those static MX*_INT_*
macros.  All they need to know is there is a 16 shift between hardware
irq and Linux irq number when they look at /proc/interrupts.
Ideally i would see we keep the code as before that still using hw irqs
for device resource definition, but convert to linux virt irq in a standard
irqdomain map way when adding devices by calling imx_add_platform_device.
What's the point of hiding this irq number conversion in
imx_add_platform_device?  The irq number used in resource definition
should simply just be Linux irq.  Doing what you suggest here will
only confuse users when they look at /proc/interrupts and those static
IRQ definitions.

BTW, not all the platform_devices are added by calling
imx_add_platform_device on imx.

Regards,
Shawn
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help