This series has a few fixes for improving h/v blanking, pixel rate reporting and binning modes for the IMX219 sensor. These patches are picked and modified (and squashed where applicable) from the rpi-6.6.y vendor tree. On top of those changes, this series also updates the minimum line length to fix some issues seen when using analog binning with RAW10 format on higher resolutions (like 1640x1232). Signed-off-by: Jai Luthra <jai.luthra@xxxxxxxxxxxxxxxx> --- Changes in v7: - PATCH 4/5: On Dave's suggestion only update minimum LLP for binned resolutions. Add a comment in code about the ADC limitation with Jacopo's R-By. - PATCH 5/5: No functional change, but drop the get_format_bpp() function and modify the get_binning() function with Jacopo's suggestions - Link to v6: https://lore.kernel.org/r/20250204-imx219_fixes-v6-0-84ffa5030972@xxxxxxxxxxxxxxxx Changes in v6: - PATCH 2/5: Rename REG_FRM_LENGTH to REG_FRM_LENGTH_A, and remove HTS from commit message - PATCH 3/5: Rename REG_LINE_LENGTH to REG_LINE_LENGTH_A, and drop redundant write to the register from the table - Rebase series on v6.14-rc1 - Link to v5: https://lore.kernel.org/r/20241230-imx219_fixes-v5-0-98446d816489@xxxxxxxxxxxxxxxx Changes in v5: - PATCH 2/5: Rename .vts_def to .fll_def - PATCH 4/5: Don't change PLL multipliers, only update the minimum LLP size - PATCH 5/5: Update binned mode comments: s/30fps/60fps - Link to v4: https://lore.kernel.org/r/20241226-imx219_fixes-v4-0-dd28383f06f7@xxxxxxxxxxxxxxxx Changes in v4: - Add PATCH 2/5 to rename VTS to FRM_LENGTH - PATCH 3/5: - Match macro names to datasheet (LINE_LENGTH instead of HTS/PPL) - Improve comments in init_controls() - Use prev_line_len instead of prev_hts - Add PATCH 4/5 to update PLL settings that fix artefacts seen when using analog binning with RAW10 mode - PATCH 5/5: - Use special "analog" binning for all resolutions and bitdepths, simplifying the binning logic - Don't store bin_h/bin_v in imx219 state, instead compute it everytime it is needed using the crop and format. - Link to v3: https://lore.kernel.org/r/20241125-imx219_fixes-v3-0-434fc0b541c8@xxxxxxxxxxxxxxxx Changes in v3: - PATCH 3/3: Calculate binning mode to use instead of hardcoding per-resolution - Link to v2: https://lore.kernel.org/r/20241121-imx219_fixes-v2-0-7b068a60ea40@xxxxxxxxxxxxxxxx Changes in v2: - PATCH 1/3: Add R-By from Jacopo, Dave - PATCH 2/3: - Keep IMX219_PPL_MIN macro value in hex, matching the datasheet - Fix prev_hts calculation, by moving it before updating pad format - PATCH 3/3: - Store binning register values in enum binning_mode directly - Remove unnecessary pixel_rate variable in imx219_init_controls() - Link to v1: https://lore.kernel.org/r/20241029-imx219_fixes-v1-0-b45dc3658b4e@xxxxxxxxxxxxxxxx --- Dave Stevenson (1): media: i2c: imx219: make HBLANK r/w to allow longer exposures David Plowman (1): media: i2c: imx219: Correct the minimum vblanking value Jai Luthra (3): media: i2c: imx219: Rename VTS to FRM_LENGTH media: i2c: imx219: Increase minimum LLP for binned modes media: i2c: imx219: Scale the pixel rate for analog binning drivers/media/i2c/imx219.c | 171 ++++++++++++++++++++++++++++----------------- 1 file changed, 107 insertions(+), 64 deletions(-) --- base-commit: 0ad2507d5d93f39619fc42372c347d6006b64319 change-id: 20241029-imx219_fixes-bfaac4a56200 Best regards, -- Jai Luthra <jai.luthra@xxxxxxxxxxxxxxxx>