Repository navigation
Conversation
Add int3472_gpio_map entry for INT347A (ov8865 on Surface Pro 7+) mapping
sensor-resource type 0x08 to INT3472_GPIO_TYPE_HANDSHAKE ("dvdd").
This fixes rear camera initialization without needing out-of-tree sensor
driver changes or DSDT overrides.
Link: linux-surface#2201
Link: linux-surface#1702
Signed-off-by: luqqas96 <[email protected]>
Author
|
Closing in favour of the generic ...as well as the consolidated Surface Pro 7+ camera patchset in PR #2252 by @dmanresa-saes. The independent hardware validation on stock OEM DSDT (bare firmware table, GPIO 175 / type 0x08, sustained 30 fps capture without ACPI overrides) remains documented in the discussion thread of issue #1702. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
This PR adds an entry to
int3472_gpio_map[]inpatches/6.19/0013-cameras.patchto map the Surface Pro 7+ rear camera's (ov8865/INT347A:00) digital power supply pin (0xaf, declared in DSDT as type0x08) toINT3472_GPIO_TYPE_HANDSHAKEwith supply namedvdd.With this mapping, the rear camera on the Surface Pro 7+ powers up and streams reliably (1280x720 @ ~30 fps and 3264x2448 RAW @ 15 fps).
Why
On the Surface Pro 7+, the ACPI
INT3472:01device declares the rear sensor's digital supply as GPIO type0x08on pin0xaf.discrete.c, type0x08has nocasestatement and falls through tounknown, so no regulator is ever registered.0013-cameras.patch, type0x08was tentatively mapped to the supply namepwr1. Because no sensor driver requestspwr1, the resulting regulator stays disabled (users=0) and the sensor never receives digital power:pwr1supply request intoov8865.c. However,pwr1is an out-of-tree name specific to0013-cameras.patchand cannot be upstreamed to mainline.Solution
The pin is the sensor's DVDD rail. Mapping the firmware's type
0x08toINT3472_GPIO_TYPE_HANDSHAKE(which providesdvdd) keyed on the sensor HIDINT347Ainint3472_gpio_map[]solves the problem cleanly:{ /* Surface Pro 7+ declares the ov8865 dvdd pin as type 0x08 */ .hid = "INT347A", .type_from = 0x08, .type_to = INT3472_GPIO_TYPE_HANDSHAKE, .con_id = "dvdd", .enable_time_us = GPIO_REGULATOR_ENABLE_TIME, },Advantages:
ov8865.c: The driver continues requesting standarddvdd.OVTI08F4indiscrete.c.INT347A, so Pro 9 (OVTI5693/OVTID858) remains untouched.platform-driver-x86.Verification
Tested on Microsoft Surface Pro 7+ (Intel Tiger Lake IPU6
8086:9a19, Fedora 44, kernel6.19.8-3.surface.fc43, libcamera 0.7.1):ov8865 i2c-INT347A:00: Instantiated dw9719 VCMRefs