Skip to content

Webcam not working on Huawei MateBook Pro (VGHH-XX) - Intel Core Ultra 7 155H #399

@abbood

Description

@abbood

System Information

Laptop Model: Huawei MateBook Pro VGHH-XX
CPU: Intel(R) Core(TM) Ultra 7 155H
BIOS Version: 1.18
Distribution: Arch Linux (Omarchy)
Kernel: 6.17.9-arch1-1
Display Manager: Wayland/Hyprland

Camera Hardware

Detected ACPI Devices:

OVTI01AS:00 - OmniVision OV01A1S (1MP IR camera, likely Windows Hello)
OVTI13B1:00 - OmniVision OV13B10 (13MP main camera)

ACPI Status:

$ cat /sys/bus/acpi/devices/OVTI*/status
0
0

Both cameras show status 0 (disabled), despite Camera Enable being ON in BIOS.

INT3472 PMIC Devices: 19 detected (INT3472:00 through INT3472:12)

IPU6 Status

$ sudo dmesg | grep -i ipu6
[    2.XXXXXX] intel-ipu6 0000:00:05.0: IPU6 in secure mode

Media Controller Topology:

  • 6 CSI-2 interfaces (Intel IPU6 CSI2 0-5)
  • 48 capture devices (/dev/video0 through /dev/video47)
  • All configured for SGRBG10_1X10/4096x3072 (raw Bayer format)
$ media-ctl -d /dev/media0 -p
# Shows 6 CSI-2 receivers, each with 8 output pads
# No sensor devices connected to any CSI-2 sink pads

libcamera Status:

$ cam -l
[17:51:51.162905235] [2443340]  INFO SimplePipeline simple.cpp:1686 No sensor found for /dev/media0
Available cameras:

Installed Packages

intel-ipu6-camera-bin r92.30e8766-1
intel-ipu6-dkms-git r245.69b2fde9e-1
intel-ipu6ep-camera-hal-git r126.c933525-1
intel-ipu6ep-camera-hal-git-debug r126.c933525-1
libcamera 0.5.2-1
libcamera-ipa 0.5.2-1
libcamera-tools 0.5.2-1

Loaded Kernel Modules

$ lsmod | grep -E "ipu6|ov|imx"
overlay               245760  0
intel_ipu6_psys       114688  0
intel_ipu6_isys       143360  0
v4l2_fwnode            36864  1 intel_ipu6_isys
videobuf2_dma_sg       24576  1 intel_ipu6_isys
videobuf2_v4l2         40960  2 intel_ipu6_isys,uvcvideo
videobuf2_common       94208  6 videobuf2_vmalloc,videobuf2_v4l2,intel_ipu6_isys,uvcvideo,videobuf2_dma_sg,videobuf2_memops
v4l2_async             32768  2 v4l2_fwnode,intel_ipu6_isys
videodev              401408  5 v4l2_async,v4l2_fwnode,videobuf2_v4l2,intel_ipu6_isys,uvcvideo
mc                     90112  7 v4l2_async,videodev,snd_usb_audio,videobuf2_v4l2,intel_ipu6_isys,uvcvideo,videobuf2_common
intel_ipu6             86016  2 intel_ipu6_isys,intel_ipu6_psys
ipu_bridge             24576  2 intel_ipu6,intel_ipu6_isys
pmt_discovery          16384  1 pmt_telemetry
pmt_class              20480  2 pmt_telemetry,pmt_discovery

Note: No OmniVision sensor modules (ov13b10, ov01a10, etc.) are loaded, despite being available in the kernel.

Available Sensor Modules

$ find /lib/modules/$(uname -r) -name "ov*.ko*" -o -name "imx*.ko*" | grep camera
# Multiple OV and IMX sensor modules available including:
# ov01a10.ko.zst
# ov13b10.ko.zst (matches OVTI13B1)
# imx258.ko.zst
# etc.

Manual modprobe ov13b10 loads successfully but produces no dmesg output and doesn't bind to ACPI devices.

I2C Bus Status

$ ls /sys/bus/i2c/devices/
# Multiple i2c buses (i2c-0 through i2c-20)
# No OmniVision camera devices present
# Expected devices like i2c-OVTI13B1:00 or i2c-OVTI01AS:00 are missing

The ACPI camera devices exist but are not bridged to I2C - no physical_node links or I2C device bindings.

BIOS Settings

Advanced → Camera Enable: ON (blue toggle, enabled)

This confirms the hardware is not disabled at BIOS level.

Troubleshooting Attempts

1. ACPI OSI Override

Attempted to force Windows ACPI behavior:

Kernel Parameter Tested: acpi_osi=Windows 2020

Result: No change - ACPI status remained 0 for both cameras.

Rationale: Huawei's ACPI firmware might enable camera devices only when Windows OS is detected. This approach works on some laptops but did not affect the OVTI devices.

2. Manual Sensor Module Loading

$ sudo modprobe ov13b10
$ sudo modprobe ov01a10
$ dmesg | tail -20
# No new messages - modules loaded but didn't bind to any devices

3. I2C Device Detection

No camera sensors appear on any I2C bus, suggesting ipu_bridge is not creating the necessary I2C client devices from ACPI.

Root Cause Analysis

The fundamental issue: ipu_bridge module is loaded but failing to:

  1. Parse the ACPI SSDB (Sensor Static Database) entries for OVTI01AS and OVTI13B1
  2. Create I2C client devices for these sensors
  3. Bind the appropriate sensor drivers (ov01a10/ov13b10) to them
  4. Connect them to IPU6 CSI-2 interfaces

Evidence:

  • ACPI devices exist (OVTI01AS:00, OVTI13B1:00) with status=0
  • 19 INT3472 PMIC devices detected (camera power management)
  • IPU6 CSI-2 receivers initialized and ready
  • Sensor drivers available but not loaded/bound
  • No I2C device bindings created
  • libcamera reports "No sensor found"

Hypothesis: Huawei's ACPI implementation either:

  • Uses non-standard SSDB format that ipu_bridge can't parse
  • Requires specific ACPI methods to be called before exposing sensors
  • Has ACPI status set incorrectly (status=0 instead of 15)
  • Needs vendor-specific quirks/workarounds

Similar Issues

This appears similar to other laptop manufacturers with IPU6 cameras where ACPI tables don't follow Intel's reference implementation (e.g., certain Dell, Samsung, ASUS models).

Questions

  1. Does ipu_bridge support the ACPI format used by Huawei MateBook Pro? Are there known quirks needed?

  2. Why do ACPI devices show status=0 despite BIOS having Camera Enable=ON? Is there an ACPI method that needs to be called to enable them?

  3. Can we manually force I2C device creation? Is there a way to bypass ipu_bridge and manually create I2C clients for the sensors?

  4. Should we expect dmesg errors from ipu_bridge? Currently there are no error messages, just silent failure to create devices.

  5. Is there a way to dump/inspect the ACPI SSDB data to verify it exists and is correctly formatted?

Logs Available

I can provide:

  • Full dmesg output
  • Complete /proc/acpi dump
  • ACPI DSDT/SSDT tables (extracted via acpidump)
  • Detailed media-ctl topology
  • Any other diagnostic output needed

Expected Behavior

  • ACPI devices should show status=15 (enabled)
  • ipu_bridge should create I2C devices (i2c-OVTI13B1:00, i2c-OVTI01AS:00)
  • Sensor modules should auto-load and bind
  • libcamera should detect cameras
  • Applications like Chromium should be able to access camera

Workaround

Currently using external USB webcam as a temporary solution.


Any guidance on debugging this further or information needed to add Huawei MateBook Pro support would be greatly appreciated!

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