STRUCT RPPX1_GA_PARAMS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct rppx1_ga_params(9) πŸ’…

ok so bestie, welcome to the struct rppx1_ga_params(9) page from the Kernel API Manual β€” this is the Gamma Out Correction config glow-up and honestly it's giving main character energy ✨


🌸 NAME 🌸

struct rppx1_ga_params β€” Gamma Out Correction configuration πŸŽ€


✨ SYNOPSIS ✨

struct rppx1_ga_params {
    struct v4l2_isp_params_block_header header;
    __u32 gamma_y[RPPX1_GA_MAX_SAMPLES];
    __u8 mode;
    __u8 reserved[3];
 };

🫢 Members 🫢

  • header β€” the block header, and its type is literally either RPPX1_PARAMS_BLOCK_TYPE_GA_HV or RPPX1_PARAMS_BLOCK_TYPE_GA_MV, no cap πŸ‘‘
  • gamma_y β€” the gamma out curve y-axis values, that's the whole vibe πŸ¦‹
  • mode β€” the gamma curve input segmentation mode (peep rppx1_ga_seg_mode for the deets, iykyk)
  • reserved β€” padding, it's just there to keep things cute and aligned πŸ’…

πŸ’– Description πŸ’–

okay so the Gamma Out Correction module? it exists on both the Human Vision Output Pipe (HV) and the Machine Vision Output Pipe (MV) β€” she's versatile like that. Userspace picks which pipe to operate by setting the header.type field to RPPX1_PARAMS_BLOCK_TYPE_GA_HV or RPPX1_PARAMS_BLOCK_TYPE_GA_MV. pick your fighter, bestie πŸŽ€

This module lets you apply a gamma_y gamma correction curve to RGB data, and the curve is represented as a table of 16 entries. literally 16. those 16 input sampling points can be equidistant, or segmented using a logarithmic scale β€” it all comes down to the value of mode. slay 🌈

The gamma curve values are 12 bits on the HV output pipe and 24 bits on the MV output pipe. so userspace is expected to hand over the curve values with a bit-depth that matches the pipe in use β€” mismatch energy is not it πŸ™ˆ

fr fr, match your bit-depth to your pipe. 12 bits for HV, 24 bits for MV, periodt πŸ’€

πŸ¦‹ SEE ALSO πŸ¦‹

Kernel file ./include/uapi/linux/media/dreamchip/rppx1-config.h

  • struct rppx1_window(9)
  • enum rppx1_meas_chan(9)
  • enum rppx1_params_block_type(9)
  • enum rppx1_wbmeas_mode(9)
  • struct rppx1_wbmeas_params(9)
  • struct rppx1_awbg_params(9)
  • enum rppx1_exm_mode(9)
  • struct rppx1_exm_params(9)
  • enum rppx1_hist_mode(9)
  • struct rppx1_hist_params(9)
  • struct rppx1_bls_fixed(9)
  • enum rppx1_bls_mode(9)
  • enum rppx1_bls_win_en(9)
  • struct rppx1_bls_params(9)
  • struct rppx1_ccor_params(9)
  • struct rppx1_lsc_params(9)
  • enum rppx1_ga_seg_mode(9)
  • struct rppx1_lin_params(9)
  • RPPX1_PARAMS_MAX_SIZE(9)
  • enum rppx1_stats_block_type(9)
  • struct rppx1_wbmeas_stats(9)
  • struct rppx1_exm_stats(9)
  • struct rppx1_hist_stats(9)
  • RPPX1_STATS_MAX_SIZE(9)

and that's the whole page, bestie β€” go read the rest of the squad, they're all linked above πŸ§šπŸ’œ

sign-off szn: this lil masterpiece comes from ./include/uapi/linux/media/dre... and it's dated October 2026 β€” yeah, future vibes only β­πŸ’–

πŸ“¦ where this page comes from