panthor_fw_a...ue_iface_mem(9)
π NAME π
panthor_fw_alloc_queue_iface_mem β bestie, this one allocates a ring-buffer interfaces β¨ (yes that's the official job description and honestly? slay.)
It lives in the Kernel API Manual, section 9 β so it's a kernel-internals girlie, not your everyday userland command. iykyk π
π¦ SYNOPSIS π¦
struct panthor_kernel_bo * panthor_fw_alloc_queue_iface_mem (struct
panthor_device *ptdev , struct panthor_fw_ringbuf_input_iface **input ,
const struct panthor_fw_ringbuf_output_iface **output , u32 *input_fw_va
, u32 *output_fw_va );
Four args, one return type, zero chill. Let's go through them one by one π₯
π ARGUMENTS π
ptdevβ the Device. The whole main character. Everything else is just a pointer into its world πinputβ a Pointer holding the input interface on success. On failure? Should be ignored. like, do not touch, do not perceive, do not speak of it πoutputβ same deal: a Pointer holding the output interface on success, and ignored on failure. fr fr, ignore it.input_fw_vaβ a Pointer holding the input interface FW VA on success. Should be ignored on failure πoutput_fw_vaβ a Pointer holding the output interface FW VA on success. Should be ignored on failure π«Ά
β οΈ Notice how every single one of those says "should be ignored on failure"? That's not a suggestion, bestie. If the call fails, those pointers are not yours to read. Periodt.
β¨ DESCRIPTION β¨
Okay so picture this: the function allocates panthor_fw_ringbuf_{input,out}_iface interfaces. Cute, right? And the layout is extremely specific:
- The input interface sits at offset
0. - The output interface sits at offset
4096.
That's it. That's the whole vibe. Two interfaces, one allocation, offsets locked in like a group chat with read receipts on π
π RETURN π
- A valid pointer β in case of success π
- an
ERR_PTRβ otherwise π
π¨ And yes, if you got anERR_PTRback, you know the drill: don't dereference it,IS_ERR()it first. Theinput,output,input_fw_vaandoutput_fw_vapointers from the previous section are all still in "ignore me" mode.
πΈ SEE ALSO πΈ
Kernel file ./drivers/gpu/drm/panthor/panthor_fw.c β that's the source, go read it, it's giving lore β¨
And the whole friend group:
struct panthor_fw_binary_hdr(9)enum panthor_fw_binary_entry_type(9)struct panthor_fw_binary_section_entry_hdr(9)struct panthor_fw_binary_iter(9)struct panthor_fw_section(9)struct panthor_fw_iface(9)struct panthor_fw(9)panthor_fw_get_glb_iface(9)panthor_fw_get_csg_iface(9)panthor_fw_get_cs_iface(9)panthor_fw_conv_timeout(9)panthor_fw_alloc_suspend_buf_mem(9)iface_fw_to_cpu_addr(9)panthor_fw_pre_reset(9)panthor_fw_post_reset(9)panthor_fw_unplug(9)panthor_fw_wait_acks(9)panthor_fw_glb_wait_acks(9)panthor_fw_csg_wait_acks(9)panthor_fw_ring_csg_doorbells(9)panthor_fw_init(9)
And that's the whole page, bestie π This little gem comes to you courtesy of ./drivers/gpu/drm/panthor, dated October 2026 β like, she's from the future and she's still allocating ring-buffer interfaces. Obsessed. πβ¨
π¦ 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