Hello, this series adds a few features to the ar0521 driver to enable its usage with libcamera. In particular: - enum_frame_sizes - global analog gain control - LINK_FREQ - Rework blanking handligs v3 (Dave) - Check __v4l2_ctrl_modify_range() return value - Make LINK_FREQ readonly to avoid additional churn in s_ctrl - Fix trivial early return in s_ctrl - Use exposure's default value when modifying the controls' limits - Change the exposure default to 0x70 to match the register default value v2: - I have dropped the most controverse part that allows to change the link frequency to obtain 60FPS. It can be eventually be applied on top. - Use register 0x3028 to control analog gain not to overwrite the global digital gain. - Fix the HBLANK/VBLANK max by using the values read from on-chip registers. - Fix handling of LINK_FREQ in s_cltr (but do not make the control read only). - Fix errors reported by 0-days: - use do_div() for 64-bit division - declare variables in function scope and not in case scope in s_ctrl Jacopo Mondi (10): media: ar0521: Implement enum_frame_sizes media: ar0521: Add V4L2_CID_ANALOG_GAIN media: ar0521: Set maximum resolution to 2592x1944 media: ar0521: Rework PLL computation media: ar0521: Refuse unsupported controls media: ar0521: Add LINK_FREQ control media: ar0521: Adjust exposure and blankings limits media: ar0521: Setup controls at s_stream time media: ar0521: Rework startup sequence media: ar0521: Tab-align definitions drivers/media/i2c/ar0521.c | 352 ++++++++++++++++++++++++++----------- 1 file changed, 250 insertions(+), 102 deletions(-) -- 2.38.1