Bug 2509956

Summary: IR camera (ST VD55G1, ACPI TBE20A1) on ThinkPad X1 Carbon Gen 14 not enumerated — vd55g1 driver lacks ACPI support
Product: [Fedora] Fedora Reporter: Jacob Riff <jacob>
Component: kernelAssignee: Justin M. Forbes <jforbes>
Status: NEW --- QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: low Docs Contact:
Priority: unspecified    
Version: 45CC: acaringi, adscvr, airlied, hans, hpa, jforbes, kernel-maint, linville, masami256, mchehab, nickolasjcarr, ptalbert, steved, suraj.ghimire7
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: ---
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Jacob Riff 2026-08-01 01:53:33 UTC
Follow-up from bug 2483180 comment 45, split into its own ticket as requested.

The IR camera on the ThinkPad X1 Carbon Gen 14 (tested: 21V7CTO1WW) is an ST VD55G1 (mono, global shutter) behind ACPI HID TBE20A1, on the same IPU7 as the IMX471 (1 CSI-2 lane, port 2). Sensor identity was taken from the tuning-file metadata in Lenovo's Windows driver package for this HID and confirmed on the wire: the mainline vd55g1 driver's probe reads back model id 0x53354731.

With four small changes it streams end to end (Y10 804x704@30, working AE, concurrent with the IMX471):

1. vd55g1: ACPI match table with TBE20A1 (driver is fwnode-based; this is sufficient, as you noted)
2. ipu-bridge: IPU_SENSOR_CONFIG("TBE20A1", 1, 600000000) (600 MHz verified streaming)
3. int3472: power-enable GPIO mapped to con_id "vana" for TBE20A1 (same pattern as the IMX471 entries; without it probing fails on a dummy regulator)
4. ipu7-isys: add a V4L2_PIX_FMT_Y10 entry to the pixel format table — Y10_1X10 is already in csi2_supported_codes and the RAW10 mapping, but with no video-node format, mono sensors pass subdev negotiation and then fail STREAMON with EPIPE

Working patches, dmesg logs, and the capture recipe: https://github.com/jriff/x1c14-ir-vd55g1

I have the hardware (21V7CTO1WW) and am happy to test patches and provide Tested-by. Note for expectations: the IR emitter is not driven by anything yet, so indoor LED-lit scenes are near-black; daylight works fine.