STRUCT PVR_FW_DEFS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– NAME πŸ’–

Okay so <pink>struct pvr_fw_defs</pink> is the FW processor function table and static definitions β€” basically the main-character control panel for firmware processor stuff. This page is from the Kernel API Manual, and it's giving "here are the callbacks plus one little bool" energy. Obsessed. 🫢

✨ SYNOPSIS ✨

struct pvr_fw_defs {
    int (*init)(struct pvr_device *pvr_dev);
    void (*fini)(struct pvr_device *pvr_dev);
    int (*fw_process)(struct pvr_device *pvr_dev, const u8 *fw, u8
*fw_code_ptr, u8 *fw_data_ptr, u8 *fw_core_code_ptr, u8
*fw_core_data_ptr, u32 core_code_alloc_size);
    int (*vm_map)(struct pvr_device *pvr_dev, struct pvr_fw_object
*fw_obj);
    void (*vm_unmap)(struct pvr_device *pvr_dev, struct pvr_fw_object
*fw_obj);
    u32 (*get_fw_addr_with_offset)(struct pvr_fw_object *fw_obj, u32
offset);
    int (*wrapper_init)(struct pvr_device *pvr_dev);
    bool (*irq_pending)(struct pvr_device *pvr_dev);
    void (*irq_clear)(struct pvr_device *pvr_dev);
    bool has_fixed_data_addr;
};

πŸŽ€ Members πŸŽ€

  • init β€” FW processor specific initialisation. pvr_dev: Target PowerVR device. This function must call pvr_fw_heap_calculate to initialise the firmware heap for this FW processor. This function is mandatory. Returns:
    • 0 on success, or
    • Any appropriate error on failure.
  • fini β€” FW processor specific finalisation. pvr_dev: Target PowerVR device. This function is optional.
  • fw_process β€” Load and process firmware image. pvr_dev: Target PowerVR device. fw: Pointer to firmware image. fw_code_ptr: Pointer to firmware code section. fw_data_ptr: Pointer to firmware data section. fw_core_code_ptr: Pointer to firmware core code section. May be NULL. fw_core_data_ptr: Pointer to firmware core data section. May be NULL. core_code_alloc_size: Total allocation size of core code section. This function is mandatory. Returns:
    • 0 on success, or
    • Any appropriate error on failure.
  • vm_map β€” Map FW object into FW processor address space. pvr_dev: Target PowerVR device. fw_obj: FW object to map. This function is mandatory. Returns:
    • 0 on success, or
    • Any appropriate error on failure.
  • vm_unmap β€” Unmap FW object from FW processor address space. pvr_dev: Target PowerVR device. fw_obj: FW object to map. This function is mandatory.
  • get_fw_addr_with_offset β€” Called to get address of object in firmware address space, with offset. fw_obj: Pointer to object. offset: Desired offset from start of object. This function is mandatory. Returns:
    • Address in firmware address space.
  • wrapper_init β€” Called to initialise FW wrapper. pvr_dev: Target PowerVR device. This function is mandatory. Returns:
    • 0 on success.
    • Any appropriate error on failure.
  • irq_pending β€” Check interrupt status register for pending interrupts. pvr_dev: Target PowerVR device. This function is mandatory.
  • irq_clear β€” Clear pending interrupts. pvr_dev: Target PowerVR device. This function is mandatory.
  • has_fixed_data_addr β€” Specify whether the firmware fixed data must be loaded at the address given by the firmware layout table. This value is mandatory.

🌈 SEE ALSO 🌈

Kernel file ./drivers/gpu/drm/imagination/pvr_fw.h struct pvr_fw_object(9), struct pvr_fw_mem(9), pvr_fw_object_get_dma_addr(9).


Okay bestie, that's the whole page πŸ’… This icon's source/version is ./drivers/gpu/drm/imagination, and it's dated October 2026 for struct pvr_fw_defs(9). Mwah! 🫢✨

πŸ“¦ where this page comes from