[COMMON] media: mfc: call the TS-MUX dump if there's OTF node
authorAyoung Sim <a.sim@samsung.com>
Mon, 14 Jan 2019 10:47:04 +0000 (19:47 +0900)
committerKim Gunho <gunho.kim@samsung.com>
Fri, 28 Jun 2019 14:45:36 +0000 (23:45 +0900)
Change-Id: I4fb8075a6cfe29cb5dae3c6c0ffc2a657f155278
Signed-off-by: Ayoung Sim <a.sim@samsung.com>
drivers/media/platform/exynos/mfc/mfc_data_struct.h
drivers/media/platform/exynos/mfc/mfc_otf.c
drivers/media/platform/exynos/mfc/mfc_otf.h
drivers/media/platform/exynos/mfc/mfc_watchdog.c

index 10abb6589b7392836b2d6ddf04c10ef6e326ce13..525f936f77986862c2129ad8305877c091973b6d 100644 (file)
@@ -760,6 +760,7 @@ struct mfc_dev {
        struct mfc_debug        *logging_data;
 
        int num_inst;
+       int num_otf_inst;
 
        struct mutex mfc_mutex;
 
index 5b6f9137af021bcdc69eaebe63af1f2ff4b683ef..6ccbaaf402ddba5f96f23354444e7ac074411a58 100644 (file)
@@ -13,9 +13,6 @@
 #ifdef CONFIG_VIDEO_EXYNOS_REPEATER
 #include <media/exynos_repeater.h>
 #endif
-#ifdef CONFIG_VIDEO_EXYNOS_TSMUX
-#include <media/exynos_tsmux.h>
-#endif
 #include <media/mfc_hwfc.h>
 
 #include "mfc_otf.h"
@@ -285,6 +282,7 @@ int mfc_otf_create(struct mfc_ctx *ctx)
                }
        }
 
+       dev->num_otf_inst++;
        mfc_debug(2, "[OTF] otf_create is completed\n");
 
        mfc_debug_leave();
@@ -294,6 +292,8 @@ int mfc_otf_create(struct mfc_ctx *ctx)
 
 void mfc_otf_destroy(struct mfc_ctx *ctx)
 {
+       struct mfc_dev *dev = ctx->dev;
+
        mfc_debug_enter();
 
        if (!ctx) {
@@ -303,6 +303,8 @@ void mfc_otf_destroy(struct mfc_ctx *ctx)
 
        mfc_otf_release_stream_buf(ctx);
        __mfc_otf_destroy_handle(ctx);
+
+       dev->num_otf_inst--;
        mfc_debug(2, "[OTF] otf_destroy is completed\n");
 
        mfc_debug_leave();
index 854cd6115a7082e7ad8e958b8983af9c7bc52bf0..e9769ea13df3535481b4c00551b660ad95406b91 100644 (file)
 #ifndef __MFC_OTF_H
 #define __MFC_OTF_H __FILE__
 
+#ifdef CONFIG_VIDEO_EXYNOS_TSMUX
+#include <media/exynos_tsmux.h>
+#endif
+
 #include "mfc_common.h"
 
 extern struct mfc_dev *g_mfc_dev;
index cb156a03d73ce2f3993359f8b53191f1a287a74e..d4ff678024d1bcb90486a129da9c61eb15c1f6e2 100644 (file)
@@ -14,6 +14,7 @@
 #endif
 
 #include "mfc_watchdog.h"
+#include "mfc_otf.h"
 
 #include "mfc_sync.h"
 
@@ -393,6 +394,14 @@ static void __mfc_dump_info(struct mfc_dev *dev)
        __mfc_save_logging_sfr(dev);
        __mfc_dump_buffer_info(dev);
        __mfc_dump_regs(dev);
+
+       if (dev->num_otf_inst) {
+               pr_err("-----------dumping TS-MUX info-----------\n");
+#ifdef CONFIG_VIDEO_EXYNOS_TSMUX
+               tsmux_sfr_dump();
+#endif
+       }
+
        /* If there was fault addr, sysmmu info is already printed out */
        if (!dev->logging_data->fault_addr)
                exynos_sysmmu_show_status(dev->device);