Samsung Galaxy Book6 Pro camera sensor (ACPI HID SSLC2000, IPU7) has no in-tree driver, working out-of-tree fix exists
Onuralp Akca <[email protected]> Wed, 5 Aug 2026 18:14:39 +0200
| Newsgroups | org.kernel.vger.linux-media |
|---|---|
| Message-ID | <CAAKsUJk1CjF2U79+9ztmhCkjGm_=bACyna=fepK+3BAQLVHLbw@mail.gmail.com> |
Hello, On a Samsung Galaxy Book6 Pro (Panther Lake, Intel Core Ultra X7 358H), the integrated MIPI camera is not usable under Linux. The IPU7 driver probes successfully and loads firmware, but no sensor subdevice is registered, so the media graph stays empty: intel-ipu7 0000:00:05.0: no subdev found in graph The camera sensor presents itself with ACPI HID SSLC2000, for which there was no in-tree driver. I could not find any prior public reference to this HID, so this may be the first report of it. Since first working on this, a community fix has surfaced here: https://github.com/Jabbslad/sc200pc-linux It confirms and completes the diagnosis below: - The sensor is a Samsung/SmartSens SC200PC, ACPI HID SSLC2000, on I2C3 at address 0x36, matching the ACPI data below. - drivers/media/pci/intel/ipu-bridge.c has no entry for SSLC2000 in ipu_supported_sensors[]. Because of that, ipu-bridge never builds a software-node graph for the sensor, and intel-ipu7 correctly reports "no subdev found in graph", which is the exact symptom seen here. - The fix is a two-line addition to ipu_supported_sensors[] (patch: patches/ipu-bridge-add-sslc2000.patch in the repo above), plus a new out-of-tree V4L2 sensor driver (sc200pc.c, a 141-entry init table reverse-engineered from the OEM Windows sc200pc.sys driver), since no in-tree driver exists for this sensor yet. - I have confirmed this working end to end on Fedora 44, kernel 7.1.5-201.fc44.x86_64 (the repo itself only targeted Arch). qcam captures real frames, and Firefox picks up the camera correctly via PipeWire/libcamera at 1920x1080 30fps. This is currently packaged as an out-of-tree DKMS solution, but both pieces seem small enough to be reasonable candidates for upstreaming. ipu-bridge.c just needs the sensor added to its config table, and sc200pc.c would need to go through the usual V4L2 sensor driver review (register table cleanup, CameraSensorHelper / CameraSensorProperties entries for libcamera, and so on). I am filing this report with that context in case it helps prioritise or review the upstreaming work. I am happy to test patches on this hardware. Below is the original diagnosis I put together before finding the existing fix, kept for reference in case the ACPI details are useful. SYSTEM Machine: Samsung Galaxy Book6 Pro 14" DMI system-product-name: Galaxy Book6 Pro - PRHK DMI system-family: Galaxy Book6 Pro DMI system-version: 1.0 DMI baseboard-product-name: NP940XJG-KG7DE BIOS version: PRHK.1.2.48.546 SoC: Intel Core Ultra X7 358H (Panther Lake) Distro: Fedora 44 Kernel: 7.1.5-201.fc44.x86_64 (stock Fedora) IPU: 00:05.0 Multimedia controller: Intel Corporation Panther Lake IPU (rev 04), device id 0xb05d WHAT WORKS The IPU7 side comes up cleanly. Relevant dmesg: intel_ipu7: module is from the staging directory, the quality is unknown, you have been warned. intel-ipu7 0000:00:05.0: enabling device (0000 -> 0002) intel-ipu7 0000:00:05.0: Device 0xb05d (rev: 0x4) intel-ipu7 0000:00:05.0: IPU7 SKU 1 in secure mode mask 0x0 intel-ipu7 0000:00:05.0: firmware cpd file: intel/ipu/ipu7ptl_fw.bin intel-ipu7 0000:00:05.0: FW binary0 info: intel-ipu7 0000:00:05.0: Name: psys intel-ipu7 0000:00:05.0: Version: 1.2.1.251215214352 intel-ipu7 0000:00:05.0: FW binary1 info: intel-ipu7 0000:00:05.0: Name: isys intel-ipu7 0000:00:05.0: Version: 1.2.1.251215214331 intel-ipu7 0000:00:05.0: Sending BOOT_LOAD to CSE intel-ipu7 0000:00:05.0: Sending AUTHENTICATE_RUN to CSE intel-ipu7 0000:00:05.0: CSE authenticate_run done intel_ipu7_isys: module is from the staging directory, the quality is unknown, you have been warned. intel-ipu7 0000:00:05.0: no subdev found in graph intel_skl_int3472_discrete and ipu_bridge are both loaded (before the fix above). THE SENSOR DEVICE The sensor ACPI node is \_SB.LNK0, which reports itself as present and functional: $ cat /sys/bus/acpi/devices/SSLC2000:00/status 15 Evaluated live via acpi_call: \_SB.LNK0._STA -> 0xf \_SB.LNK0._HID -> "SSLC2000" \_SB.DSC0._STA -> 0xf (the INT3472 PMIC/power controller for this link) \_SB.LNK1._STA -> 0x0 (second link, not populated) _HID is a method, not a static Name, so the HID only becomes visible at runtime. It is produced by an HCID() helper in the MiCaTb/MiCaTabl SSDT which selects between several possible sensor modules for this board design. There are also five OVTI08F4 ACPI nodes with status = 0. These appear to be the unpopulated alternative sensor variants for the same board, not the sensor actually fitted here. I initially chased those, which was a red herring, worth flagging in case others hit the same confusion on Samsung Panther Lake machines. RESOURCES \_SB.LNK0._CRS decodes to two I2cSerialBus descriptors, both on \_SB.PC00.I2C3: slave address 0x36 (presumably the sensor itself) slave address 0x50 (presumably an EEPROM, calibration/OTP data) SSDB Raw \_SB.LNK0.SSDB dump (110 bytes), decoded values of note: a lane count field that reads as 2 (2-lane MIPI CSI-2) 0x80 0xba 0x8c 0x01 little-endian = 0x018CBA80 = 25,920,000, plausibly an MCLK or link frequency in Hz Full raw buffer available on request. WHAT THIS IS NOT To save others the same detour, I ruled out the following: Not the Intel CVS dependency. There is no INTC10DE / INTC10E0 / INTC10CF / INTC10E1 / INTC10FA device anywhere in this machine's ACPI tables, and \_SB.LNK0._DEP does not reference one. Building and loading intel_cvs from intel/vision-drivers has no effect here, it binds nothing. This differs from the reported Dell XPS and ThinkPad X1 Carbon Gen 14 Panther Lake cases. Not Samsung's "block recording" privacy feature. The samsung-galaxybook driver binds (ACPI ID SAM0430) and creates the "Samsung Galaxy Book Camera Lens Cover" input device; evtest --query ... SW_CAMERA_LENS_COVER returns 0 (not blocked). Not a disabled/absent device. _STA returns 0x0f for both the sensor link and its INT3472 power controller. Not an _OSI / OSYS quirk. The DSDT's highest recognised value is "Windows 2022", which Linux already reports. No UEFI setting. This machine's firmware setup exposes no camera toggle. No firmware update available via fwupd/LVFS for this model. Thanks for reading, and happy to provide the full DSDT/SSDT dumps or run further tests on this hardware. Regards Onuralp Akca