panthor_fw_toggle_reqs(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… panthor_fw_toggle_reqs(9) β€” like, the Kernel API Manual page, bestie πŸŽ€

okay so bestie, pull up a chair, we're reading a kernel API manual page today (that's the manual name, Kernel API Manual, slay) and honestly this one is a whole little vibe. it's all about poking bits so the firmware notices you. let's go ✨


🌸 NAME 🌸

panthor_fw_toggle_reqs β€” toggles acknowledge bits to send an event to the FW. that's it, that's the whole job. iconic behaviour, tbh πŸ’…


✨ SYNOPSIS ✨

panthor_fw_toggle_reqs (__iface , __in_reg , __out_reg , __mask );

she takes four things and she takes them very seriously. no cap.


🫢 ARGUMENTS 🫢

  • __iface β€” the interface you're operating on. the one we're doing bits in πŸ’–
  • __in_reg β€” name of the register to update in the input section of the interface.
  • __out_reg β€” name of the register to take as a reference in the output section of the interface. yes, she's the reference, she's the moment.
  • __mask β€” the mask to apply to the update. be normal about it.

πŸ’€ DESCRIPTION πŸ’€

okay so here's the lore πŸ”₯ the Host -> FW event/message passing was designed to be lockless, with each side of the channel having its own writable section. no fighting over the same pen, love that for them πŸ¦‹

events get signaled as a difference between the host side and the FW side in the req/ack registers. when a bit differs β†’ there's an event pending πŸ‘€. when they're the same β†’ nothing needs attention, carry on, nothing to see here πŸ’€

this helper lets you update the req register based on the current value of the ack register managed by the FW. toggling a specific bit will flag an event ⭐

⚠️ important bestie: in order for events to be re-evaluated, the interface doorbell needs to be rung. like, you gotta ring it. no ringing, no re-evaluation. that's the rule πŸŽ€

Concurrent accesses to the same req register is covered. βœ… (she's handled, we're fine, don't spiral)

Anything requiring atomic updates to multiple registers requires a dedicated lock. πŸ”’ so if you're doing multi-register atomic stuff, get yourself a lock, don't be out here raw-dogging it, i'm begging πŸ™ˆ


πŸ‘‘ SEE ALSO πŸ‘‘

  • kernel file ./drivers/gpu/drm/panthor/panthor_fw.h
  • struct panthor_fw_cs_iface(9)
  • struct panthor_fw_csg_iface(9)
  • struct panthor_fw_global_iface(9)
  • panthor_fw_update_reqs(9)

they're all in the group chat, go say hi 🌈


k bye bestie, this page came to you straight from ./drivers/gpu/drm/panthor, dated October 2026, version vibes immaculate, panthor_fw_toggle_reqs(9) 4ever πŸ’œπŸ«ΆπŸŒΈ

πŸ“¦ where this page comes from