media: atomisp: Prefix firmware paths with "intel/ipu/"
authorHans de Goede <hdegoede@redhat.com>
Mon, 3 Jun 2024 13:20:55 +0000 (15:20 +0200)
committerHans Verkuil <hverkuil-cisco@xs4all.nl>
Tue, 2 Jul 2024 19:23:13 +0000 (21:23 +0200)
The atomisp firmwares have been added to upstream linux-firmware
under intel/ipu/ add this prefix to the firmware name passed
to request_firmware().

Fall back to the old location if this fails to avoid breaking existing
setups.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Andy Shevchenko <andy@kernel.org>
Link: https://lore.kernel.org/r/20240603132057.255917-3-hdegoede@redhat.com
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
drivers/staging/media/atomisp/pci/atomisp_v4l2.c

index cfdfbf96c3fec2130da89411f15ad179641c6c42..c9984f1557b0a19c11cba8b7b0fa466fd55031e3 100644 (file)
@@ -1099,17 +1099,17 @@ atomisp_load_firmware(struct atomisp_device *isp)
 
        if ((isp->media_dev.hw_revision >> ATOMISP_HW_REVISION_SHIFT) ==
            ATOMISP_HW_REVISION_ISP2401)
-               fw_path = "shisp_2401a0_v21.bin";
+               fw_path = "intel/ipu/shisp_2401a0_v21.bin";
 
        if (isp->media_dev.hw_revision ==
            ((ATOMISP_HW_REVISION_ISP2401_LEGACY << ATOMISP_HW_REVISION_SHIFT) |
             ATOMISP_HW_STEPPING_A0))
-               fw_path = "shisp_2401a0_legacy_v21.bin";
+               fw_path = "intel/ipu/shisp_2401a0_legacy_v21.bin";
 
        if (isp->media_dev.hw_revision ==
            ((ATOMISP_HW_REVISION_ISP2400 << ATOMISP_HW_REVISION_SHIFT) |
             ATOMISP_HW_STEPPING_B0))
-               fw_path = "shisp_2400b0_v21.bin";
+               fw_path = "intel/ipu/shisp_2400b0_v21.bin";
 
        if (!fw_path) {
                dev_err(isp->dev, "Unsupported hw_revision 0x%x\n",
@@ -1118,6 +1118,9 @@ atomisp_load_firmware(struct atomisp_device *isp)
        }
 
        rc = request_firmware(&fw, fw_path, isp->dev);
+       /* Fallback to old fw_path without "intel/ipu/" prefix */
+       if (rc)
+               rc = request_firmware(&fw, kbasename(fw_path), isp->dev);
        if (rc) {
                dev_err(isp->dev,
                        "atomisp: Error %d while requesting firmware %s\n",