STRUCT RPPX1_LSC_PARAMS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 struct rppx1_lsc_params(9) β€” like, the manual page, bestie 🌸

okay so welcome to the Kernel API Manual, page for struct rppx1_lsc_params(9) πŸ’… this is the Lens Shading Correction configuration struct and she is lowkey iconic. grab a snack, we're reading a struct definition together πŸ“


✨ NAME ✨

struct rppx1_lsc_params β€” Lens Shading Correction configuration πŸŽ€


✨ SYNOPSIS ✨

struct rppx1_lsc_params {
    struct v4l2_isp_params_block_header header;
    __u16 r_data[RPPX1_LSC_SAMPLES_MAX][RPPX1_LSC_SAMPLES_MAX];
    __u16 gr_data[RPPX1_LSC_SAMPLES_MAX][RPPX1_LSC_SAMPLES_MAX];
    __u16 gb_data[RPPX1_LSC_SAMPLES_MAX][RPPX1_LSC_SAMPLES_MAX];
    __u16 b_data[RPPX1_LSC_SAMPLES_MAX][RPPX1_LSC_SAMPLES_MAX];
    __u16 x_grad[RPPX1_LSC_NUM_SECTORS];
    __u16 y_grad[RPPX1_LSC_NUM_SECTORS];
    __u16 x_sect_size[RPPX1_LSC_NUM_SECTORS];
    __u16 y_sect_size[RPPX1_LSC_NUM_SECTORS];
 };

no cap, that's the whole thing. now let's meet her members one by one 🫢


🌈 Members 🌈

  • header β€” the block header, and her type is RPPX1_PARAMS_BLOCK_TYPE_LSC (that's literally her whole identity bestie)
  • r_data β€” correction factors for the red channel, in Q2.10 format ❀️
  • gr_data β€” correction factors for the green (red) channel, in Q2.10 format πŸ’š
  • gb_data β€” correction factors for the green (blue) channel, in Q2.10 format πŸ’š
  • b_data β€” correction factors for the blue channel, in Q2.10 format πŸ’™
  • x_grad β€” interpolation gradients for each horizontal sector (12 bits) ✨
  • y_grad β€” interpolation gradients for each vertical sector (12 bits) ✨
  • x_sect_size β€” horizontal sectors sizes
  • y_sect_size β€” vertical sectors sizes

πŸ¦‹ Description πŸ¦‹

so the RPP-X1 Lens shading correction module? she's available on the PRE1 and PRE2 pre-fusion pipes πŸ‘‘ and userspace gets to pick which pipe to operate by setting the header.type field to RPPX1_PARAMS_BLOCK_TYPE_LSC_PRE1 or RPPX1_PARAMS_BLOCK_TYPE_LSC_PRE2. choose your fighter, iykyk πŸ’…

the module applies per-color channel correction factors r_data, gr_data, gb_data and b_data as a 16x16 grid mapped on the image. and the size of each grid segment is expressed by the x_sect_size and y_sect_size arrays πŸ“

🚨 okay important part, don't skip this: each segment shall be at least 8 pixels in size, and the sum of all horizontal segments x_sect_size shall match the input frame size width. fr fr, that's a hard requirement 😭

the correction factors values are expressed as unsigned Q2.10 integers ranging from 1 to 3.999 ⭐

and pre-calculated interpolation factors shall be provided in the x_grad and y_grad fields, expressed as 12 bits integer values ✨


🧚 SEE ALSO 🧚

  • Kernel file ./include/uapi/linux/media/dreamchip/rppx1-config.h (go read the source, bestie, it's giving main character energy)
  • 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)
  • enum rppx1_ga_seg_mode(9)
  • struct rppx1_ga_params(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)

like, that's a whole friend group and every single one of them slays πŸ’œ


alright that's the page!! sign-off time πŸŽ€ this one comes from ./include/uapi/linux/media/dre... and it's dated October 2026, so bookmark it, screenshot it, send it to the group chat β€” periodt πŸ’…βœ¨πŸ¦‹

πŸ“¦ where this page comes from