[PATCH v3 0/3] Add Sony IMX471 camera sensor driver

Kate Hsuan posted 3 patches 2 days, 15 hours ago
MAINTAINERS                          |    6 +
drivers/media/i2c/Kconfig            |   10 +
drivers/media/i2c/Makefile           |    1 +
drivers/media/i2c/imx471.c           | 1010 ++++++++++++++++++++++++++
drivers/media/pci/intel/ipu-bridge.c |   14 +
5 files changed, 1041 insertions(+)
create mode 100644 drivers/media/i2c/imx471.c
[PATCH v3 0/3] Add Sony IMX471 camera sensor driver
Posted by Kate Hsuan 2 days, 15 hours ago
This patchset adds the Sony IMX471 camera sensor driver to the Linux
kernel and resolves the IPU7 camera can't work issueon Lenovo X9
laptops [1].

The patchset contains two patches:
1. Add DMI information of Lenovo X9 to the image upside-down list
2. Add Sony IMX471 image sensor driver

The IMX471 driver can be found in the Intel ipu6-drivers repository [2].
To comply with the sensor driver implementation, the clean-up work
includes:

1. Use CCI register helpers.

2. Enable and disable streams using enable_streams and disable_streams
   functions in struct v4l2_subdev_pad_ops. Invoke
   v4l2_subdev_s_stream_helper() to manage the streaming state.

3. Get rotation information from fwnode properties using
   v4l2_fwnode_device_parse().

4. Finalizes the initialization of the subdev, including allocation of
   the active state using v4l2_subdev_init_finalize().

5. Add the IMX471 driver to the Makefile and Kconfig file.

6. The mutex lock is managed by the V4l2 core.

7. Replace the supported link frequency with v4l2_link_freq_to_bitmap().

8. Drop unused codes.

[1] https://bugzilla.redhat.com/show_bug.cgi?id=2454119
[2] https://github.com/intel/ipu6-drivers/commits/master/drivers/media/i2c/imx471.c

Changes in v3:
1. Naming the register addresses and set up the value with the correct value length.
2. Implement the .get_selection().
3. Drop "identified" field from struct imx471.
4. Drop "streaming" field from struct imx471 and use the __v4l2_ctrl_grab() instead.
5. Moreover, The naming for the register can be found in a seperated patch. If we
   agree with the patch, I will squash it into one patch.

Changes in v2:
1. Change the Bayer format setting according to the vertical and horizontal flip settings.
2. Replace the self-owned mutex with the v4l2 subdev state.
3. Rework the flip control.
4. Manage the regulators using devm_regulator_bulk_get|disable|enbale API
5. Invoke devm_v4l2_sensor_clk_get to get clock-frequency


Kate Hsuan (3):
  media: ipu-bridge: Add DMI information of Lenovo X9 to the image
    upside-down list
  media: i2c: imx471: Add Sony IMX471 image sensor driver
  media: i2c: imx471: Naming the register

 MAINTAINERS                          |    6 +
 drivers/media/i2c/Kconfig            |   10 +
 drivers/media/i2c/Makefile           |    1 +
 drivers/media/i2c/imx471.c           | 1010 ++++++++++++++++++++++++++
 drivers/media/pci/intel/ipu-bridge.c |   14 +
 5 files changed, 1041 insertions(+)
 create mode 100644 drivers/media/i2c/imx471.c

-- 
2.54.0