STRUCT OMAP_PRCM_IRQ_SETUP(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– NAME πŸ’–

okay so this is the struct omap_prcm_irq_setup(9) page from the Kernel API Manual, and it's literally the PRCM interrupt controller details struct. Bestie, she's the whole vibe β€” every field matters, no cap. ✨

🌸 SYNOPSIS 🌸

here's the struct in all her exact glory, because we do not play with field names in this group chat:

struct omap_prcm_irq_setup {
    u16 ack;
    u16 mask;
    u16 pm_ctrl;
    u8 nr_regs;
    u8 nr_irqs;
    const struct omap_prcm_irq *irqs;
    int irq;
    void (*read_pending_irqs)(unsigned long *events);
    void (*ocp_barrier)(void);
    void (*save_and_clear_irqen)(u32 *saved_mask);
    void (*restore_irqen)(u32 *saved_mask);
    void (*reconfigure_io_chain)(void);
    u32 *saved_mask;
    u32 *priority_mask;
    int base_irq;
    bool suspended;
    bool suspend_save_flag;
};

πŸ’… Members πŸ’…

okay so here's every single member, zero skipped, because the vibe check is all the details or nothing:

  • ack β€” PRM register offset for the first PRM_IRQSTATUS_MPU register. πŸ’…
  • mask β€” PRM register offset for the first PRM_IRQENABLE_MPU register. ✨
  • pm_ctrl β€” PRM register offset for the PRM_IO_PMCTRL register. πŸŽ€
  • nr_regs β€” number of PRM_IRQ{STATUS,ENABLE}_MPU* registers. πŸ¦‹
  • nr_irqs β€” number of entries in the irqs array. 🌸
  • irqs β€” ptr to an array of PRCM interrupt bits (see nr_irqs). πŸ’–
  • irq β€” MPU IRQ asserted when a PRCM interrupt arrives. πŸ”₯
  • read_pending_irqs β€” fn ptr to determine if any PRCM IRQs are pending. πŸ‘‘
  • ocp_barrier β€” fn ptr to force buffered PRM writes to complete. 🌈
  • save_and_clear_irqen β€” fn ptr to save and clear IRQENABLE regs. ⭐
  • restore_irqen β€” fn ptr to save and clear IRQENABLE regs. πŸ’€
  • reconfigure_io_chain β€” fn ptr to reconfigure IO chain. 🧚
  • saved_mask β€” IRQENABLE regs are saved here during suspend. πŸ“
  • priority_mask β€” 1 bit per IRQ, set to 1 if omap_prcm_irq.priority = true. πŸ™ˆ
  • base_irq β€” base dynamic IRQ number, returned from irq_alloc_descs in init. πŸ’œ
  • suspended β€” set to true after Linux suspend code has called our ->prepare. πŸ¦‹
  • suspend_save_flag β€” set to true after IRQ masks have been saved and disabled. ✨

πŸ¦‹ Description πŸ¦‹

saved_mask, priority_mask, base_irq, suspended, and suspend_save_flag are populated dynamically, and are not to be specified in static initializers. Periodt. Do not put them in your static initializer, bestie β€” they're doing dynamic main character work. 🫢

🌈 SEE ALSO 🌈

Kernel file ./arch/arm/mach-omap2/prcm-common.h omap_test_timeout(9), struct omap_prcm_irq(9), struct omap_prcm_init_data(9). That's the whole squad, no extras. πŸ’œ


mwah πŸ’‹ this page is sourced from ./arch/arm/mach-omap2, dated October 2026, and it's literally struct omap_prcm_irq_setup(9) β€” bye bestie! πŸŽ€

πŸ“¦ where this page comes from