From dd01cccb50c493c38ac1ce35cd5612c83f1f9b77 Mon Sep 17 00:00:00 2001 From: Sumit Gupta Date: Wed, 8 Aug 2018 12:13:06 +0530 Subject: platform: tegra: check clock enabled before register access Adding check for clock enabled by calling __clk_is_enabled() before accessing registers for CV-NOC. This was causing additional CBB errors on reading error valid register of CV-NOC while reporting original SError cause due to any illegal access in other cluster NOC's. Bug 200340783 Change-Id: I819f99264c4e934e6ae0facf39d35fed15e79957 Signed-off-by: Sumit Gupta Reviewed-on: https://git-master.nvidia.com/r/1794891 GVS: Gerrit_Virtual_Submit Reviewed-by: Puneet Saxena Reviewed-by: Alexander Van Brunt Reviewed-by: mobile promotions Tested-by: mobile promotions --- include/linux/platform/tegra/tegra19x_cbb.h | 1 + include/linux/platform/tegra/tegra_cbb.h | 2 ++ 2 files changed, 3 insertions(+) (limited to 'include/linux') diff --git a/include/linux/platform/tegra/tegra19x_cbb.h b/include/linux/platform/tegra/tegra19x_cbb.h index c3717fcff..874a082de 100644 --- a/include/linux/platform/tegra/tegra19x_cbb.h +++ b/include/linux/platform/tegra/tegra19x_cbb.h @@ -18,6 +18,7 @@ extern int nvcvnas_idle(void); extern int is_nvcvnas_probed(void); extern int nvcvnas_busy_no_rpm(void); extern int nvcvnas_idle_no_rpm(void); +extern int is_nvcvnas_clk_enabled(void); static char *t194_master_id[] = { "CCPLEX", /* 0x1 */ diff --git a/include/linux/platform/tegra/tegra_cbb.h b/include/linux/platform/tegra/tegra_cbb.h index 2789bce60..e897f8aac 100644 --- a/include/linux/platform/tegra/tegra_cbb.h +++ b/include/linux/platform/tegra/tegra_cbb.h @@ -140,6 +140,7 @@ struct tegra_cbb_errlog_record { int apb_bridge_cnt; bool is_clk_rst; int (*is_cluster_probed)(void); + int (*is_clk_enabled)(void); int (*tegra_noc_en_clk_rpm)(void); int (*tegra_noc_dis_clk_rpm)(void); int (*tegra_noc_en_clk_no_rpm)(void); @@ -163,6 +164,7 @@ struct tegra_cbb_noc_data { bool is_ax2apb_bridge_connected; bool is_clk_rst; int (*is_cluster_probed)(void); + int (*is_clk_enabled)(void); int (*tegra_noc_en_clk_rpm)(void); int (*tegra_noc_dis_clk_rpm)(void); int (*tegra_noc_en_clk_no_rpm)(void); -- cgit v1.2.2