STRUCT OMAP3ISP_CCDC_LSC_CONFIG(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– struct omap3isp_ccdc_lsc_config(9) πŸ’–

okay so this is a page from the Kernel API Manual and bestie, we're about to get so cozy with the LSC config struct. it's giving "niche kernel header" and honestly? iconic. let's go 🫢


✨ NAME ✨

struct omap3isp_ccdc_lsc_config β€” the LSC configuration, fr fr πŸ’…


🌸 SYNOPSIS 🌸

struct omap3isp_ccdc_lsc_config {
    __u16 offset;
    __u8 gain_mode_n;
    __u8 gain_mode_m;
    __u8 gain_format;
    __u16 fmtsph;
    __u16 fmtlnh;
    __u16 fmtslv;
    __u16 fmtlnv;
    __u8 initial_x;
    __u8 initial_y;
    __u32 size;
 };

look at her. eleven fields, all accounted for, not one of them skipped. we love a complete struct πŸ˜­πŸ’–


πŸ¦‹ Members πŸ¦‹

here's the whole cast, member by member β€” no cap, every single one:

  • offset β€” the table offset of the gain table. where it sits, basically πŸ’«
  • gain_mode_n β€” the vertical dimension of a paxel in the LSC configuration. vertical, bestie. n = north energy πŸ“
  • gain_mode_m β€” the horizontal dimension of a paxel in the LSC configuration. horizontal, matching set with gain_mode_n πŸŽ€
  • gain_format β€” the gain table format. that's the vibe check for your table πŸ’…
  • fmtsph β€” start pixel horizontal, measured from the start of the HS sync pulse 🌈
  • fmtlnh β€” the number of pixels in the horizontal direction to use for the data reformatter ✨
  • fmtslv β€” start line from the start of the VS sync pulse, for the data reformatter πŸ¦‹
  • fmtlnv β€” the number of lines in the vertical direction for the data reformatter 🌸
  • initial_x β€” the X position, in pixels, of the first active pixel in reference to the first active paxel. must be an even number πŸ‘€ (yes, that's a real requirement, don't come for me)
  • initial_y β€” the Y position, in pixels, of the first active pixel in reference to the first active paxel. must be an even number too πŸ™ˆ (even. numbers. only. periodt)
  • size β€” the size of the LSC gain table. it gets filled in when loaded from userspace, so it's a "trust the process" kind of field πŸ’œ
lowkey important: initial_x and initial_y both must be an even number. that's not a suggestion, that's the spec πŸ₯²

πŸ”₯ SEE ALSO πŸ”₯

the whole friend group, gathered for you:

Kernel file ./include/uapi/linux/omap3isp.h struct omap3isp_h3a_aewb_config(9), struct omap3isp_stat_data(9), struct omap3isp_ccdc_bclamp(9), struct omap3isp_ccdc_fpc(9), struct omap3isp_ccdc_blcomp(9), struct omap3isp_prev_hmed(9), struct omap3isp_prev_cfa(9), struct omap3isp_prev_csup(9), struct omap3isp_prev_wbal(9), struct omap3isp_prev_blkadj(9), struct omap3isp_prev_rgbtorgb(9), struct omap3isp_prev_csc(9), struct omap3isp_prev_yclimit(9), struct omap3isp_prev_dcor(9), struct omap3isp_prev_nf(9), struct omap3isp_prev_gtables(9), struct omap3isp_prev_luma(9), struct omap3isp_prev_update_config(9)


and that's the page, bestie πŸŽ€ sign-off time: this one lives in ./include/uapi/linux, and it's dated October 2026 β€” so you know it's fresh. go forth and configure your LSC gain table responsibly. mwah πŸ’‹βœ¨πŸ‘‘

πŸ“¦ where this page comes from