mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Sergey Lebedev <lsa.uz@pm.me>
To: "Daniel Scally" <dan.scally@ideasonboard.com>,
	"Sakari Ailus" <sakari.ailus@linux.intel.com>,
	"Hans de Goede" <hansg@kernel.org>,
	"Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>
Cc: platform-driver-x86@vger.kernel.org, linux-media@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: int3472: unhandled GPIO type 0x08 leaves the rear camera dead (Surface Pro 11, Intel)
Date: Sun, 30 Aug 2026 11:27:43 +0000	[thread overview]
Message-ID: <20260830112736.85573-1-lsa.uz@pm.me> (raw)

Hello,

On a Microsoft Surface Pro 11 for Business (Intel, Lunar Lake) the rear
camera does not work, and it traces to a single unhandled GPIO type in
int3472-discrete.

  int3472-discrete INT3472:00: GPIO type 0x08 unknown;
    the sensor may not work
  ov13858 i2c-OVTID858:00: failed to find sensor: -5
  ov13858 i2c-OVTID858:00: probe with driver ov13858 failed with error -5

The result is 32 /dev/video* nodes and a media graph with zero entities.
The IPU7 itself is healthy - firmware loads, CSE authenticates, the device
reaches secure mode - so the failure is entirely on the sensor-power side.

Reproduced on 6.17, 7.0.0-28 and 7.0.0-30 (Ubuntu 26.04), and the switch
in drivers/platform/x86/intel/int3472/discrete.c still has no case for
0x08 in 7.1.0-rc7, so I do not believe this is already fixed.

What the firmware describes
---------------------------

The DSDT declares three INT3472 devices. Decoding their _DSM returns with
the driver's own field layout (type = bits 7:0, pin = bits 15:8):

  Device (ICL0)  -> INT3472:00, the rear sensor (OVTID858 / ov13858)
    0x1000070B   type 0x0b POWER_ENABLE   pin  7
    0x10000500   type 0x00 RESET          pin  5
    0x1000060D   type 0x0d PRIVACY_LED    pin  6
    0x10000408   type 0x08 <unknown>      pin  4    <- refused

  Device (ICL1)
    0x1000200B   type 0x0b POWER_ENABLE   pin 32
    0x10000810   type 0x10 DOVDD          pin  8
    0x10000900   type 0x00 RESET          pin  9
    0x10000A0D   type 0x0d PRIVACY_LED    pin 10

  Device (ICL2)
    0x1000170B   type 0x0b POWER_ENABLE   pin 23
    0x10001600   type 0x00 RESET          pin 22
    0x1000250D   type 0x0d PRIVACY_LED    pin 37

ICL0 is the only one of the three that declares a fourth GPIO, it is the
only one carrying type 0x08, and it is the one whose sensor fails. I would
not claim that proves causation - the driver returns 1 for the unknown
type and carries on, so POWER_ENABLE, RESET and PRIVACY_LED are all still
registered - but it is the only resource the kernel declines on this
machine, and the sensor then does not answer on I2C.

The question
------------

What is type 0x08 meant to be, and should discrete.c handle it? If it is
another regulator - the shape of ICL1's DOVDD entry suggests the encoding
supports several - then adding it may be all this machine needs. If it is
something else, I am happy to be told what and to test whatever you would
like tried.

I have not sent a patch because I would only be guessing at the semantics,
and guessing wrong here means silently powering a sensor rail for the wrong
reason.

What I can provide
------------------

  - full acpidump / disassembled DSDT for this machine
  - any debug patch or instrumented build you would like run; the machine
    is available and I can rebuild and boot kernels on it
  - dmesg at any log level

Two adjacent facts, in case they matter, though I am not asking for
anything about them here: the front (SONY0681) and IR (SMO55F0) sensors
have no in-tree driver bound at all, and intel_ipu7_isys still announces
itself as a staging module.

  Machine: Microsoft Surface Pro 11 for Business (Intel Core Ultra 7 268V)
  DMI SKU: Surface_Pro_11th_Edition_With_Intel_For_Business_2103
  Firmware: UEFI 17.100.143 (2025-11-19)
  Kernel:   7.0.0-30-generic, Ubuntu 26.04.1 LTS

Thanks,
Sergey Lebedev


             reply	other threads:[~2026-08-30 11:27 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-30 11:27 Sergey Lebedev [this message]
2026-08-30 12:00 ` Sergey Lebedev
2026-08-30 12:33 ` Hans de Goede

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=20260830112736.85573-1-lsa.uz@pm.me \
    --to=lsa.uz@pm.me \
    --cc=dan.scally@ideasonboard.com \
    --cc=hansg@kernel.org \
    --cc=ilpo.jarvinen@linux.intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --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

all inboxes | Powered by JetHome®