STRUCT RPPX1_LSC_PARAMS(9)
πΈ 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 hertypeisRPPX1_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 sizesy_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
- 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