Loading drivers/media/platform/msm/sde/rotator/sde_rotator_core.c +20 −0 Original line number Diff line number Diff line Loading @@ -3194,6 +3194,26 @@ void sde_rotator_core_destroy(struct sde_rot_mgr *mgr) devm_kfree(dev, mgr); } void sde_rotator_core_dump(struct sde_rot_mgr *mgr) { if (!mgr) { SDEROT_ERR("null parameters\n"); return; } sde_rotator_resource_ctrl(mgr, true); /* dump first snapshot */ if (mgr->ops_hw_dump_status) mgr->ops_hw_dump_status(mgr->hw_data); SDEROT_EVTLOG_TOUT_HANDLER("rot", "rot_dbg_bus", "vbif_dbg_bus"); /* dump second snapshot for comparison */ if (mgr->ops_hw_dump_status) mgr->ops_hw_dump_status(mgr->hw_data); sde_rotator_resource_ctrl(mgr, false); } static void sde_rotator_suspend_cancel_rot_work(struct sde_rot_mgr *mgr) { struct sde_rot_file_private *priv, *priv_next; Loading drivers/media/platform/msm/sde/rotator/sde_rotator_core.h +7 −0 Original line number Diff line number Diff line Loading @@ -478,6 +478,7 @@ struct sde_rot_mgr { int (*ops_hw_get_downscale_caps)(struct sde_rot_mgr *mgr, char *caps, int len); int (*ops_hw_get_maxlinewidth)(struct sde_rot_mgr *mgr); void (*ops_hw_dump_status)(struct sde_rot_mgr *mgr); void *hw_data; }; Loading Loading @@ -569,6 +570,12 @@ int sde_rotator_core_init(struct sde_rot_mgr **pmgr, */ void sde_rotator_core_destroy(struct sde_rot_mgr *mgr); /* * sde_rotator_core_dump - perform register dump * @mgr: Pointer to rotator manager */ void sde_rotator_core_dump(struct sde_rot_mgr *mgr); /* * sde_rotator_session_open - open a new rotator per file session * @mgr: Pointer to rotator manager Loading drivers/media/platform/msm/sde/rotator/sde_rotator_debug.c +0 −12 Original line number Diff line number Diff line Loading @@ -637,18 +637,6 @@ static void sde_rot_evtlog_debug_work(struct work_struct *work) sde_rot_dbg_evtlog.work_rot_dbgbus); } /* * sde_rot_dump_panic - Issue evtlog dump and generic panic */ void sde_rot_dump_panic(bool do_panic) { sde_rot_evtlog_dump_all(); sde_rot_dump_reg_all(); if (do_panic) panic("sde_rotator"); } /* * sde_rot_evtlog_tout_handler - log dump timeout handler * @queue: boolean indicate putting log dump into queue Loading drivers/media/platform/msm/sde/rotator/sde_rotator_debug.h +0 −1 Original line number Diff line number Diff line Loading @@ -42,7 +42,6 @@ enum sde_rot_dbg_evtlog_flag { SDE_ROT_EVTLOG_TOUT_DATA_LIMITER) void sde_rot_evtlog(const char *name, int line, int flag, ...); void sde_rot_dump_panic(bool do_panic); void sde_rot_evtlog_tout_handler(bool queue, const char *name, ...); struct sde_rotator_device; Loading drivers/media/platform/msm/sde/rotator/sde_rotator_dev.c +16 −1 Original line number Diff line number Diff line Loading @@ -1745,7 +1745,22 @@ EXPORT_SYMBOL(sde_rotator_inline_commit); void sde_rotator_inline_reg_dump(struct platform_device *pdev) { sde_rot_dump_panic(false); struct sde_rotator_device *rot_dev; if (!pdev) { SDEROT_ERR("invalid platform device\n"); return; } rot_dev = (struct sde_rotator_device *) platform_get_drvdata(pdev); if (!rot_dev || !rot_dev->mgr) { SDEROT_ERR("invalid rotator device\n"); return; } sde_rot_mgr_lock(rot_dev->mgr); sde_rotator_core_dump(rot_dev->mgr); sde_rot_mgr_unlock(rot_dev->mgr); } EXPORT_SYMBOL(sde_rotator_inline_reg_dump); Loading Loading
drivers/media/platform/msm/sde/rotator/sde_rotator_core.c +20 −0 Original line number Diff line number Diff line Loading @@ -3194,6 +3194,26 @@ void sde_rotator_core_destroy(struct sde_rot_mgr *mgr) devm_kfree(dev, mgr); } void sde_rotator_core_dump(struct sde_rot_mgr *mgr) { if (!mgr) { SDEROT_ERR("null parameters\n"); return; } sde_rotator_resource_ctrl(mgr, true); /* dump first snapshot */ if (mgr->ops_hw_dump_status) mgr->ops_hw_dump_status(mgr->hw_data); SDEROT_EVTLOG_TOUT_HANDLER("rot", "rot_dbg_bus", "vbif_dbg_bus"); /* dump second snapshot for comparison */ if (mgr->ops_hw_dump_status) mgr->ops_hw_dump_status(mgr->hw_data); sde_rotator_resource_ctrl(mgr, false); } static void sde_rotator_suspend_cancel_rot_work(struct sde_rot_mgr *mgr) { struct sde_rot_file_private *priv, *priv_next; Loading
drivers/media/platform/msm/sde/rotator/sde_rotator_core.h +7 −0 Original line number Diff line number Diff line Loading @@ -478,6 +478,7 @@ struct sde_rot_mgr { int (*ops_hw_get_downscale_caps)(struct sde_rot_mgr *mgr, char *caps, int len); int (*ops_hw_get_maxlinewidth)(struct sde_rot_mgr *mgr); void (*ops_hw_dump_status)(struct sde_rot_mgr *mgr); void *hw_data; }; Loading Loading @@ -569,6 +570,12 @@ int sde_rotator_core_init(struct sde_rot_mgr **pmgr, */ void sde_rotator_core_destroy(struct sde_rot_mgr *mgr); /* * sde_rotator_core_dump - perform register dump * @mgr: Pointer to rotator manager */ void sde_rotator_core_dump(struct sde_rot_mgr *mgr); /* * sde_rotator_session_open - open a new rotator per file session * @mgr: Pointer to rotator manager Loading
drivers/media/platform/msm/sde/rotator/sde_rotator_debug.c +0 −12 Original line number Diff line number Diff line Loading @@ -637,18 +637,6 @@ static void sde_rot_evtlog_debug_work(struct work_struct *work) sde_rot_dbg_evtlog.work_rot_dbgbus); } /* * sde_rot_dump_panic - Issue evtlog dump and generic panic */ void sde_rot_dump_panic(bool do_panic) { sde_rot_evtlog_dump_all(); sde_rot_dump_reg_all(); if (do_panic) panic("sde_rotator"); } /* * sde_rot_evtlog_tout_handler - log dump timeout handler * @queue: boolean indicate putting log dump into queue Loading
drivers/media/platform/msm/sde/rotator/sde_rotator_debug.h +0 −1 Original line number Diff line number Diff line Loading @@ -42,7 +42,6 @@ enum sde_rot_dbg_evtlog_flag { SDE_ROT_EVTLOG_TOUT_DATA_LIMITER) void sde_rot_evtlog(const char *name, int line, int flag, ...); void sde_rot_dump_panic(bool do_panic); void sde_rot_evtlog_tout_handler(bool queue, const char *name, ...); struct sde_rotator_device; Loading
drivers/media/platform/msm/sde/rotator/sde_rotator_dev.c +16 −1 Original line number Diff line number Diff line Loading @@ -1745,7 +1745,22 @@ EXPORT_SYMBOL(sde_rotator_inline_commit); void sde_rotator_inline_reg_dump(struct platform_device *pdev) { sde_rot_dump_panic(false); struct sde_rotator_device *rot_dev; if (!pdev) { SDEROT_ERR("invalid platform device\n"); return; } rot_dev = (struct sde_rotator_device *) platform_get_drvdata(pdev); if (!rot_dev || !rot_dev->mgr) { SDEROT_ERR("invalid rotator device\n"); return; } sde_rot_mgr_lock(rot_dev->mgr); sde_rotator_core_dump(rot_dev->mgr); sde_rot_mgr_unlock(rot_dev->mgr); } EXPORT_SYMBOL(sde_rotator_inline_reg_dump); Loading