1. NAME

struct_irq_chip_generic - Generic irq chip data structure

2. SYNOPSIS



 
Sélectionnez
struct irq_chip_generic {
  raw_spinlock_t lock;
  void __iomem * reg_base;
  unsigned int irq_base;
  unsigned int irq_cnt;
  u32 mask_cache;
  u32 type_cache;
  u32 polarity_cache;
  u32 wake_enabled;
  u32 wake_active;
  unsigned int num_ct;
  void * private;
  struct list_head list;
  struct irq_chip_type chip_types[0];
};

3. MEMBERS

lock
    Lock to protect register and cache data access

reg_base
    Register base address (virtual)

irq_base
    Interrupt base nr for this chip

irq_cnt
    Number of interrupts handled by this chip

mask_cache
    Cached mask register

type_cache
    Cached type register

polarity_cache
    Cached polarity register

wake_enabled
    Interrupt can wakeup from suspend

wake_active
    Interrupt is marked as an wakeup from suspend source

num_ct
    Number of available irq_chip_type instances (usually 1)

private
    Private data for non generic chip callbacks

list
    List head for keeping track of instances

chip_types[0]
    Array of interrupt irq_chip_types

4. DESCRIPTION

Note, that irq_chip_generic can have multiple irq_chip_type implementations which can be associated to a particular irq line of an irq_chip_generic instance. That allows to share and protect state in an irq_chip_generic instance when we need to implement different flow mechanisms (level/edge) for it.

5. AUTHORS

Thomas Gleixner <>
    Author.

Ingo Molnar <>
    Author.

6. COPYRIGHT