[PATCH v7 0/5] Enable cameras on Dell Latitude 5285 2-in-1

Thierry Chatard <[email protected]>
Newsgroups org.kernel.vger.platform-driver-x86,org.kernel.vger.linux-kernel,org.kernel.vger.linux-media
Message-ID <[email protected]>
This series enables the front (OV5670/INT3479) and rear (OV8858/INT3477)
cameras on the Dell Latitude 5285 2-in-1 under Linux.

I prepared this v7 at the end of April, then went on vacation in May and
forgot to send it out - apologies for the long gap since the v6 review.
Nothing has changed since then apart from the v6 review fixes listed below.

Per Documentation/process/coding-assistants.rst, and following up on Sakari's
question during the v6 review: this work was developed with significant help
from an AI coding assistant (Claude Code, by Anthropic). I used it to help
reverse-engineer the ACPI/TPS68470 bring-up, iterate on the board data, and
draft these patches. I have reviewed and tested all of it on the actual
hardware and take full responsibility for the result.

Changes since v6 (addressing feedback from Sakari Ailus and Hans de Goede):
- Patch 2: Move board_data lookup and clk_pdata setup to after the
  device-type switch, so they are only reached on the Windows path.
- Patch 5: Revert the supply name reorder (avdd, dvdd, dovdd ->
  avdd, dovdd, dvdd); regulator_bulk_enable() does not guarantee enable
  ordering between supplies, so the reorder had no functional effect.
  Remove the now-stale paragraph from the commit message.

Changes since v5:
- Patch 2: Use a local 'tables' pointer before the gpiod_add/remove_
  lookup_table() loops so that neither call ends with a bare '(' (fixes
  checkpatch CHECK reported by the Media CI robot).
  Also restore the missing VSIO->avdd consumer for INT3479 (OV5670):
  the v4 refactor dropped this entry, leaving OV5670 without its analog
  supply and causing -EIO from ov5670_identify_module().

Changes since v4 (addressing feedback from Sakari Ailus):
- Patch 1: Drop the data == &spt_i2c_info guard from the probe condition;
  the HID (INT3446) + DMI check is already precise enough.
- Patch 2: Revert n_consumers back to int (unsigned int broke the
  if (n_consumers < 0) error check on skl_int3472_fill_clk_pdata());
  restructure probe so ChromeOS and error cases return early from the
  switch and the Windows path follows as straight-line code after it.
- Patch 3: Correct the VIO description in the commit message and code
  comment; drop the inaccurate "no enable register" claim and instead
  document why VIO is kept always_on (voltage must match VSIO, no direct
  consumers).
- Patch 5: Drop the paragraph explaining the VSIO->dovdd mapping from
  the commit message (implementation detail belonging in patch 3);
  add an explanation for the dvdd/dovdd reorder in supply_names (core
  power stable before the I2C passthrough opens).
- Patch 4: Unchanged.

Tested on Ubuntu 25.10 (kernel 6.17.0-22-generic) and Ubuntu 26.04
(kernel 7.0.0-28-generic).  Both cameras working in Zoom, Chrome, and
GNOME Camera via PipeWire.

This approach has also been independently tested on the closely-related Dell
Latitude 5290 2-in-1 (same IPU3/TPS68470/OV5670/OV8858/DW9714 stack) by
Vitalii Tytskyi, who got both cameras working across boot and suspend/resume
with additional 5290 board data, and who separately identified a
hibernate-restore fix for the TPS68470.  Dell 5290 board data and that
hibernate fix can follow as a separate series on top of this one:
  https://github.com/vitovt/dell-5290-camera-kernel/tree/master/patches

Thierry Chatard (5):
  platform/x86: intel_lpss: add resource conflict quirk for Dell Latitude 5285
  platform/x86: int3472: tps68470: fix clock consumer registration for Dell Latitude 5285
  platform/x86: int3472: tps68470: add board data for Dell Latitude 5285
  media: ipu-bridge: add sensor configuration for OV8858 (INT3477)
  media: ov8858: add ACPI device ID INT3477
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.