STRUCT DRM_IVPU_PARAM(9)
π struct drm_ivpu_param(9) β the kernel API manual, but make it make sense
okay bestie, so this is a page from the Kernel API Manual about struct drm_ivpu_param, and honestly? it's giving "small struct, big responsibilities." let's get into it π
β¨ NAME β¨
struct drm_ivpu_param β Get/Set VPU parameters. that's it, that's the whole vibe. you use this thing to get (and set) parameters on the VPU. π¦
πΈ SYNOPSIS πΈ
here's the struct, exactly as it lives, no cap:
struct drm_ivpu_param {
__u32 param;
__u32 index;
__u64 value;
};
three fields. tiny. iconic. π
π Members π
the param field π§
okay so param is where you say which parameter you want, and the supported ones are a whole little list. every single one, coming right up:
DRM_IVPU_PARAM_DEVICE_IDβ the PCI Device ID of the VPU device. read-only, so look but don't touch πDRM_IVPU_PARAM_DEVICE_REVISIONβ the VPU device revision. also read-only.DRM_IVPU_PARAM_PLATFORM_TYPEβ returnsDRM_IVPU_PLATFORM_TYPE_SILICONwhen you're on real hardware, or the device-specific platform type when you're executing on a simulator or emulator. read-only, bestie, it's just reporting the tea π«DRM_IVPU_PARAM_CORE_CLOCK_RATEβ the maximum frequency of the NPU data processing unit clock. read-only β°DRM_IVPU_PARAM_NUM_CONTEXTSβ the maximum number of simultaneously existing contexts. read-only.DRM_IVPU_PARAM_CONTEXT_BASE_ADDRESSβ the lowest VPU virtual address available in the current context. read-only.DRM_IVPU_PARAM_CONTEXT_IDβ the current context ID, which is always greater than 0. read-only, and lowkey the main character of context identifiers β¨DRM_IVPU_PARAM_FW_API_VERSIONβ the Firmware API version array. read-only.DRM_IVPU_PARAM_ENGINE_HEARTBEATβ a heartbeat value from an engine, read-only. and this is the fun one: the Engine ID (i.e.DRM_IVPU_ENGINE_COMPUTE) is given viaindex. πDRM_IVPU_PARAM_UNIQUE_INFERENCE_IDβ the device-unique inference ID. read-only. it's literally one of a kind, iykyk πDRM_IVPU_PARAM_TILE_CONFIGβ the VPU tile configuration. read-only. (yes there are two spaces in the original, we respect the formatting π)DRM_IVPU_PARAM_SKUβ the VPU SKU ID. read-only.DRM_IVPU_PARAM_CAPABILITIESβ the supported capabilities. read-only. the whole point of the vibe check π₯DRM_IVPU_PARAM_PREEMPT_BUFFER_SIZEβ the size of the preemption buffer. read-only.
the index field π
index β the index for params that have multiple instances. so when a param isn't a one-off, this is how you say which one you mean. simple as that π¦
the value field β
value β the param value. the payload. the actual data. the whole reason we're here π
π SEE ALSO π
go read these next, bestie, they're all in the family:
- Kernel file
./include/uapi/drm/ivpu_accel.h contexts(9)DRM_IVPU_CAP_METRIC_STREAMER(9)DRM_IVPU_CAP_DMA_MEMORY_RANGE(9)DRM_IVPU_CAP_MANAGE_CMDQ(9)DRM_IVPU_CAP_BO_CREATE_FROM_USERPTR(9)struct drm_ivpu_bo_create(9)struct drm_ivpu_bo_create_from_userptr(9)struct drm_ivpu_bo_info(9)struct drm_ivpu_submit(9)struct drm_ivpu_cmdq_submit(9)struct drm_ivpu_bo_wait(9)struct drm_ivpu_metric_streamer_start(9)struct drm_ivpu_metric_streamer_get_data(9)struct drm_ivpu_cmdq_create(9)struct drm_ivpu_cmdq_destroy(9)struct drm_ivpu_metric_streamer_stop(9)
okay that's the whole page, you ate that π
this came out of ./include/uapi/drm, it's dated October 2026, and it's page struct drm_ivpu_param(9) of the Kernel API Manual β slay, go forth and read your parameters responsibly π«Άβ¨
π¦ 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