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.
This synthesis was produced from its source by AI; there is no human editor or manual review step. How we work