FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

Surface Pro 12 Intel (MSHW0743 / Panther Lake) — Linux enablement tracker · Issue #2144 · linux-surface/linux-surface · GitHub

Surface Pro 12 Intel (MSHW0743 / Panther Lake) — Linux enablement tracker #2144

Description

This issue tracks Linux bring-up and hardware enablement for:

Microsoft Surface Pro for Business 13in 12th Ed Intel
DMI SKU: Surface_Pro_for_Business_13in_12th_Ed_Intel_2103
CPU: Intel Core Ultra 5 335 / Panther Lake
ACPI platform ID: MSHW0743

The issue was originally opened from a CachyOS 6.19 live environment.

I later moved testing to a clean CachyOS 7.1.6 installation and use that as the reference baseline below.

Reference system:

Kernel: 7.1.6-1-cachyos
BIOS: Microsoft 12.15.143 (2026-06-17)
Secure Boot: disabled

No linux-surface patches.
No Surface-specific kernel parameters.
No manual module overrides.

Clean baseline

Working without Surface-specific patches:

  • touchscreen
  • pen
  • Wi-Fi
  • Bluetooth
  • USB-C data
  • USB-C display output
  • speakers
  • microphone
  • normal ACPI lid-close detection
  • Intel IPU7 PCI device / firmware initialization

Missing or incomplete:

  • main battery / AC status
  • Flex Keyboard / Type Cover
  • touchpad
  • reliable physical power/volume-button binding
  • rear camera (OVTID858 / OV13858)
  • front camera (SONY0681 / IMX681)
  • IR camera (SMO55F0 / VD55G0)
  • SSAM tablet-mode/POS client
  • SSAM HID sensor endpoint
  • suspend/resume validation
  • device-specific audio tuning

The Surface Aggregator transport itself already works.

The machine exposes:

SAM controller:
MSHW0084
\_SB_.SSH_

Surface platform hub:
MSHW0743
\_SB_.WSID

MSHW0743 depends on the SAM controller but is missing from the current Surface Aggregator registry.

The camera hardware is very similar to the Surface Pro 11 Intel:

rear:  OVTID858 / OV13858
front: SONY0681 / IMX681
IR:    SMO55F0 / VD55G0

IPU7 itself already loads successfully. The initial camera problem is sensor enablement / graph integration rather than IPU7 firmware initialization.

Purpose of this issue

I am using this issue as a bring-up and discovery tracker.

The plan is to:

  • identify the actual SP12 hardware differences;
  • test one narrowly scoped change at a time;
  • reuse existing SP11 work where appropriate;
  • avoid copying SP11 assumptions that are not valid on SP12;
  • keep kernel and userspace problems separate;
  • post experimental results and patches here while the hardware behavior is still being characterized.

Once individual fixes are understood and reproducible, I intend to move them into separate PRs rather than turning this issue into one large SP12 patch set.

Relevant previous work:

Expected upstream split

The exact split may change as testing continues, but currently I expect roughly:

  1. Surface Aggregator / MSHW0743

    Small platform-registration change.

    This should be reviewed independently from camera work.

  2. MSHW0040 / soc_button_array

    Deferred-probe fix for the physical buttons.

    This is a generic input-driver/probe-order issue and should remain separate from the SP12 registry patch.

  3. Rear camera / OV13858

    Small kernel series:

    OV13858 SP12 power/runtime-PM support
    OVTID858 ipu-bridge configuration
    

    The sensor driver already exists upstream.

  4. Front camera / IMX681

    Separate kernel series.

    The IMX681 driver is based on Andre Gilerson's Surface Pro 11 implementation:

    Patch enabling speakers, mic, camera, suspend and hibernate, and touchpad configuration for surface pro 11 intel. kernel#164

    The SP12 version is being revalidated against the actual SP12 clock, regulator, reset, D-PHY, timing and gain behavior.

    This should stay separate from the rear-camera series because it adds an entire new sensor driver and needs substantially more review.

  5. libcamera / IMX681

    Any sensor gain interpretation required by libcamera should go to libcamera itself, not into the kernel or a linux-surface kernel patch.

    If the only required userspace change remains the IMX681 CameraSensorHelper, I would prefer a small upstream libcamera MR rather than a large linux-surface userspace workaround.

  6. IR camera / VD55G0

    Separate later work.

    I do not want to carry the old experimental VD55G0 patch chain forward until the two visible cameras are stable.

  7. Image quality / desktop integration

    These will only become patches after the responsible layer is identified.

    For example:

    libcamera / SoftISP
    PipeWire / WirePlumber
    portal
    GNOME Snapshot / libaperture
    

    I do not want to add Surface-specific userspace workarounds before determining which layer actually owns a problem.

The goal of this issue is therefore first to establish:

what works unchanged
what hardware differs
what needs a kernel change
what needs a userspace change
what is already automatically handled by existing Linux components

Then each independently reviewable fix can move to the appropriate upstream project.

Current status (with patch series from below)

  • SSAM / battery / AC / platform profiles / thermals

  • Power and volume buttons

  • Touchscreen and Surface Pen

  • Flex Keyboard and touchpad, including detach / reattach

  • Wi-Fi and Bluetooth

  • USB-C data and display output

  • Speakers and microphone

  • Suspend and power-button resume

  • Tablet-mode switch and GNOME on-screen keyboard

  • Rear OV13858 camera, including correct orientation and privacy LED

  • Front IMX681 camera, including privacy LED and validated gain handling

  • GStreamer, PipeWire, GNOME Snapshot and browser camera support

  • Automatic display rotation — SAM HID sensor / IIO accelerometer still missing

  • Lid-open / keyboard wake

  • Flex Keyboard automatic Bluetooth provisioning

  • IR camera — intentionally out of current scope

  • Speaker high-volume acoustic tuning

  • Upstream IMX681 libcamera helper

  • Upstream generic libcamera GPU SoftISP artifact

  • Upstream the accepted SP12 kernel patches

Surface Pro 12 Intel — reviewable kernel PRs

The independently reviewable kernel changes resulting from this enablement work have now been split into draft PRs against v6.19-surface-devel.

Platform / input:

Camera:

The IMX681 PR is intentionally an RFC/coordination PR because its driver is substantially based on Andre Gilerson's Surface Pro 11 Intel work in linux-surface/kernel#164. The goal there is to converge on one shared SP11/SP12 driver with correct provenance and cross-device validation.

The rear-camera enablement itself is no longer being proposed as a separate SP12 power patch: the existing linux-surface OV13858 support was independently confirmed to probe and stream the SP12 rear camera on the packaged 6.19.8-surface-3 kernel. The remaining SP12 rear-camera changes are therefore limited to the generic bridge metadata correction in #174 and the mounting-rotation quirk in #175.

These PRs are intentionally split by logical problem/subsystem so they can be reviewed independently. This tracker remains the detailed bring-up/testing record.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions


    Back | FazBrowse Home | New Git URL