| From: |
| Kate Hsuan <hpa-AT-redhat.com> |
| To: |
| Mauro Carvalho Chehab <mchehab-AT-kernel.org>, Hans de Goede <johannes.goede-AT-oss.qualcomm.com>, Hans Verkuil <hverkuil+cisco-AT-kernel.org>, Sakari Ailus <sakari.ailus-AT-linux.intel.com>, Serin Yeh <serin.yeh-AT-intel.com> |
| Subject: |
| [PATCH v3 0/3] Add Sony IMX471 camera sensor driver |
| Date: |
| Fri, 22 May 2026 11:11:18 +0800 |
| Message-ID: |
| <20260522031121.11968-1-hpa@redhat.com> |
| Cc: |
| linux-media-AT-vger.kernel.org, linux-kernel-AT-vger.kernel.org, Kate Hsuan <hpa-AT-redhat.com> |
| Archive-link: |
| Article |
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/driv...
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