acc_card_interrupt(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸŽ€ acc_card_interrupt(9) β€” Kernel API Manual πŸŽ€

✨ NAME ✨

okay bestie, this one is acc_card_interrupt β€” handle the interrupts of an esdACC FPGA. no cap, that’s the whole name vibe πŸ¦‹

🌸 SYNOPSIS 🌸

irqreturn_t acc_card_interrupt (struct acc_ov *ov , struct acc_core *cores );

πŸŽ€ ARGUMENTS πŸŽ€

  • ov β€” overview module structure. main-character struct energy 🫢
  • cores β€” array of core structures. yes, an array, bestie πŸ’–

πŸ’œ DESCRIPTION πŸ’œ

This function handles all interrupts pending for the overview module and the CAN cores of the esdACC FPGA. it’s giving interrupt central πŸ”₯

For all cores β€” the overview module core and the CAN cores β€” it examines bmfifo.irq_cnt and compares it with the previously saved bmfifo.local_irq_cnt. An IRQ is pending if they differ. The esdACC FPGA updates the bmfifo.irq_cnt values by DMA. slay, DMA is doing the background work ✨

The pending interrupts are masked by writing to the IRQ mask register at ACC_OV_OF_BM_IRQ_MASK. This register has, for each core, a two-bit command field. The source lays it out with the header Define, bit pattern: meaning, and the entries are: 00: no action; ACC_BM_IRQ_UNMASK, 01: unmask interrupt; ACC_BM_IRQ_MASK, 10: mask interrupt; 11: no action. keep those exact constants, iykyk πŸ’…

For each CAN core with a pending IRQ, handle_core_interrupt handles all busmaster messages from the message FIFO. The last handled message (FIFO index) is written to the CAN core to acknowledge its handling. that’s the little receipt, fr fr 🧾

Last step: unmask all interrupts in the FPGA using ACC_BM_IRQ_UNMASK_ALL. iconic finishing move πŸ‘‘

🌈 RETURN 🌈

  • IRQ_HANDLED β€” if the card generated an interrupt that was handled. πŸ’–
  • IRQ_NONE β€” if the interrupt is not ours. not me looking away πŸ™ˆ

πŸ¦‹ SEE ALSO πŸ¦‹

  • Kernel file ./drivers/net/can/esd/esdacc.c β€” go read it, bestie πŸ‘€

Made with πŸ’– from ./drivers/net/can/esd, dated October 2026, and filed under acc_card_interrupt(9). byeee 🫢

πŸ“¦ where this page comes from