• David Brownell's avatar
    genirq: record trigger type · 0c5d1eb7
    David Brownell authored
    Genirq hasn't previously recorded the trigger type used by any given IRQ,
    although some irq_chip support has done so.  That data can be useful when
    troubleshooting.  This patch records it in the relevant irq_desc.status
    bits, and improves consistency between the two driver-visible calls
    affected:
    
     - Make set_irq_type() usage match request_irq() usage:
        * IRQ_TYPE_NONE should be a NOP; succeed, so irq_chip methods
          won't have to handle that case any more (many do it wrong).
        * IRQ_TYPE_PROBE is ignored; any buggy out-of-tree callers
          might need to switch over to the real IRQ probing code.
        * emit the same diagnostics (from shared utility code)
    
     - Their kerneldoc now reflects usage:
        * request_irq() flags include IRQF_TRIGGER_* to specify
          active edge(s)/level ... docs previously omitted that
        * set_irq_type() is declared in <linux/irq.h> so callers
          should use the (bit-equivalent) IRQ_TYPE_* symbols there
    
    Also: adds a warning about shared IRQs that don't end up using the
    requested trigger mode; and fix an unrelated "sparse" warning.
    Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Acked-by: default avatarThomas Gleixner <tglx@linutronix.de>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    0c5d1eb7
internals.h 1.82 KB