From: "Angioli Samuele (gmail)" <angioli.samuele@gmail.com>
To: Marco Nenciarini <mnencia@kcore.it>, linux-media@vger.kernel.org
Cc: Hans de Goede <hansg@kernel.org>,
ilpo.jarvinen@linux.intel.com,
Sakari Ailus <sakari.ailus@linux.intel.com>,
Israel Cepeda <israel.a.cepeda.lopez@intel.com>,
linux-kernel@vger.kernel.org,
platform-driver-x86@vger.kernel.org
Subject: Re: [BUG] OV02C10 on Dell 16 Premium DA16250 (ARL): INT3472 handshake-derived "dvdd" regulator registered but never linked to sensor, sensor probe fails with -EREMOTEIO
Date: Fri, 12 Jun 2026 18:09:11 +0200 [thread overview]
Message-ID: <ceadef8a-7b9e-4137-b219-732b30bbf62e@gmail.com> (raw)
In-Reply-To: <ah_XLEAkqjV9HkSE@spark.kcore.it>
[-- Attachment #1: Type: text/plain, Size: 7197 bytes --]
Hi Marco,
Sorry for the slow reply - I was away from the office until the 10th.
regulator_summary settles it - this is a missing consumer map, not an
ordering race.
INT3472:0c = \_SB.PC00.DSC0. Its _DEP is only the bridge gpiochip:
Name (_DEP, Package (){ ^XHCI.RHUB.HS09.VGPO })
so it defers ~28 times (t=5.816..6.127) until INTC10B2:00 appears
(t=6.135), then binds. Its _DSM (79234640-9e10-4fea-a5c1-b5aa8b19756f),
decoded with TYPE=[7:0], PIN=[15:8], SENSOR_ON=[31:24]:
func 2 -> 0x01000112 type 0x12 (handshake), pin 1, on=1 -> dvdd
func 3 -> 0x01000002 type 0x02 (strobe), pin 0, on=1 -> IR flood
The dvdd GPIO (func 2) is handled before the strobe (func 3), so it is
already processed by the time the "GPIO type 0x02 unknown" warning
fires at t=6.143.
regulator_summary shows the result:
INT3472:0c-dvdd 0 0 0 unknown 0mV ... (use=0 open=0)
The dvdd regulator IS registered, but with zero consumers - no supply
map to i2c-OVTI02C1:00 was ever created. So when ov02c10 probes at
t=6.468 (0.32s AFTER INT3472:0c bound and after the dvdd GPIO was
handled), regulator_get(dvdd) returns -ENODEV regardless of timing:
[6.468] ov02c10 i2c-OVTI02C1:00: supply dvdd not found, using dummy
regulator
[6.471] ov02c10 i2c-OVTI02C1:00: Error reading reg 0x300a: -121
[6.471] ov02c10 ... probe with driver ov02c10 failed with error -121
The dummy enable is a no-op, the rail stays down, the 0x300a read
fails -EREMOTEIO, and that hard error is never retried.
This means the handshake-derived regulator path registers the provider
without planting the consumer supply map the way the GPIO power-enable
path does in skl_int3472_register_regulator(). Adding that map
(dev_name "i2c-OVTI02C1:00", supply "dvdd") for the handshake type
should be enough; an -EPROBE_DEFER "supply coming later" signal would
not help here since the map is never created at all.
For completeness on the ordering side: LNK1's _DEP never references
DSC0 in any branch (ARLP -> {CVSS, HS09.VIC1}; non-ARLP -> {DSC1,
HS09.VIC1}), so there is also no serialization between DSC0 and the
sensor - but that is moot given the map is absent.
Tested on 7.0.10-1-MANJARO. Attached: decompiled
LNK1/DSC0 blocks, timestamped dmesg, and regulator_summary. Full
acpidump available on request (zip 1Mb).
Thanks,
Samuele
Il 03/06/26 09:26, Marco Nenciarini ha scritto:
> Hi Samuele,
>
> Thanks for the thorough report, the dmesg and the detail you included
> made this easy to trace.
>
> Both of your hypotheses turn out not to be the mechanism. The naming is
> fine and the fwnode path is not shadowing anything. The dummy dvdd in
> your log is real and is the key clue, but the interesting question is
> how the sensor reached a regulator_get for dvdd at all.
>
>> (a) fwnode/of-based supply matching in the regulator core now takes
>> precedence over the legacy dev_name-based supply_map lookups
>
> It does not shadow it. regulator_dev_lookup() tries the DT/fwnode path
> first, but regulator_dt_lookup() only does anything when
> dev_of_node(dev) is non-NULL. On ACPI there is no of_node, so it
> returns NULL and the function falls through to the legacy
> regulator_map_list walk. A software_node sensor with no regulator
> phandle is therefore fine, provided the map entry exists at lookup
> time.
>
>> (b) The sensor i2c_client created via ipu-bridge has a slightly
>> different dev_name
>
> It does not. int3472->sensor_name is built as "i2c-" +
> acpi_dev_name(sensor), i.e. "i2c-OVTI02C1:00", and that exact string
> is planted into supply_map[].dev_name in
> skl_int3472_register_regulator(). ACPI-enumerated i2c clients are named
> the same way (dev_set_name(&client->dev, "i2c-%s", acpi_dev_name(adev))),
> so the consumer dev_name is byte-identical. No mismatch.
>
> What the log actually tells us. The line
>
> ov02c10 i2c-OVTI02C1:00: supply dvdd not found, using dummy regulator
>
> is emitted from a single site in _regulator_get_common(), on the
> have_full_constraints() == true, NORMAL_GET path, and only after the
> dummy_regulator_rdev existence check. So it means precisely this: at
> the instant ov02c10 called devm_regulator_bulk_get(), the lookup for
> "i2c-OVTI02C1:00"/dvdd returned -ENODEV, i.e. no INT3472:0c-dvdd
> consumer map entry existed yet. int3472 publishes that map while
> registering the regulator, during its own probe, and its whole probe
> defers (the ~30 retries in your log) until the USB-IO bridge gpiochip
> appears, because the dvdd HANDSHAKE GPIO lives on that chip. So
> ov02c10 took a dummy dvdd before int3472 had registered the real one.
> Under NORMAL_GET with full constraints that dummy is permanent, the
> no-op enable leaves the rail unpowered, and the 0x300a read fails
> with -EREMOTEIO, a hard error that is not placed on the deferred-probe
> list and so is never retried when the real regulator appears later. It
> is also consistent with regulator_summary showing INT3472:0c-dvdd with
> no children after the fact.
>
> (avdd and dovdd also fall back to dummies. If those rails are
> always-on in hardware that is probably benign. dvdd is the one
> INT3472:0c is meant to gate through the handshake pin, so that is the
> one that matters here.)
>
> Here is the part that needs your input, because it should not be
> possible. INT3472 is in acpi_honor_dep_ids, so a sensor whose _DEP
> references the INT3472 device is held out of enumeration entirely
> (acpi_dev_ready_for_enumeration() returns false, the i2c client is not
> even created) until int3472 clears the dependency. int3472-discrete
> clears it with acpi_dev_clear_dependencies() as the last step of its
> probe, after int3472_discrete_parse_crs() has registered every
> regulator including dvdd. So in the normal flow, by the time OVTI02C1
> can be enumerated at all, the dvdd map is already published and the
> sensor binds the real rail. The fact that you got a dummy means that
> gate did not serialize them on this board.
>
> The most likely explanation is that OVTI02C1's _DEP does not carry an
> honored dependency on the INT3472:0c instance that registers dvdd (or
> there is more than one INT3472 instance and the depended-on one is not
> the dvdd provider). To confirm, could you send:
>
> - the OVTI02C1 _DEP (an acpidump or DSDT extract), so we can see
> whether INT3472:0c is actually listed;
> - a dmesg with timestamps showing the order of the int3472-discrete
> bind, the i2c-OVTI02C1:00 device creation, and the dummy-regulator
> warning;
> - the INT3472:0c _CRS plus the _DSM result for the GPIO at
> \_SB.PC00.XHCI.RHUB.HS09.VGPO pin 1, as you offered.
>
> Hans, Sakari, this is where I would like your read. If the _DEP on
> this board is indeed missing the INT3472:0c instance, is the right fix
> a board quirk, or is it worth giving the ACPI consumer path a "supply
> coming later" signal the way the DT path has one?
> of_regulator_dev_lookup() returns -EPROBE_DEFER when the phandle
> target is not registered yet; the legacy consumer_supplies/dev_name
> map has no equivalent, so once the _DEP gate is out of the picture
> there is nothing left to make the sensor wait.
>
> Thanks,
> Marco
[-- Attachment #2: 02_dmesg-filtered.txt --]
[-- Type: text/plain, Size: 5814 bytes --]
938:[ 5.799818] intel-ipu6 0000:00:05.0: enabling device (0000 -> 0002)
942:[ 5.816292] int3472-discrete INT3472:0c: cannot find GPIO chip INTC10B2:00, deferring
943:[ 5.816646] intel-ipu6 0000:00:05.0: Found supported sensor OVTI02C1:00
944:[ 5.816717] intel-ipu6 0000:00:05.0: Connected 1 cameras
946:[ 5.821653] intel-ipu6 0000:00:05.0: Sending BOOT_LOAD to CSE
948:[ 5.831222] int3472-discrete INT3472:0c: cannot find GPIO chip INTC10B2:00, deferring
951:[ 5.839669] int3472-discrete INT3472:0c: cannot find GPIO chip INTC10B2:00, deferring
956:[ 5.848704] int3472-discrete INT3472:0c: cannot find GPIO chip INTC10B2:00, deferring
958:[ 5.854569] int3472-discrete INT3472:0c: cannot find GPIO chip INTC10B2:00, deferring
959:[ 5.858057] intel-ipu6 0000:00:05.0: Sending AUTHENTICATE_RUN to CSE
961:[ 5.867711] int3472-discrete INT3472:0c: cannot find GPIO chip INTC10B2:00, deferring
962:[ 5.869356] int3472-discrete INT3472:0c: cannot find GPIO chip INTC10B2:00, deferring
963:[ 5.872391] int3472-discrete INT3472:0c: cannot find GPIO chip INTC10B2:00, deferring
964:[ 5.874753] int3472-discrete INT3472:0c: cannot find GPIO chip INTC10B2:00, deferring
972:[ 5.880972] int3472-discrete INT3472:0c: cannot find GPIO chip INTC10B2:00, deferring
973:[ 5.881864] int3472-discrete INT3472:0c: cannot find GPIO chip INTC10B2:00, deferring
976:[ 5.885536] int3472-discrete INT3472:0c: cannot find GPIO chip INTC10B2:00, deferring
978:[ 5.907393] intel-ipu6 0000:00:05.0: CSE authenticate_run done
979:[ 5.907401] intel-ipu6 0000:00:05.0: IPU6-v4[7d19] hardware version 6
980:[ 5.908399] int3472-discrete INT3472:0c: cannot find GPIO chip INTC10B2:00, deferring
995:[ 5.981768] int3472-discrete INT3472:0c: cannot find GPIO chip INTC10B2:00, deferring
999:[ 6.013643] int3472-discrete INT3472:0c: cannot find GPIO chip INTC10B2:00, deferring
1002:[ 6.028494] int3472-discrete INT3472:0c: cannot find GPIO chip INTC10B2:00, deferring
1006:[ 6.033725] int3472-discrete INT3472:0c: cannot find GPIO chip INTC10B2:00, deferring
1008:[ 6.034112] spi-nor spi0.0: supply vcc not found, using dummy regulator
1015:[ 6.054208] int3472-discrete INT3472:0c: cannot find GPIO chip INTC10B2:00, deferring
1019:[ 6.060858] int3472-discrete INT3472:0c: cannot find GPIO chip INTC10B2:00, deferring
1024:[ 6.064831] int3472-discrete INT3472:0c: cannot find GPIO chip INTC10B2:00, deferring
1040:[ 6.127023] int3472-discrete INT3472:0c: cannot find GPIO chip INTC10B2:00, deferring
1043:[ 6.143628] int3472-discrete INT3472:0c: GPIO type 0x02 unknown; the sensor may not work
1063:[ 6.468766] ov02c10 i2c-OVTI02C1:00: supply dovdd not found, using dummy regulator
1064:[ 6.469299] ov02c10 i2c-OVTI02C1:00: supply avdd not found, using dummy regulator
1065:[ 6.469394] ov02c10 i2c-OVTI02C1:00: supply dvdd not found, using dummy regulator
1071:[ 6.471215] ov02c10 i2c-OVTI02C1:00: Error reading reg 0x300a: -121
1072:[ 6.471217] ov02c10 i2c-OVTI02C1:00: failed to find sensor: -121
1073:[ 6.471292] ov02c10 i2c-OVTI02C1:00: probe with driver ov02c10 failed with error -121
1133:[ 6.627389] cs42l43 sdw:0:0:01fa:4243:01: supply vdd-p not found, using dummy regulator
1134:[ 6.627415] cs42l43 sdw:0:0:01fa:4243:01: supply vdd-d not found, using dummy regulator
1135:[ 6.627419] cs42l43 sdw:0:0:01fa:4243:01: supply vdd-a not found, using dummy regulator
1136:[ 6.627422] cs42l43 sdw:0:0:01fa:4243:01: supply vdd-io not found, using dummy regulator
1137:[ 6.627431] cs42l43 sdw:0:0:01fa:4243:01: supply vdd-cp not found, using dummy regulator
1138:[ 6.638460] cs35l56 sdw:0:2:01fa:3556:01:2: supply VDD_P not found, using dummy regulator
1139:[ 6.638493] cs35l56 sdw:0:2:01fa:3556:01:2: supply VDD_IO not found, using dummy regulator
1140:[ 6.638499] cs35l56 sdw:0:2:01fa:3556:01:2: supply VDD_A not found, using dummy regulator
1141:[ 6.638925] cs35l56 sdw:0:2:01fa:3556:01:3: supply VDD_P not found, using dummy regulator
1142:[ 6.638946] cs35l56 sdw:0:2:01fa:3556:01:3: supply VDD_IO not found, using dummy regulator
1143:[ 6.638954] cs35l56 sdw:0:2:01fa:3556:01:3: supply VDD_A not found, using dummy regulator
1144:[ 6.639284] cs35l56 sdw:0:3:01fa:3556:01:0: supply VDD_P not found, using dummy regulator
1145:[ 6.639317] cs35l56 sdw:0:3:01fa:3556:01:0: supply VDD_IO not found, using dummy regulator
1146:[ 6.639327] cs35l56 sdw:0:3:01fa:3556:01:0: supply VDD_A not found, using dummy regulator
1147:[ 6.639617] cs35l56 sdw:0:3:01fa:3556:01:1: supply VDD_P not found, using dummy regulator
1148:[ 6.639637] cs35l56 sdw:0:3:01fa:3556:01:1: supply VDD_IO not found, using dummy regulator
1149:[ 6.639649] cs35l56 sdw:0:3:01fa:3556:01:1: supply VDD_A not found, using dummy regulator
1157:[ 6.819995] cs42l43-codec cs42l43-codec: supply vdd-amp not found, using dummy regulator
1160:[ 6.821481] sof_sdw sof_sdw: ASoC: Parent card not yet available, widget card binding deferred
1161:[ 6.821538] cs35l56 sdw:0:2:01fa:3556:01:2: supply VDD_B not found, using dummy regulator
1162:[ 6.821545] cs35l56 sdw:0:2:01fa:3556:01:2: supply VDD_AMP not found, using dummy regulator
1163:[ 6.822184] cs35l56 sdw:0:2:01fa:3556:01:3: supply VDD_B not found, using dummy regulator
1164:[ 6.822192] cs35l56 sdw:0:2:01fa:3556:01:3: supply VDD_AMP not found, using dummy regulator
1165:[ 6.823069] cs35l56 sdw:0:3:01fa:3556:01:0: supply VDD_B not found, using dummy regulator
1166:[ 6.823076] cs35l56 sdw:0:3:01fa:3556:01:0: supply VDD_AMP not found, using dummy regulator
1167:[ 6.823700] cs35l56 sdw:0:3:01fa:3556:01:1: supply VDD_B not found, using dummy regulator
1168:[ 6.823708] cs35l56 sdw:0:3:01fa:3556:01:1: supply VDD_AMP not found, using dummy regulator
[-- Attachment #3: 03_regulator_summary.txt --]
[-- Type: text/plain, Size: 293 bytes --]
sudo grep -iE 'regulator|INT3472|dvdd|ov02c10' /sys/kernel/debug/regulator/regulator_summary | grep -iA3 -B1 dvdd
regulator-dummy 19 27 0 unknown 0mV 0mA 0mV 0mV
INT3472:0c-dvdd 0 0 0 unknown 0mV 0mA 0mV 0mV
[-- Attachment #4: 04_lnk1.dsl --]
[-- Type: text/x-dsl, Size: 5947 bytes --]
Device (LNK1)
{
Name (CVSB, Package (0x02)
{
"\\_SB.PC00.CVSS",
"\\_SB.PC00.XHCI.RHUB.HS09.VIC1"
})
Name (PUSB, Package (0x02)
{
"\\_SB.PC00.DSC1",
"\\_SB.PC00.XHCI.RHUB.HS09.VIC1"
})
Method (_STA, 0, NotSerialized) // _STA: Status
{
If (L1EN)
{
Return (0x0F)
}
Else
{
Return (Zero)
}
}
Method (_SUB, 0, NotSerialized) // _SUB: Subsystem ID
{
Return (ToString (CERD, Ones))
}
Method (_DEP, 0, NotSerialized) // _DEP: Dependencies
{
If (L1EN)
{
If (ARLP)
{
Return (CVSB) /* \_SB_.PC00.LNK1.CVSB */
}
Else
{
Return (PUSB) /* \_SB_.PC00.LNK1.PUSB */
}
}
Else
{
Return (Package (0x01)
{
PC00
})
}
}
Name (_UID, One) // _UID: Unique ID
Method (_HID, 0, NotSerialized) // _HID: Hardware ID
{
Return (HCID (One))
}
Method (_CID, 0, NotSerialized) // _CID: Compatible ID
{
Return (HCID (One))
}
Method (_DDN, 0, NotSerialized) // _DDN: DOS Device Name
{
Name (BUF, Buffer (0x10){})
BUF [Zero] = L1M0 /* \L1M0 */
BUF [One] = L1M1 /* \L1M1 */
BUF [0x02] = L1M2 /* \L1M2 */
BUF [0x03] = L1M3 /* \L1M3 */
BUF [0x04] = L1M4 /* \L1M4 */
BUF [0x05] = L1M5 /* \L1M5 */
BUF [0x06] = L1M6 /* \L1M6 */
BUF [0x07] = L1M7 /* \L1M7 */
BUF [0x08] = L1M8 /* \L1M8 */
BUF [0x09] = L1M9 /* \L1M9 */
BUF [0x0A] = L1MA /* \L1MA */
BUF [0x0B] = L1MB /* \L1MB */
BUF [0x0C] = L1MC /* \L1MC */
BUF [0x0D] = L1MD /* \L1MD */
BUF [0x0E] = L1ME /* \L1ME */
BUF [0x0F] = L1MF /* \L1MF */
Return (ToString (BUF, Ones))
}
Method (_PLD, 0, Serialized) // _PLD: Physical Location of Device
{
Name (PLDB, Package (0x01)
{
Buffer (0x14)
{
/* 0000 */ 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........
/* 0008 */ 0x69, 0x0E, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, // i.......
/* 0010 */ 0xFF, 0xFF, 0xFF, 0xFF // ....
}
})
CreateByteField (DerefOf (PLDB [Zero]), 0x08, BPOS)
CreateField (DerefOf (PLDB [Zero]), 0x73, 0x04, RPOS)
BPOS = L1PL /* \L1PL */
RPOS = L1DG /* \L1DG */
Return (PLDB) /* \_SB_.PC00.LNK1._PLD.PLDB */
}
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
Local0 = VIIC (L1A0, One)
If ((L1DI > One))
{
Local1 = VIIC (L1A1, One)
ConcatenateResTemplate (Local0, Local1, Local2)
Local0 = Local2
}
If ((L1DI > 0x02))
{
Local1 = VIIC (L1A2, One)
ConcatenateResTemplate (Local0, Local1, Local2)
Local0 = Local2
}
Return (Local0)
}
Method (SSDB, 0, NotSerialized)
{
Name (PAR, Buffer (0x6C)
{
/* 0000 */ 0x00, 0x00, 0x69, 0x56, 0x39, 0x8A, 0xF7, 0x11, // ..iV9...
/* 0008 */ 0xA9, 0x4E, 0x9C, 0x7D, 0x20, 0xEE, 0x0A, 0xB5, // .N.} ...
/* 0010 */ 0xCA, 0x40, 0xA3, 0x00, 0x00, 0x00, 0x00, 0x00, // .@......
/* 0018 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........
/* 0020 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........
/* 0028 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........
/* 0030 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........
/* 0038 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........
/* 0040 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........
/* 0048 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........
/* 0050 */ 0x10, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // ........
/* 0058 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........
/* 0060 */ 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, // ........
/* 0068 */ 0x00, 0x00, 0x00, 0x00 // ....
})
PAR [Zero] = L1DV /* \L1DV */
PAR [One] = L1CV /* \L1CV */
PAR [0x18] = L1LC /* \L1LC */
PAR [0x1C] = L1LU /* \L1LU */
PAR [0x1D] = L1NL /* \L1NL */
PAR [0x4E] = L1EE /* \L1EE */
PAR [0x4F] = L1VC /* \L1VC */
PAR [0x52] = L1FS /* \L1FS */
PAR [0x53] = L1LE /* \L1LE */
PAR [0x54] = CDEG (L1DG)
[-- Attachment #5: 05_dsc0.dsl --]
[-- Type: text/x-dsl, Size: 6765 bytes --]
Device (DSC0)
{
Name (_HID, "INT3472") // _HID: Hardware ID
Name (_CID, "INT3472") // _CID: Compatible ID
Name (_DDN, "PMIC-CRDG") // _DDN: DOS Device Name
Name (_UID, Zero) // _UID: Unique ID
Name (_DEP, Package (0x01) // _DEP: Dependencies
{
^XHCI.RHUB.HS09.VGPO
})
Method (_SUB, 0, NotSerialized) // _SUB: Subsystem ID
{
Return (ToString (CERD, Ones))
}
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
Local0 = VPIN (One)
If ((C0GP > Zero))
{
Local1 = PINR (C0P0, C0C0, C0G0)
ConcatenateResTemplate (Local0, Local1, Local2)
Local0 = Local2
}
If ((C0GP > One))
{
Local1 = PINR (C0P1, C0C1, C0G1)
ConcatenateResTemplate (Local0, Local1, Local2)
Local0 = Local2
}
If ((C0GP > 0x02))
{
Local1 = PINR (C0P2, C0C2, C0G2)
ConcatenateResTemplate (Local0, Local1, Local2)
Local0 = Local2
}
If ((C0GP > 0x03))
{
Local1 = PINR (C0P3, C0C3, C0G3)
ConcatenateResTemplate (Local0, Local1, Local2)
Local0 = Local2
}
If ((C0GP > 0x04))
{
Local1 = PINR (C0P4, C0C4, C0G4)
ConcatenateResTemplate (Local0, Local1, Local2)
Local0 = Local2
}
If ((C0GP > 0x05))
{
Local1 = PINR (C0P5, C0C5, C0G5)
ConcatenateResTemplate (Local0, Local1, Local2)
Local0 = Local2
}
Return (Local0)
}
Method (_STA, 0, NotSerialized) // _STA: Status
{
If (CL00)
{
If ((C0TP == One))
{
Return (0x0F)
}
}
Return (Zero)
}
Method (CLDB, 0, NotSerialized)
{
Name (PAR, Buffer (0x20)
{
/* 0000 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, // ........
/* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........
/* 0010 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........
/* 0018 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // ........
})
PAR [Zero] = C0VE /* \C0VE */
PAR [One] = C0TP /* \C0TP */
PAR [0x03] = C0CV /* \C0CV */
PAR [0x04] = C0IC /* \C0IC */
PAR [0x06] = C0SP /* \C0SP */
PAR [0x08] = C0W0 /* \C0W0 */
PAR [0x09] = C0W1 /* \C0W1 */
PAR [0x0A] = C0W2 /* \C0W2 */
PAR [0x0B] = C0W3 /* \C0W3 */
PAR [0x0C] = C0W4 /* \C0W4 */
PAR [0x0D] = C0W5 /* \C0W5 */
PAR [0x0E] = C0CS /* \C0CS */
Return (PAR) /* \_SB_.PC00.DSC0.CLDB.PAR_ */
}
Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
{
If ((Arg0 == ToUUID ("79234640-9e10-4fea-a5c1-b5aa8b19756f") /* Unknown UUID */))
{
If ((Arg2 == Zero))
{
Return (Buffer (One)
{
0x3F // ?
})
}
If ((Arg2 == One))
{
Return ((One + C0GP))
}
If ((Arg2 == 0x02))
{
Return (0x01000112)
}
If ((Arg2 == 0x03))
{
Return (0x01000002)
}
If ((Arg2 == 0x04))
{
Return (Zero)
}
If ((Arg2 == 0x05))
{
Return (Zero)
}
If ((Arg2 == 0x06))
{
Return (Zero)
}
If ((Arg2 == 0x07))
{
Return (Zero)
}
Return (Buffer (One)
{
0x00 // .
})
}
If ((PCHS != 0x04)){}
Return (Buffer (One)
{
0x00 // .
})
}
}
Device (DSC1)
{
Name (_HID, "INT3472") // _HID: Hardware ID
Name (_CID, "INT3472") // _CID: Compatible ID
Name (_DDN, "PMIC-CRDG") // _DDN: DOS Device Name
Name (_UID, One) // _UID: Unique ID
Method (_SUB, 0, NotSerialized) // _SUB: Subsystem ID
{
Return (ToString (CERD, Ones))
}
If ((C1GP != Zero))
{
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
Local0 = VPIN (Zero)
Local1 = VPIN (0x02)
ConcatenateResTemplate (Local0, Local1, Local2)
Local0 = Local2
If ((C1GP > Zero))
{
Local1 = PINR (C1P1, C1C1, C1G1)
ConcatenateResTemplate (Local0, Local1, Local2)
Local0 = Local2
}
If ((C1GP > One))
{
Local1 = PINR (C1P1, C1C1, C1G1)
ConcatenateResTemplate (Local0, Local1, Local2)
Local0 = Local2
}
If ((C1GP > 0x02))
{
Local1 = PINR (C1P2, C1C2, C1G2)
ConcatenateResTemplate (Local0, Local1, Local2)
Local0 = Local2
}
next prev parent reply other threads:[~2026-06-12 16:09 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-01 14:06 [BUG] OV02C10 on Dell 16 Premium DA16250 (ARL): INT3472 handshake-derived "dvdd" regulator registered but never linked to sensor, sensor probe fails with -EREMOTEIO Angioli Samuele (gmail)
2026-06-03 7:26 ` Marco Nenciarini
2026-06-12 16:09 ` Angioli Samuele (gmail) [this message]
2026-06-13 17:01 ` Marco Nenciarini
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=ceadef8a-7b9e-4137-b219-732b30bbf62e@gmail.com \
--to=angioli.samuele@gmail.com \
--cc=hansg@kernel.org \
--cc=ilpo.jarvinen@linux.intel.com \
--cc=israel.a.cepeda.lopez@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=mnencia@kcore.it \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.