arm64: dts: qcom: purwa: Microsoft Surface Pro 12in: point iris at the OEM video firmware The generic qcom/vpu/vpu30_p1_s7.mbn shipped by linux-firmware is signed with the Qualcomm SecTools test key chain ("SECTOOLS SECP384R1 CURVE TEST ROOT" / "General Use Test Key (for testing only)"), which the TrustZone on a retail Surface Pro 12in refuses: qcom-iris aa00000.video-codec: error -22 initializing firmware qcom/vpu/vpu30_p1_s7.mbn qcom-iris aa00000.video-codec: firmware download failed qcom-iris aa00000.video-codec: core init failed The -22 comes straight out of qcom_scm_pas_init_image() in __qcom_mdt_pas_init(), i.e. the image metadata is rejected before anything is loaded. The Windows driver package for this machine carries the same firmware signed with the production chain ("QMC Attestation Root CA 6"), in two builds: qcvss8380.mbn and qcvss8380_pa.mbn. The _pa one is what loads here. It has an identical 7 MiB load span, so it fits the existing video_mem reservation unchanged. Point the iris node at it, the same way the board already does for the aDSP, cDSP and GPU firmware. --- a/arch/arm64/boot/dts/qcom/x1p42100-microsoft-sp12in.dts +++ b/arch/arm64/boot/dts/qcom/x1p42100-microsoft-sp12in.dts @@ -1098,6 +1098,7 @@ }; &iris { + firmware-name = "qcom/x1p42100/Microsoft/Surface12/qcvss8380_pa.mbn"; status = "okay"; };