Linux Media Controller development
 help / color / mirror / Atom feed
* Re: [BUG] platform/x86: int3472/discrete: unknown GPIO type 0x08 breaks OV13858 rear camera on Surface Pro 11/12 Business (INT3472:00 / OVTID858)
@ 2026-09-11  7:08 Sergey Lebedev
  0 siblings, 0 replies; 4+ messages in thread
From: Sergey Lebedev @ 2026-09-11  7:08 UTC (permalink / raw)
  To: Andy Shevchenko
  Cc: Sakari Ailus, German, Hans de Goede, Ilpo Järvinen,
	Jakob Berg Jespersen, platform-driver-x86, linux-media

Andy, this answers your question of 3 September in this thread - "I can't see
that commit in many trees from kernel.org nor in media.git" - in case it is
still open. I am writing from a machine that has the same problem, not on
anyone's behalf. My reply may arrive unthreaded, which is why the question is
quoted rather than assumed.

The commit is 34e31390a3b939db2e0cbfef4c40d95052572df0, "platform/x86: int3472:
support the POWER1 GPIO type", by Jakob Berg Jespersen. Authored 29 August,
committed 2 September at 08:05 UTC - about 33 hours before you looked, which
may be the whole of it.

Checked today, 11 September:

  git.linuxtv.org/media.git, branch next        present
  git.kernel.org .../next/linux-next.git        present
  git.kernel.org .../torvalds/linux.git         absent

So the answer to what you actually asked is yes: it is in linux-next now, and
it is not yet in mainline.

