[PATCH v8 0/6] Enable cameras on Dell Latitude 5285 2-in-1

Thierry Chatard posted 6 patches 1 month ago
There is a newer version of this series
[PATCH v8 0/6] Enable cameras on Dell Latitude 5285 2-in-1
Posted by Thierry Chatard 1 month ago
This series enables the front (OV5670/INT3479) and rear (OV8858/INT3477)
cameras on the Dell Latitude 5285 2-in-1 under Linux.

Per Documentation/process/coding-assistants.rst: 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.

The series spans two trees: patches 1-4 target platform-drivers-x86 and
patches 5-6 target linux-media. All six are needed for a working system.

Changes since v7 (addressing Andy Shevchenko's review):
- Patch 1 (intel_lpss): rework the quirk to be data-driven. Match the
  machine by DMI and the device (INT3446) by ACPI ID, carry
  QUIRK_IGNORE_RESOURCE_CONFLICTS in the ACPI match data, and apply it to
  the per-device info in probe, mirroring the PCI counterpart. Drop the
  duplicate spt_i2c_info_ignore_conflicts struct and the machine-specific
  dev_info(). Fix the include ordering.
- New patch 2 (int3472: tps68470): split the int -> unsigned int loop
  counter change out of the clock-consumer patch into its own cleanup.
- Patch 3 (int3472: tps68470, was patch 2): trim the commit message; no
  code change beyond the counter split above.
- Patch 6 (ov8858, was patch 5): use a C99 initialiser for the ACPI match
  entry and drop the comma after the sentinel.

On the open question from the review: I kept the per-table
gpiod_add_lookup_table() loop rather than switching to
gpiod_add_lookup_tables(). There is no gpiod_remove_lookup_tables()
counterpart for the error-unwind path, the board data uses a counted (not
NULL-terminated) array, and the singular form is what the rest of the tree
uses, including int3472/discrete.c.

Earlier changelogs (v2-v7) are in the v7 posting:
  https://lore.kernel.org/all/20260819140107.1329091-1-tchatard@gmail.com/

Tested on Ubuntu 25.10 (kernel 6.17.0-22-generic) and Ubuntu 26.04
(kernel 7.0.0-30-generic). Both cameras working in Zoom, Chrome, and GNOME
Camera via PipeWire. Also independently tested on the closely-related Dell
Latitude 5290 2-in-1 (same IPU3/TPS68470/OV5670/OV8858/DW9714 stack) by
Vitalii Tytskyi:
  https://github.com/vitovt/dell-5290-camera-kernel/tree/master/patches

Thierry Chatard (6):
  platform/x86: intel_lpss: add resource conflict quirk for Dell Latitude 5285
  platform/x86: int3472: tps68470: use unsigned int for GPIO lookup loop counters
  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
Re: [PATCH v8 0/6] Enable cameras on Dell Latitude 5285 2-in-1
Posted by Lee Jones 1 month ago
On Wed, 26 Aug 2026, Thierry Chatard wrote:

> This series enables the front (OV5670/INT3479) and rear (OV8858/INT3477)
> cameras on the Dell Latitude 5285 2-in-1 under Linux.
> 
> Per Documentation/process/coding-assistants.rst: 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.
> 
> The series spans two trees: patches 1-4 target platform-drivers-x86 and
> patches 5-6 target linux-media. All six are needed for a working system.
> 
> Changes since v7 (addressing Andy Shevchenko's review):
> - Patch 1 (intel_lpss): rework the quirk to be data-driven. Match the
>   machine by DMI and the device (INT3446) by ACPI ID, carry
>   QUIRK_IGNORE_RESOURCE_CONFLICTS in the ACPI match data, and apply it to
>   the per-device info in probe, mirroring the PCI counterpart. Drop the
>   duplicate spt_i2c_info_ignore_conflicts struct and the machine-specific
>   dev_info(). Fix the include ordering.
> - New patch 2 (int3472: tps68470): split the int -> unsigned int loop
>   counter change out of the clock-consumer patch into its own cleanup.
> - Patch 3 (int3472: tps68470, was patch 2): trim the commit message; no
>   code change beyond the counter split above.
> - Patch 6 (ov8858, was patch 5): use a C99 initialiser for the ACPI match
>   entry and drop the comma after the sentinel.
> 
> On the open question from the review: I kept the per-table
> gpiod_add_lookup_table() loop rather than switching to
> gpiod_add_lookup_tables(). There is no gpiod_remove_lookup_tables()
> counterpart for the error-unwind path, the board data uses a counted (not
> NULL-terminated) array, and the singular form is what the rest of the tree
> uses, including int3472/discrete.c.
> 
> Earlier changelogs (v2-v7) are in the v7 posting:
>   https://lore.kernel.org/all/20260819140107.1329091-1-tchatard@gmail.com/
> 
> Tested on Ubuntu 25.10 (kernel 6.17.0-22-generic) and Ubuntu 26.04
> (kernel 7.0.0-30-generic). Both cameras working in Zoom, Chrome, and GNOME
> Camera via PipeWire. Also independently tested on the closely-related Dell
> Latitude 5290 2-in-1 (same IPU3/TPS68470/OV5670/OV8858/DW9714 stack) by
> Vitalii Tytskyi:
>   https://github.com/vitovt/dell-5290-camera-kernel/tree/master/patches
> 
> Thierry Chatard (6):
>   platform/x86: intel_lpss: add resource conflict quirk for Dell Latitude 5285
>   platform/x86: int3472: tps68470: use unsigned int for GPIO lookup loop counters
>   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

What command did you use to create this set?

Where is the diff?  Walking through each patch to see if there is
anything I should look at is suboptimal.

-- 
Lee Jones