From: German <germanpapulindez@gmail.com>
To: platform-driver-x86@vger.kernel.org
Cc: "Hans de Goede" <hdegoede@redhat.com>,
"Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>,
"Andy Shevchenko" <andy.shevchenko@gmail.com>,
"Sakari Ailus" <sakari.ailus@linux.intel.com>,
linux-media@vger.kernel.org
Subject: [BUG] platform/x86: int3472/discrete: unknown GPIO type 0x08 breaks OV13858 rear camera on Surface Pro 11/12 Business (INT3472:00 / OVTID858)
Date: Thu, 3 Sep 2026 10:15:56 +0200 [thread overview]
Message-ID: <20260903081557.16603-1-germanpapulindez@gmail.com> (raw)
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]
next reply other threads:[~2026-09-03 8:17 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-03 8:15 German [this message]
2026-09-03 8:25 ` [BUG] platform/x86: int3472/discrete: unknown GPIO type 0x08 breaks OV13858 rear camera on Surface Pro 11/12 Business (INT3472:00 / OVTID858) Sakari Ailus
2026-09-03 14:00 ` Andy Shevchenko
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=20260903081557.16603-1-germanpapulindez@gmail.com \
--to=germanpapulindez@gmail.com \
--cc=andy.shevchenko@gmail.com \
--cc=hdegoede@redhat.com \
--cc=ilpo.jarvinen@linux.intel.com \
--cc=linux-media@vger.kernel.org \
--cc=platform-driver-x86@vger.kernel.org \
--cc=sakari.ailus@linux.intel.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox