media: atomisp: add some debug messages when binaries are used
authorMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Fri, 29 May 2020 08:41:02 +0000 (10:41 +0200)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Thu, 11 Jun 2020 16:42:17 +0000 (18:42 +0200)
The ISP firmware logic is complex, as several binaries are
contained into a single file.

Print debug messages:
- with a stack dump if binary not found;
- when a firmware is selected.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/staging/media/atomisp/pci/runtime/binary/src/binary.c

index c10a09c..cca0c61 100644 (file)
@@ -29,6 +29,8 @@
 #include "sh_css_defs.h"
 #include "sh_css_legacy.h"
 
+#include "atomisp_internal.h"
+
 #include "vf/vf_1.0/ia_css_vf.host.h"
 #include "sc/sc_1.0/ia_css_sc.host.h"
 #include "sdis/sdis_1.0/ia_css_sdis.host.h"
@@ -36,7 +38,6 @@
 
 #include "camera/pipe/interface/ia_css_pipe_binarydesc.h"
 
-
 #include "assert_support.h"
 
 #define IMPLIES(a, b)           (!(a) || (b))   /* A => B */
@@ -1375,9 +1376,8 @@ ia_css_binary_fill_info(const struct ia_css_binary_xinfo *xinfo,
        return 0;
 }
 
-int
-ia_css_binary_find(struct ia_css_binary_descr *descr,
-                  struct ia_css_binary *binary) {
+static int __ia_css_binary_find(struct ia_css_binary_descr *descr,
+                               struct ia_css_binary *binary) {
        int mode;
        bool online;
        bool two_ppc;
@@ -1793,9 +1793,32 @@ ia_css_binary_find(struct ia_css_binary_descr *descr,
        ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE,
                            "ia_css_binary_find() leave: return_err=%d\n", err);
 
+       if (!err && xcandidate)
+               dev_dbg(atomisp_dev,
+                       "Using binary %s (id %d), type %d, mode %d, continuous %s\n",
+                       xcandidate->blob->name,
+                       xcandidate->sp.id,
+                       xcandidate->type,
+                       xcandidate->sp.pipeline.mode,
+                       xcandidate->sp.enable.continuous ? "true" : "false");
+
+
        return err;
 }
 
+int ia_css_binary_find(struct ia_css_binary_descr *descr,
+                      struct ia_css_binary *binary)
+{
+       int ret = __ia_css_binary_find(descr, binary);
+
+       if (unlikely(ret)) {
+               dev_dbg(atomisp_dev, "Seeking for binary failed at:");
+               dump_stack();
+       }
+
+       return ret;
+}
+
 unsigned
 ia_css_binary_max_vf_width(void)
 {