From 4b68191a08a3bb923f9a15df9db5dfb653b0343b Mon Sep 17 00:00:00 2001 From: Sumit Gupta Date: Fri, 6 Jul 2018 19:11:31 +0530 Subject: platform: tegra: add cbb noirq resume callback Adding noirq phase callback in cbb to enable faults during resume. Also added no rumtime pm functions in cvsram driver to enable/disable CV clock before setting its NOC's registers in cbb resume/suspend noirq. This was required as the existing runtime pm used in cvnas driver is not up during noirq phase. Bug 200422155 Bug 200340783 Change-Id: I6ca19eec2bcad3254508c594a6d4e96e063c2cd0 Signed-off-by: Sumit Gupta Reviewed-on: https://git-master.nvidia.com/r/1772791 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 | 2 ++ include/linux/platform/tegra/tegra_cbb.h | 12 ++++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) (limited to 'include/linux') diff --git a/include/linux/platform/tegra/tegra19x_cbb.h b/include/linux/platform/tegra/tegra19x_cbb.h index fa6e8b7a5..c3717fcff 100644 --- a/include/linux/platform/tegra/tegra19x_cbb.h +++ b/include/linux/platform/tegra/tegra19x_cbb.h @@ -16,6 +16,8 @@ extern int nvcvnas_busy(void); 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); 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 814278e07..2789bce60 100644 --- a/include/linux/platform/tegra/tegra_cbb.h +++ b/include/linux/platform/tegra/tegra_cbb.h @@ -138,6 +138,12 @@ struct tegra_cbb_errlog_record { bool is_ax2apb_bridge_connected; u64 *axi2abp_bases; int apb_bridge_cnt; + bool is_clk_rst; + int (*is_cluster_probed)(void); + int (*tegra_noc_en_clk_rpm)(void); + int (*tegra_noc_dis_clk_rpm)(void); + int (*tegra_noc_en_clk_no_rpm)(void); + int (*tegra_noc_dis_clk_no_rpm)(void); }; struct tegra_cbb_noc_data { @@ -157,7 +163,9 @@ struct tegra_cbb_noc_data { bool is_ax2apb_bridge_connected; bool is_clk_rst; int (*is_cluster_probed)(void); - int (*tegra_noc_clk_enable)(void); - int (*tegra_noc_clk_disable)(void); + int (*tegra_noc_en_clk_rpm)(void); + int (*tegra_noc_dis_clk_rpm)(void); + int (*tegra_noc_en_clk_no_rpm)(void); + int (*tegra_noc_dis_clk_no_rpm)(void); }; -- cgit v1.2.2