media: atomisp: provide more details about the firmware binaries
authorMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Fri, 29 May 2020 06:10:30 +0000 (08:10 +0200)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Thu, 11 Jun 2020 16:37:47 +0000 (18:37 +0200)
In order to make easier to identify what a firmware file
contains, add more info at the firmware dump log facility.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/staging/media/atomisp/pci/atomisp_compat_css20.c
drivers/staging/media/atomisp/pci/ia_css_acc_types.h
drivers/staging/media/atomisp/pci/sh_css_firmware.c

index 9028c79291963c99899c96261ae70c0dcdb4fc71..d7cecc45224ff32597211deb220ec029295a8e3c 100644 (file)
@@ -4310,6 +4310,20 @@ int atomisp_css_dump_sp_raw_copy_linecount(bool reduced)
        return 0;
 }
 
+static const char * const fw_type_name[] = {
+       [ia_css_sp_firmware]            = "SP",
+       [ia_css_isp_firmware]           = "ISP",
+       [ia_css_bootloader_firmware]    = "BootLoader",
+       [ia_css_acc_firmware]           = "accel",
+};
+
+static const char * const fw_acc_type_name[] = {
+       [IA_CSS_ACC_NONE] =             "Normal",
+       [IA_CSS_ACC_OUTPUT] =           "Accel stage on output",
+       [IA_CSS_ACC_VIEWFINDER] =       "Accel stage on viewfinder",
+       [IA_CSS_ACC_STANDALONE] =       "Stand-alone acceleration",
+};
+
 int atomisp_css_dump_blob_infor(void)
 {
        struct ia_css_blob_descr *bd = sh_css_blob_info;
@@ -4320,9 +4334,28 @@ int atomisp_css_dump_blob_infor(void)
        if (!bd)
                return -EPERM;
 
-       for (i = 1; i < sh_css_num_binaries; i++)
-               dev_dbg(atomisp_dev, "Num%d binary id is %d, name is %s\n", i,
-                       bd[i - 1].header.info.isp.sp.id, bd[i - 1].name);
+       /*
+        * The sh_css_load_firmware function discard the initial
+        * "SPS" binaries
+        */
+       for (i = 0; i < sh_css_num_binaries - NUM_OF_SPS; i++) {
+               switch (bd[i].header.type) {
+               case ia_css_isp_firmware:
+                       dev_dbg(atomisp_dev,
+                               "Num%2d type %s (%s), binary id is %2d, name is %s\n",
+                               i + NUM_OF_SPS,
+                               fw_type_name[bd[i].header.type],
+                               fw_acc_type_name[bd[i].header.info.isp.type],
+                               bd[i].header.info.isp.sp.id,
+                               bd[i].name);
+                       break;
+               default:
+                       dev_dbg(atomisp_dev,
+                               "Num%2d type %s, name is %s\n",
+                               i + NUM_OF_SPS, fw_type_name[bd[i].header.type],
+                               bd[i].name);
+               }
+       }
 
        return 0;
 }
index 55b4dc9bb5ea563cca0d9b76730f04f6e141855a..557fe8a3c18f19939d51d859f5c17aff82b4e353 100644 (file)
@@ -62,8 +62,8 @@ enum ia_css_cell_type {
  */
 enum ia_css_fw_type {
        ia_css_sp_firmware,             /** Firmware for the SP */
-       ia_css_isp_firmware,    /** Firmware for the ISP */
-       ia_css_bootloader_firmware, /** Firmware for the BootLoader */
+       ia_css_isp_firmware,            /** Firmware for the ISP */
+       ia_css_bootloader_firmware,     /** Firmware for the BootLoader */
        ia_css_acc_firmware             /** Firmware for accelrations */
 };
 
index 5009f47abf01884f320bca2ae2225e08cfe316de..63415356c36d9949cfd5b64f887a95bf9862aece 100644 (file)
@@ -282,6 +282,8 @@ sh_css_load_firmware(struct device *dev, const char *fw_data,
                        err = setup_binary(bi, fw_data, &sh_css_sp_fw, i);
                        if (err)
                                return err;
+                       dev_dbg(dev, "firmware #%d (SP), name %s\n", i, bd.name);
+
                } else {
                        /* All subsequent binaries (including bootloaders) (i>NUM_OF_SPS) are ISP firmware */
                        if (i < NUM_OF_SPS)