zpa2326_handle_threaded_irq(9)
π
zpa2326_handle_threaded_irq β Kernel API Manual β¨
okay so bestie, we're diving into zpa2326_handle_threaded_irq(9) from the Kernel API Manual and honestly? she's lowkey the queen of interrupt bottom halves. let's get into it π«Ά
πΈ NAME πΈ
zpa2326_handle_threaded_irq β the interrupt bottom-half handler, aka the girl who shows up after the hard IRQ chaos and actually gets stuff done πββοΈ
β¨ SYNOPSIS β¨
irqreturn_t zpa2326_handle_threaded_irq (int irq , void *data );
π ARGUMENTS π
irqβ the interrupt line the hardware uses to be like "hey bestie, new data just dropped" π₯dataβ the IIO device that's associated with the sampling hardware. that's her emotional support device fr fr
π¦ DESCRIPTION π¦
so what's her actual job? mainly she ensures the interrupt is caused by a real "new sample available" condition β no fake alarms, no catfishing, we verify π
and the way she does this? it relies upon the ability to perform blocking / sleeping bus accesses to the slave's registers. which is the whole reason zpa2326_handle_threaded_irq gets called from within a thread β she is not called from hard interrupt context. she needs her beauty sleep, okay? π΄π
now, two scenarios, two vibes:
scenario one β internal hardware trigger, continuous sampling mode π when the device is using its own internal hardware trigger in continuous sampling mode, data are available into the hardware FIFO once the interrupt has occurred. so all we have to do is dispatch the trigger β which in turn will fetch the data and fill the IIO buffer. easy slay, no notes β¨
scenario two β no internal trigger, one-shot mode π― when the device is not using its own internal hardware trigger, she's been configured in one-shot mode, either by an external trigger or by the IIO read_raw hook. meaning one of the latter is currently waiting for sampling completion β in which case we must simply wake it up. like gently tapping your friend on the shoulder. "girl. it's done. wake up." β
also go look at zpa2326_trigger_handler β she's in the group chat too π¬
π₯ RETURN π₯
IRQ_NONEβ no consistent interrupt happened π nothing real, nothing slayIRQ_HANDLEDβ there was new samples available π we ate
π SEE ALSO π
the whole friend group, no cap:
- Kernel file
./drivers/iio/pressure/zpa2326.c ZPA2326 theory of operations(9)struct zpa2326_frequency(9)struct zpa2326_private(9)zpa2326_enable_device(9)zpa2326_sleep(9)zpa2326_reset_device(9)zpa2326_start_oneshot(9)zpa2326_power_on(9)zpa2326_power_off(9)zpa2326_config_oneshot(9)zpa2326_clear_fifo(9)zpa2326_dequeue_pressure(9)zpa2326_fill_sample_buffer(9)zpa2326_resume(9)zpa2326_suspend(9)zpa2326_handle_irq(9)zpa2326_wait_oneshot_completion(9)zpa2326_poll_oneshot_completion(9)zpa2326_fetch_raw_sample(9)zpa2326_sample_oneshot(9)zpa2326_trigger_handler(9)zpa2326_preenable_buffer(9)zpa2326_postenable_buffer(9)zpa2326_set_trigger_state(9)zpa2326_init_managed_trigger(9)
and that's the whole page bestie!! π§ββοΈ
sign-off time π this one lives in ./drivers/iio/pressure, dated October 2026, and she's filed under zpa2326_handle_threaded_irq(9) β mwah, go read some kernel source, ily, bye ππ
π¦ 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