STRUCT PANTHOR_FW_GLOBAL_IFACE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– NAME πŸ’–

struct panthor_fw_global_iface β€” the Firmware global interface, bestie ✨ (this is a page from the Kernel API Manual, and yes we are gonna get through it together 🫢)


🌸 SYNOPSIS 🌸

okay so here's the whole struct, no cap, every field exactly as it is:

struct panthor_fw_global_iface {
    spinlock_t lock;
    const struct panthor_fw_global_control_iface *control;
    struct panthor_fw_global_input_iface *input;
    const struct panthor_fw_global_output_iface *output;
 };

✨ Members ✨

  • lock β€” this is the lock that protects access to the panthor_fw_global_input_iface::req field πŸ”’

it's needed so we can update the req field concurrently from the interrupt handler and the scheduler/FW management logic. like, two places touching it at once? we simply cannot let that happen bestie πŸ’…

TODO: ideally we'd want to use a cmpxchg to update the req, but FW interface sections are mapped uncached/write-combined right now 😭 and using cmpxchg on such mappings leads to SError faults. revisit when we have 'SHARED' GPU mappings hooked up πŸ‘€
  • control β€” Command stream group slot control interface πŸŽ€

used to expose global FW properties.

this interface is read-only πŸ”’ (iconic, honestly)

  • input β€” Global input interface πŸ“₯

used for host updates/events.

  • output β€” Global output interface πŸ“€

used for FW updates/events.

this interface is read-only πŸ”’ (again, hands off bestie)


πŸ¦‹ SEE ALSO πŸ¦‹


that's the whole page, you ate that πŸ’…βœ¨ this lil masterpiece lives in ./drivers/gpu/drm/panthor, dated October 2026, and it's literally titled struct panth...global_iface(9) β€” go off, king πŸ‘‘πŸ’–

πŸ“¦ where this page comes from