panfrost_lookup_bos(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… panfrost_lookup_bos(9) β€” the kernel API manual, but make it make sense

okay so bestie, welcome to panfrost_lookup_bos(9) from the Kernel API Manual β€” this is literally the function that sets up job->bo[] with the GEM objects that your job is referencing ✨


🌸 NAME 🌸

panfrost_lookup_bos β€” sets up job->bo[] with the GEM objects referenced by the job. that's it, that's the whole vibe πŸŽ€


πŸ¦‹ SYNOPSIS πŸ¦‹

int panfrost_lookup_bos (struct drm_device *dev , struct drm_file
*file_priv , struct drm_panfrost_submit *args , struct panfrost_job *job
);

like… copy it exactly, don't come for me about the line breaks, that's how it's printed πŸ’€


✨ ARGUMENTS ✨

  • dev β€” the DRM device. main character of the whole DRM situation, honestly πŸ‘‘
  • file_priv β€” the DRM file for this fd. it's giving "your specific open file's whole personality" 🫢
  • args β€” the IOCTL args. yes, the actual args from the ioctl, lowkey the reason we're all here
  • job β€” the job being set up. this is the one getting its bo[] filled in, slay πŸ’…

πŸ”₯ DESCRIPTION πŸ”₯

so what does it actually do? it resolves handles from userspace into BOs and attaches them to the job. literally that's the whole job (pun intended, sorry 😭). handles go in, real BOs come out, and they get hooked up to job ✨

πŸŽ€ important caveat bestie: this function does not need to unreference the BOs on failure β€” because that cleanup happens later, at panfrost_job_cleanup time. so like… don't stress about doing it here, it's handled πŸ™ˆ. no cap.

🌈 SEE ALSO 🌈

  • Kernel file ./drivers/gpu/drm/panfrost/panfrost_drv.c β€” go read the source, iykyk πŸ“–
  • panfrost_copy_in_sync(9) β€” its little sibling, go say hi πŸ¦‹

and that's the page!! πŸ’– this one came from ./drivers/gpu/drm/panfrost, version dated October 2026, and it's filed under panfrost_lookup_bos(9) β€” go off, you now know everything about resolving BOs, periodt β­πŸ§šβ€β™€οΈ

πŸ“¦ where this page comes from