ams_unmask_worker(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– NAME πŸ’–

Okay bestie, you're looking at the Kernel API Manual entry for ams_unmask_worker β€” literally the β€œams alarm interrupt unmask worker” ✨

πŸŽ€ SYNOPSIS πŸŽ€

void ams_unmask_worker (struct work_struct *work );

🌸 ARGUMENTS 🌸

  • work β€” the work to be done 🫢

πŸ”₯ DESCRIPTION πŸ”₯

Okay so here's the vibe check: the ZynqMP threshold interrupts are level sensitive πŸ‘€. Since we can't make the threshold condition go away from within the interrupt handler, that means as soon as a threshold condition is present we'd be entering the interrupt handler again and again 😭.

To work around this, we mask all active threshold interrupts in the interrupt handler and start a timer ⏲️. In this timer we poll the interrupt status, and only if the interrupt is inactive do we unmask it again πŸ’….

No cap: the timer checks the interrupt status first, and the unmask only happens when the interrupt is inactive. That's the whole little workaround, periodt.

πŸ¦‹ SEE ALSO πŸ¦‹

  • Kernel file ./drivers/iio/adc/xilinx-ams.c
  • struct ams(9)

That's the page, bestie β€” source/version: ./drivers/iio/adc, dated October 2026 πŸ’–βœ¨

πŸ“¦ where this page comes from