(One trap I walked into on the way: api.github.com will hand you that commit
from repos/torvalds/linux in full, because the object is reachable through the
fork network. kernel.org's cgit 404s on it correctly.)

For German's original report: this commit is necessary but not sufficient. With
it, INT3472:00-dvdd becomes a real regulator instead of an unknown-type
warning. The rear sensor still fails to probe afterwards, because the in-tree
ov13858 driver requests no supplies, takes no reset GPIO and enables no clock -
it acquires one and never turns it on. That part is a separate patch, sent to
linux-media on 31 August and still unreviewed:

  https://lore.kernel.org/linux-media/20260831130312.26296-1-lsa.uz@pm.me/

Sergey


^ permalink raw reply	[flat|nested] 4+ messages in thread
* [BUG] platform/x86: int3472/discrete: unknown GPIO type 0x08 breaks OV13858 rear camera on Surface Pro 11/12 Business (INT3472:00 / OVTID858)
@ 2026-09-03  8:15 German
  2026-09-03  8:25 ` Sakari Ailus
  0 siblings, 1 reply; 4+ messages in thread
From: German @ 2026-09-03  8:15 UTC (permalink / raw)
  To: platform-driver-x86
  Cc: Hans de Goede, Ilpo Järvinen, Andy Shevchenko, Sakari Ailus,
	linux-media

Hi,

On the Microsoft Surface Pro 11/12 Business (Intel Lunar Lake, IPU7),
the rear camera sensor (ov13858, ACPI HID OVTID858) fails to probe.
I've traced the root cause to int3472-discrete not recognizing one of
the GPIO types described in the device's ACPI _DSM data, which leaves
a power/reset-related GPIO unconfigured and the sensor unable to
respond over I2C.

System
------
- Surface Pro for Business 11th Edition with Intel (Intel Lunar Lake, IPU7)
- Kernel: 7.2.2 (Arch Linux, vanilla)
- CONFIG_VIDEO_OV13858=m

Evidence
--------

  $ dmesg | grep -iE "int3472|OVTID858"
  [    5.555231] int3472-discrete INT3472:00: GPIO type 0x08 unknown; the sensor may not work
  [    5.788882] ov13858 i2c-OVTID858:00: failed to find sensor: -5
  [    5.789321] ov13858 i2c-OVTID858:00: probe with driver ov13858 failed with error -5

The "GPIO type 0x08 unknown" warning comes from the default case in
skl_int3472_handle_gpio_resources() in drivers/platform/x86/intel/
int3472/discrete.c:

    default:
        dev_warn(int3472->dev,
                 "GPIO type 0x%02x unknown; the sensor may not work\n",
                 type);
        ret = 1;
        break;

~230ms later, ov13858_probe() fails in ov13858_identify_module()
with -EIO (-5) while trying to read the sensor's chip ID register
over I2C - consistent with the sensor not being properly powered/
reset because one of its GPIOs was left unconfigured.

The currently known/handled GPIO types in common.h are:

    INT3472_GPIO_TYPE_RESET        0x00
    INT3472_GPIO_TYPE_POWERDOWN    0x01
    INT3472_GPIO_TYPE_POWER_ENABLE 0x0b
    INT3472_GPIO_TYPE_CLK_ENABLE   0x0c
    INT3472_GPIO_TYPE_PRIVACY_LED  0x0d
    INT3472_GPIO_TYPE_HANDSHAKE    0x12
    INT3472_GPIO_TYPE_HOTPLUG_DETECT 0x13
    (plus DOVDD/STROBE in newer trees)

0x08 does not correspond to any of these, so it's silently skipped
and the sensor is left without whatever line that pin controls.

This is not a boot-time race: I tried unbinding and rebinding the
ov13858 i2c driver well after boot had fully settled, and the probe
fails identically both times, at very different uptimes:

  $ echo "i2c-OVTID858:00" | sudo tee /sys/bus/i2c/drivers/ov13858/unbind
  $ echo "i2c-OVTID858:00" | sudo tee /sys/bus/i2c/drivers/ov13858/bind
  [  470.046844] ov13858 i2c-OVTID858:00: failed to find sensor: -5
  [  470.046855] ov13858 i2c-OVTID858:00: probe with driver ov13858 failed with error -5
  ...
  [  703.417136] ov13858 i2c-OVTID858:00: failed to find sensor: -5
  [  703.417153] ov13858 i2c-OVTID858:00: probe with driver ov13858 failed with error -5

This rules out a probe-ordering/deferral issue and points at a
persistent hardware-configuration gap: whatever pin type 0x08
represents on this board is never toggled/configured, so the sensor
stays in a bad power/reset state indefinitely.

Possible precedent
-------------------
I noticed drivers/platform/x86/intel/int3472/discrete.c already has a
per-ACPI-HID quirk table (int3472_gpio_map[]) for exactly this kind
of situation - e.g. OVTI08F4 (ov08x40) needed its GPIO type remapped
to INT3472_GPIO_TYPE_HANDSHAKE with a 45ms enable delay on some HP
laptops. It's possible OVTID858 on this Surface board needs a similar
per-HID quirk entry mapping type 0x08 to one of the existing known
types (my guess, unverified, would be a reset/powerdown-adjacent
line, given the symptom - sensor unreachable over I2C at all times,
not just during a specific mode), but I don't have visibility into
what the ACPI _DSM on this board actually intends by 0x08, so I'd
rather report this precisely and let someone with more context
(and/or ACPI table access) confirm than guess further.

Happy to pull the full DSDT/SSDT for the INT3472 device, run with
dynamic_debug enabled on int3472-discrete, or test any proposed
patch on real hardware - just let me know what would help.

Thanks,
[TODO: German]
[TODO: germanpapulindez@gmail.com]

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2026-09-11  7:08 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-11  7:08 [BUG] platform/x86: int3472/discrete: unknown GPIO type 0x08 breaks OV13858 rear camera on Surface Pro 11/12 Business (INT3472:00 / OVTID858) Sergey Lebedev
  -- strict thread matches above, loose matches on Subject: below --
2026-09-03  8:15 German
2026-09-03  8:25 ` Sakari Ailus
2026-09-03 14:00   ` Andy Shevchenko

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox