[PATCH RFC 0/2] media: imx681: C-PHY for the Surface Pro 11 (Snapdragon)

From: George Neacsu via B4 Relay

Date: Thu Oct 15 2026 - 17:25:40 EST


Hi Sergey, Andre,

The Snapdragon X Elite Surface Pro 11 (X1E80100) has the same IMX681 as its
user-facing camera, but wired to the Qualcomm CAMSS over one MIPI C-PHY
trio instead of two D-PHY lanes. These two patches, on top of your v8, are
all your driver needs for it: the endpoint picks the bus, and only the
signalling mode, the lane mode and the output PLL multiplier depend on it.
The mode, the video timing PLL and the 720 MHz pixel rate stay as they are;
Windows on the Snapdragon model programs the same video timing, and its
line and frame lengths come to 720 MHz at 30 fps as well, which agrees
with your measurement.

They apply on top of v8:
https://lore.kernel.org/all/20261002082537.74084-1-lsa.uz@xxxxx/

Tested on the Surface Pro 11 (X1E80100) with an out-of-tree CAMSS that
receives C-PHY on CSIPHY2, capturing raw frames through CSID1 and an RDI
interface:
- probe with the endpoint on one C-PHY trio at a 1.2 GHz link frequency
(2.4 Gsym/s, half the symbol rate by the V4L2 convention);
- 3844x2640 at 29.99 fps;
- the colour-bar test pattern arrives intact;
- a scene captures, and VBLANK still sets the frame rate (8.19 fps at
9000 lines);
- the binding accepts one trio with bus-type 1 and two lanes without a
bus-type, and rejects one D-PHY lane or two C-PHY trios.

Not tested: the D-PHY path on the Intel model. It now also writes
CSI_LANE_MODE = 1 (two lanes), which it did not write before. German, if
you have a moment to run v8 with these two on top, that would settle it.

How would you like to take this? I am happy for you to fold the two into
your next version, or to resend them as follow-ups once v8 is merged,
whichever is easier for you and for Sakari.

The board side, the device tree for the Surface Pro 11 cameras, depends on
Bryan's x1e80100 camera DT and CSI2 PHY series and on C-PHY support for
X1E in the PHY driver, so I will send it separately once those settle.

Thanks for the driver,
George

---
George Neacsu (2):
dt-bindings: media: sony,imx681: Allow a C-PHY bus
media: i2c: imx681: Add C-PHY support

.../devicetree/bindings/media/i2c/sony,imx681.yaml | 26 +++++-
drivers/media/i2c/imx681.c | 95 ++++++++++++++++------
2 files changed, 93 insertions(+), 28 deletions(-)
---
base-commit: 07ec64fc237bfa815b380cc4e0c8b7d01ee11681
change-id: 20261015-imx681-x1e-837dd6b45554

Best regards,
--
George Neacsu <geocausa@xxxxxxxxx>