pvr_device_clk_init(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– pvr_device_clk_init(9) πŸ’–

okay so bestie, you're reading the Kernel API Manual page for pvr_device_clk_init, and honestly? It's giving "clock mom friend" energy. Let's get into it πŸŽ€


✨ NAME ✨

pvr_device_clk_init β€” initialize the clocks that a PowerVR device needs to function, no cap πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

int pvr_device_clk_init (struct pvr_device *pvr_dev );

🌸 ARGUMENTS 🌸

  • pvr_dev β€” the target PowerVR device, aka the main character of this whole operation πŸ‘‘

⭐ DESCRIPTION ⭐

So what this does is it sets three whole struct members for you:

  • struct pvr_device->core_clk
  • struct pvr_device->sys_clk
  • struct pvr_device->mem_clk

Three clocks are required by the PowerVR device: core, sys, and mem β€” the holy trinity fr fr πŸ™

On return, this function guarantees that the clocks are in one of these exact states (like, these are the only acceptable outcomes, periodt):

  • All successfully initialized ✨
  • Core errored, sys and mem uninitialized πŸ’€
  • Core deinitialized, sys errored, mem uninitialized, or
  • Core and sys deinitialized, mem errored 😭

πŸ”₯ RETURN πŸ”₯

  • 0 on success πŸŽ‰
  • Any error returned by devm_clk_get, or
  • Any error returned by devm_clk_get_optional

🌈 SEE ALSO 🌈

Kernel file ./drivers/gpu/drm/imagination/pvr_device.c

And the whole friend group, in order because we do not skip anyone:

pvr_device_reg_init(9), pvr_device_process_active_queues(9), pvr_device_irq_init(9), pvr_device_irq_fini(9), pvr_build_firmware_filename(9), pvr_request_firmware(9), pvr_gpuid_decode_reg(9), pvr_gpuid_decode_string(9), enum pvr_gpu_support_level(9), pvr_load_gpu_id(9), pvr_set_dma_info(9), pvr_device_gpu_init(9), pvr_device_gpu_fini(9), pvr_device_init(9), pvr_device_fini(9), pvr_device_has_feature(9)


🫢 tiny reminder: devm_clk_get and devm_clk_get_optional errors get passed straight through, so if something's cooked, that's where the tea is 🍡

πŸ’– mwah, that's the page! πŸ’– This one lives in ./drivers/gpu/drm/imagination (that's the source path, bestie), dated October 2026, and it's filed under pvr_device_clk_init(9) in the Kernel API Manual. Go forth and initialize those clocks πŸ§šβ€β™€οΈβ­

πŸ“¦ where this page comes from