From: Kate Hsuan <hpa@redhat.com>
To: Mauro Carvalho Chehab <mchehab@kernel.org>,
Hans de Goede <hansg@kernel.org>,
Hans Verkuil <hverkuil+cisco@kernel.org>,
Sakari Ailus <sakari.ailus@linux.intel.com>,
Serin Yeh <serin.yeh@intel.com>,
Tarang Raval <tarang.raval@siliconsignals.io>,
Damjan Georgievski <gdamjan@gmail.com>,
Kieran Bingham <kieran.bingham@ideasonboard.com>
Cc: computman <anis@talbi.fr>,
linux-media@vger.kernel.org, linux-kernel@vger.kernel.org,
"Daniel Scally" <dan.scally@ideasonboard.com>,
"Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>,
platform-driver-x86@vger.kernel.org,
"Kate Hsuan" <hpa@redhat.com>
Subject: [PATCH v6 0/4] Add Sony IMX471 camera sensor driver
Date: Mon, 29 Jun 2026 03:40:22 -0400 [thread overview]
Message-ID: <20260629074026.35490-1-hpa@redhat.com> (raw)
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 v6:
1. Add the con_id "vana" for the power enable to the int3472_gpio_map table.
2. Drop unnecessary macros.
3. Name the registers.
Changes in v5:
1. Add a description for the DMI_BOARD_NAME in the ipu-bridge driver.
2. Check the numbers of MIPI lanes. The driver only support 4 lanes mode.
3. Fix many rumetime PM issues.
4. Drop pixel_rate control variable.
5. Drop unnecessary comments.
6. Name the registers.
7. Fix a leak in imx471_init_controls().
Changes in v4:
1. Add TBE20A0 (found on Lenovo X1 Carbon G14) to the supported sensors list.
2. Revert the sensor upside-down list to v1.
3. Decrease the max analog gain to 800 to mitigate the image flickering problem.
4. Return the error value when __v4l2_ctrl_modify_range() fails.
5. Fix indentation issue in Kconfig.
6. Fix the cci error value issue.
7. Drop unnecessary comments.
8. Drop unused link_freq control variable.
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 (4):
media: ipu-bridge: Add DMI information of Lenovo X9 to the image
upside-down list
media: ipu-bridge: Add Sony IMX471 for Lenovo X1 Carbon G14
platform: int3472: discrete: con_id vana for Sony IMX471 as power
enable
media: i2c: imx471: Add Sony IMX471 image sensor driver
MAINTAINERS | 6 +
drivers/media/i2c/Kconfig | 10 +
drivers/media/i2c/Makefile | 1 +
drivers/media/i2c/imx471.c | 957 ++++++++++++++++++
drivers/media/pci/intel/ipu-bridge.c | 41 +
drivers/platform/x86/intel/int3472/discrete.c | 18 +
6 files changed, 1033 insertions(+)
create mode 100644 drivers/media/i2c/imx471.c
--
2.54.0
next reply other threads:[~2026-06-29 7:41 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-29 7:40 Kate Hsuan [this message]
2026-06-29 7:40 ` [PATCH v6 1/4] media: ipu-bridge: Add DMI information of Lenovo X9 to the image upside-down list Kate Hsuan
2026-06-29 7:40 ` [PATCH v6 2/4] media: ipu-bridge: Add Sony IMX471 for Lenovo X1 Carbon G14 Kate Hsuan
2026-06-29 7:40 ` [PATCH v6 3/4] platform: int3472: discrete: con_id vana for Sony IMX471 as power enable Kate Hsuan
2026-06-30 7:32 ` Tarang Raval
2026-06-30 13:33 ` Hans de Goede
2026-07-01 6:19 ` Tarang Raval
2026-07-01 11:01 ` Hans de Goede
2026-07-01 11:12 ` Sakari Ailus
2026-07-01 12:33 ` Tarang Raval
2026-07-02 18:05 ` Hans de Goede
2026-07-04 19:16 ` Sakari Ailus
2026-07-06 7:16 ` Tarang Raval
2026-07-06 13:05 ` Kate Hsuan
2026-07-08 9:14 ` Sakari Ailus
2026-07-08 12:26 ` Tarang Raval
2026-07-02 18:01 ` Hans de Goede
2026-06-29 7:40 ` [PATCH v6 4/4] media: i2c: imx471: Add Sony IMX471 image sensor driver Kate Hsuan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260629074026.35490-1-hpa@redhat.com \
--to=hpa@redhat.com \
--cc=anis@talbi.fr \
--cc=dan.scally@ideasonboard.com \
--cc=gdamjan@gmail.com \
--cc=hansg@kernel.org \
--cc=hverkuil+cisco@kernel.org \
--cc=ilpo.jarvinen@linux.intel.com \
--cc=kieran.bingham@ideasonboard.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=mchehab@kernel.org \
--cc=platform-driver-x86@vger.kernel.org \
--cc=sakari.ailus@linux.intel.com \
--cc=serin.yeh@intel.com \
--cc=tarang.raval@siliconsignals.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.