Fairphone 6's wide camera gets experimental mainline Linux support
Fairphone 6's OmniVision wide camera now works experimentally on mainline Linux via a ported qcom-camss driver for the milos SoC.
A developer has gotten the Fairphone 6's OmniVision OV13B10 ultra-wide camera working experimentally on mainline Linux and postmarketOS. The phone's Qualcomm SM7635 (milos) SoC required extending the qcom-camss driver with new TFE665, CSID665, and CSIPHY v2.2.1 hardware blocks, largely ported from the downstream Android kernel because their register layouts closely match already-supported TFE530/CSID IP.
Two notable bugs surfaced along the way: a missing AHB bus clock (CAM_CC_SOC_AHB_CLK) that caused ISP registers to read as zero, and a mysterious all-black-frame issue traced to the mainline driver hard-coding a 64-bit RDI packer format meant for TFE530, when TFE665 actually uses a 128-bit bus requiring a different value.
The work illustrates how camera support can be brought to mainline Linux on Qualcomm SoCs without vendor cooperation, by exploiting register-level similarities between hardware revisions. Audio and the phone's other two cameras remain unsupported, but the wide camera now works well enough for use cases like QR code scanning.