STRUCT DPU_DRM_SCALER_V2(9)
π struct dpu_drm_scaler_v2
okay bestie, welcome to the manual page for struct dpu_drm_scaler_v2 β that's the kernel API manual, and this cutie is literally version 2 of struct dpu_drm_scaler. glow-up complete, no cap β¨
π¦ NAME
struct dpu_drm_scaler_v2 β version 2 of struct dpu_drm_scaler, fr fr. this is the sequel and it ate π
β¨ SYNOPSIS
struct dpu_drm_scaler_v2 {
uint32_t enable;
uint32_t dir_en;
struct dpu_drm_pix_ext_v1 pe;
uint32_t horz_decimate;
uint32_t vert_decimate;
int32_t init_phase_x[DPU_MAX_PLANES];
int32_t phase_step_x[DPU_MAX_PLANES];
int32_t init_phase_y[DPU_MAX_PLANES];
int32_t phase_step_y[DPU_MAX_PLANES];
uint32_t preload_x[DPU_MAX_PLANES];
uint32_t preload_y[DPU_MAX_PLANES];
uint32_t src_width[DPU_MAX_PLANES];
uint32_t src_height[DPU_MAX_PLANES];
uint32_t dst_width;
uint32_t dst_height;
uint32_t y_rgb_filter_cfg;
uint32_t uv_filter_cfg;
uint32_t alpha_filter_cfg;
uint32_t blend_cfg;
uint32_t lut_flag;
uint32_t dir_lut_idx;
uint32_t y_rgb_cir_lut_idx;
uint32_t uv_cir_lut_idx;
uint32_t y_rgb_sep_lut_idx;
uint32_t uv_sep_lut_idx;
struct dpu_drm_de_v1 de;
};
like, look at all those fields. she's got range π
πΈ Members
so here's the whole roster, member by member β every single one, because we do not skip anybody in this group chat π«Ά
enableβ Scaler enable. the on/off switch, the vibe check for the whole scaler πdir_enβ Detail enhancer enable. turns the detail enhancer on β¨peβ Pixel extension settings. she's astruct dpu_drm_pix_ext_v1and she's doing her thing πhorz_decimateβ Horizontal decimation factor. horizontal-ness, reduced π¦vert_decimateβ Vertical decimation factor. same energy but vertical, iykykinit_phase_xβ Initial scaler phase values for x. phase one: x πphase_step_xβ Phase step values for x. how x moves, literallyinit_phase_yβ Initial scaler phase values for y. and now y, periodtphase_step_yβ Phase step values for y. y's step era π«preload_xβ Horizontal preload value. preloaded, horizontal, iconicpreload_yβ Vertical preload value. preloaded, vertical, also iconicsrc_widthβ Source width. where it's coming from, width-wise πsrc_heightβ Source height. where it's coming from, height-wisedst_widthβ Destination width. where it's going, width-wisedst_heightβ Destination height. where it's going, height-wisey_rgb_filter_cfgβ Y/RGB plane filter configuration. y/rgb getting its own filter config, as she deserves πuv_filter_cfgβ UV plane filter configuration. uv's turn πalpha_filter_cfgβ Alpha filter configuration. alpha filter, configuredblend_cfgβ Selection of blend coefficients. picking which blend coefficients, very main characterlut_flagβ LUT configuration flags. flags! for the LUT config! π©dir_lut_idxβ 2d 4x4 LUT index. yeah, 2d, 4x4, that oney_rgb_cir_lut_idxβ Y/RGB circular LUT index. circular, y/rgb, indexed πuv_cir_lut_idxβ UV circular LUT index. circular, uv, indexedy_rgb_sep_lut_idxβ Y/RGB separable LUT index. separable this time π¦uv_sep_lut_idxβ UV separable LUT index. separable, uv, final boss of the LUT indicesdeβ Detail enhancer settings. she's astruct dpu_drm_de_v1and she's the last field, going out on a high note π₯
π SEE ALSO
Kernel file ./drivers/gpu/drm/msm/disp/dpu1/dpu_hw_util.h β go read the actual source bestie:
struct dpu_hw_blk(9)struct dpu_hw_scaler3_de_cfg(9)struct dpu_hw_scaler3_cfg(9)struct dpu_drm_pix_ext_v1(9)struct dpu_drm_de_v1(9)struct dpu_hw_qos_cfg(9)
π friendly reminder from your girl: everything above the sign-off is exactly the struct as it lives in ./drivers/gpu/drm/msm/disp/dpu1. don't go renaming fields on me, the compiler will simply pass away.
and that's the page!! source lives at ./drivers/gpu/drm/msm/disp/dpu1, dated October 2026, and yes this whole thing is struct dpu_drm_scaler_v2(9) β mwah, bye bestie ππ¦π
π¦ 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