summaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorSumit Gupta <sumitg@nvidia.com>2018-08-08 02:43:06 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2018-08-09 19:29:49 -0400
commitdd01cccb50c493c38ac1ce35cd5612c83f1f9b77 (patch)
tree30df81b375f3af486f05b7015164726ff95a2bc4 /include/linux
parentb65109afbbdf20b12e07bf42d15dbd392986256a (diff)
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 <sumitg@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1794891 GVS: Gerrit_Virtual_Submit Reviewed-by: Puneet Saxena <puneets@nvidia.com> Reviewed-by: Alexander Van Brunt <avanbrunt@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/platform/tegra/tegra19x_cbb.h1
-rw-r--r--include/linux/platform/tegra/tegra_cbb.h2
2 files changed, 3 insertions, 0 deletions
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);
18extern int is_nvcvnas_probed(void); 18extern int is_nvcvnas_probed(void);
19extern int nvcvnas_busy_no_rpm(void); 19extern int nvcvnas_busy_no_rpm(void);
20extern int nvcvnas_idle_no_rpm(void); 20extern int nvcvnas_idle_no_rpm(void);
21extern int is_nvcvnas_clk_enabled(void);
21 22
22static char *t194_master_id[] = { 23static char *t194_master_id[] = {
23 "CCPLEX", /* 0x1 */ 24 "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 {
140 int apb_bridge_cnt; 140 int apb_bridge_cnt;
141 bool is_clk_rst; 141 bool is_clk_rst;
142 int (*is_cluster_probed)(void); 142 int (*is_cluster_probed)(void);
143 int (*is_clk_enabled)(void);
143 int (*tegra_noc_en_clk_rpm)(void); 144 int (*tegra_noc_en_clk_rpm)(void);
144 int (*tegra_noc_dis_clk_rpm)(void); 145 int (*tegra_noc_dis_clk_rpm)(void);
145 int (*tegra_noc_en_clk_no_rpm)(void); 146 int (*tegra_noc_en_clk_no_rpm)(void);
@@ -163,6 +164,7 @@ struct tegra_cbb_noc_data {
163 bool is_ax2apb_bridge_connected; 164 bool is_ax2apb_bridge_connected;
164 bool is_clk_rst; 165 bool is_clk_rst;
165 int (*is_cluster_probed)(void); 166 int (*is_cluster_probed)(void);
167 int (*is_clk_enabled)(void);
166 int (*tegra_noc_en_clk_rpm)(void); 168 int (*tegra_noc_en_clk_rpm)(void);
167 int (*tegra_noc_dis_clk_rpm)(void); 169 int (*tegra_noc_dis_clk_rpm)(void);
168 int (*tegra_noc_en_clk_no_rpm)(void); 170 int (*tegra_noc_en_clk_no_rpm)(void);