mbox series

[v4,00/20] media: i2c: imx219: Miscellaneous cleanups and improvements

Message ID 20230924153309.12423-1-laurent.pinchart@ideasonboard.com
Headers show
Series media: i2c: imx219: Miscellaneous cleanups and improvements | expand

Message

Laurent Pinchart Sept. 24, 2023, 3:32 p.m. UTC
Hello,

This patch series is a collection of miscellaneous cleanups and
improvements to the imx219 driver.

Most notably, the series starts with converting the driver to the new
CCI helpers ([1]) in 01/20. Unlike the IMX290, IMX296, IMX297 and IMX327
that have little-endian register values, this sensor adheres to the CCI
specification, so the conversion was possible. It caused a regression
that I had a bit of trouble tracking though, which showed that merging
conversion to the CCI helpers without testing would be dangerous.

Patch 05/20 fixes what I believe is an issue with the test pattern
generator configuration in 640x480 mode, and should be the only
functional change in the series.

For details about other patches, please see their individual commit
logs. Compared to v3, patch 15/20 has been added, and the series has
been rebased on top of a merge of Sakari's sensors pull request for v6.7
and a v6.6 fixes branch that will appear in v6.6-rc3. This was necessary
as both of those branches contain imx219 changes that conflict with this
series. As a result of the rebase, patch 15/20 from v3 got dropped.

The changes have been tested on a Raspberry Pi 4, with all the modes
supproted by the driver.

[1] https://lore.kernel.org/linux-media/20230627125109.52354-1-hdegoede@redhat.com/

Laurent Pinchart (20):
  media: i2c: imx219: Convert to CCI register access helpers
  media: i2c: imx219: Drop unused macros
  media: i2c: imx219: Replace register addresses with macros
  media: i2c: imx219: Drop IMX219_REG_CSI_LANE_MODE from common regs
    array
  media: i2c: imx219: Fix test pattern window for 640x480 mode
  media: i2c: imx219: Set mode registers programmatically
  media: i2c: imx219: Merge format and binning setting functions
  media: i2c: imx219: Initialize ycbcr_enc
  media: i2c: imx219: Use active crop rectangle to configure registers
  media: i2c: imx219: Infer binning settings from format and crop
  media: i2c: imx219: Access height from active format in
    imx219_set_ctrl
  media: i2c: imx219: Don't store the current mode in the imx219
    structure
  media: i2c: imx219: Drop IMX219_VTS_* macros
  media: i2c: imx219: Group functions by purpose
  media: i2c: imx219: Remove unneeded goto
  media: i2c: imx219: Implement .init_cfg() using .set_fmt()
  media: i2c: imx219: Separate horizontal and vertical binning
  media: i2c: imx219: Calculate crop rectangle dynamically
  media: i2c: imx219: Name all subdev state variables 'state'
  media: i2c: imx219: Move variables to inner scope

 drivers/media/i2c/Kconfig  |    1 +
 drivers/media/i2c/imx219.c | 1467 ++++++++++++++++--------------------
 2 files changed, 643 insertions(+), 825 deletions(-)


base-commit: 76d7b38d896f7bc6c65c4bd053df060f3f3dcb90