Re: [PATCH v8 01/18] media: iris: Add Gen2 firmware autodetect and fallback
Bryan O'Donoghue <[email protected]> Thu, 30 Jul 2026 21:02:11 +0100
| Newsgroups | org.kernel.vger.linux-media,org.kernel.vger.linux-arm-msm,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
On 30/07/2026 16:20, Dmitry Baryshkov wrote: > From: Dikshita Agarwal<[email protected]> > > Some Iris platforms support both Gen1 and Gen2 HFI firmware images. > Update the firmware loading logic to handle this generically by > preferring Gen2 when available, while safely falling back to Gen1 > when required. > > The firmware loading logic is updated with the following priority: > 1. Device Tree (`firmware-name`): If specified, load unconditionally. > 2. Gen2 default : If no DT override exists, select the Gen2 firmware > descriptor when present and attempt to load the corresponding > firmware image. > 3. Gen1 Fallback: If loading the Gen2 firmware fails and a Gen1 > descriptor is available, retry with the Gen1 firmware image. > > Loading and generation detection are split into two steps. > iris_load_firmware() applies the priority above and returns the loaded > image together with a candidate descriptor. iris_detect_firmware() then > runs only after qcom_mdt_load() has succeeded and publishes the chosen > descriptor, so the driver commits to a HFI generation only for an image > that has actually been loaded. > > When a platform provides both Gen1 and Gen2 firmware descriptors and the > firmware is loaded via a DT override, the candidate descriptor is only a > default: iris_detect_firmware() inspects the loaded image to pick the > generation, before authentication. It scans the memory populated by > qcom_mdt_load() rather than the request_firmware() blob, so that a split > .mdt image, whose version string lives in the .bNN data segments and not > in the ELF headers, is classified correctly. The firmware is classified > as Gen2 if the QC_IMAGE_VERSION_STRING starts with "vfw" or matches the > "video-firmware.N.M" format with N >= 2. > > If a Gen1 firmware image is detected in this case, the driver switches > to the Gen1 firmware descriptor and associated platform data so that > the correct HFI implementation is used. > > This change makes firmware generation detection platform‑agnostic, > preserves DT overrides, prefers newer Gen2 firmware when available, > and maintains compatibility with platforms that only support Gen1. > > Signed-off-by: Dikshita Agarwal<[email protected]> > Co-developed-by: Dmitry Baryshkov<[email protected]> > Signed-off-by: Dmitry Baryshkov<[email protected]> Reviewed-by: Bryan O'Donoghue <[email protected]>