STRUCT OMAP_PRCM_IRQ_SETUP(9)
π 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 firstPRM_IRQSTATUS_MPUregister. πmaskβ PRM register offset for the firstPRM_IRQENABLE_MPUregister. β¨pm_ctrlβ PRM register offset for thePRM_IO_PMCTRLregister. πnr_regsβ number ofPRM_IRQ{STATUS,ENABLE}_MPU*registers. π¦nr_irqsβ number of entries in theirqsarray. πΈirqsβ ptr to an array of PRCM interrupt bits (seenr_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 ifomap_prcm_irq.priority = true. πbase_irqβ base dynamic IRQ number, returned fromirq_alloc_descsin 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
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms