STRUCT C3_ISP_PARAMS_CSC(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

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

okay so bestie, welcome to the Kernel API Manual ✨ this one's all about struct c3_isp_params_csc β€” your little glow-up kit for telling the C3 ISP how to do Color Space Conversion. no cap, it's giving "small struct, big color energy" 🌈


🌸 NAME 🌸

struct c3_isp_params_csc β€” ISP Color Space Conversion configuration πŸŽ¨πŸ’–


✨ SYNOPSIS ✨

like, here's the whole shape of it, literally:

struct c3_isp_params_csc {
    struct c3_isp_params_block_header header;
    __s16 matrix[3][3];
    __u16 reserved[3];
 };

πŸŽ€ Members πŸŽ€

  • header β€” the C3 ISP parameters block header πŸ‘‘ it's the vibe check every block has to pass first.
  • matrix β€” a 3x3 matrix used for the color space conversion, and bestie listen: the value of matrix[x][y] is orig_value x 256. the range is [-4096..4095] πŸ“βœ¨
  • reserved β€” applications must zero this array πŸ™ˆ fr fr, zero it. don't be out here leaving mystery bytes, that's not the move.

πŸ’€ Description πŸ’€

so this struct is literally the whole point of the page πŸ’… it lets you configure the matrix for color space conversion. the matrix consists of 3 x 3 points, so you need to set matrix[3][3] β€” all nine of them, no skipping, we're not doing partial grids in this house 🫢

and don't forget the main character detail: header.type should be set to C3_ISP_PARAMS_BLOCK_CSC from :c:type:c3_isp_params_block_type`` ⭐ like, that's how anyone knows what this block even is. iykyk.

lowkey important: if you skip the header.type assignment, your block is just sitting there with no identity. not iconic. set it. 🎯

πŸ¦‹ SEE ALSO πŸ¦‹

all the siblings in the Kernel file ./include/uapi/linux/media/amlogic/c3-isp-config.h β€” go say hi, they're all part of the same friend group πŸ’œ

  • struct c3_isp_awb_zone_stats(9)
  • struct c3_isp_awb_stats(9)
  • struct c3_isp_ae_zone_stats(9)
  • struct c3_isp_ae_stats(9)
  • struct c3_isp_af_zone_stats(9)
  • struct c3_isp_af_stats(9)
  • struct c3_isp_stats_info(9)
  • enum c3_isp_params_buffer_version(9)
  • enum c3_isp_params_block_type(9)
  • c3_isp_params_block_header(9)
  • struct c3_isp_params_awb_gains(9)
  • enum c3_isp_params_awb_tap_points(9)
  • struct c3_isp_params_awb_config(9)
  • enum c3_isp_params_ae_tap_points(9)
  • struct c3_isp_params_ae_config(9)
  • enum c3_isp_params_af_tap_points(9)
  • struct c3_isp_params_af_config(9)
  • struct c3_isp_params_pst_gamma(9)
  • struct c3_isp_params_ccm(9)
  • struct c3_isp_params_blc(9)
  • C3_ISP_PARAMS_MAX_SIZE(9)
  • struct c3_isp_params_cfg(9)

and that's the page, bestie πŸ“ before you go β€” source file is ./include/uapi/linux/media/aml... (they truncated it on us 😭 go look it up in the tree), dated October 2026, and the whole thing lives under struct c3_isp_params_csc(9). slay, you read the whole thing, proud of you πŸ§šπŸ’– periodt.

πŸ“¦ where this page comes from