diff options
| author | Sumit Gupta <sumitg@nvidia.com> | 2018-07-06 09:41:31 -0400 |
|---|---|---|
| committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2018-08-02 16:56:00 -0400 |
| commit | 4b68191a08a3bb923f9a15df9db5dfb653b0343b (patch) | |
| tree | 880ada6aeacc6e8f655e409e96d99afe85ab9cee /include/linux | |
| parent | 2e44455ad1dde2e35a8c2d558508cc6b1a8cf876 (diff) | |
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 <sumitg@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1772791
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.h | 2 | ||||
| -rw-r--r-- | include/linux/platform/tegra/tegra_cbb.h | 12 |
2 files changed, 12 insertions, 2 deletions
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 @@ | |||
| 16 | extern int nvcvnas_busy(void); | 16 | extern int nvcvnas_busy(void); |
| 17 | extern int nvcvnas_idle(void); | 17 | extern int nvcvnas_idle(void); |
| 18 | extern int is_nvcvnas_probed(void); | 18 | extern int is_nvcvnas_probed(void); |
| 19 | extern int nvcvnas_busy_no_rpm(void); | ||
| 20 | extern int nvcvnas_idle_no_rpm(void); | ||
| 19 | 21 | ||
| 20 | static char *t194_master_id[] = { | 22 | static char *t194_master_id[] = { |
| 21 | "CCPLEX", /* 0x1 */ | 23 | "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 { | |||
| 138 | bool is_ax2apb_bridge_connected; | 138 | bool is_ax2apb_bridge_connected; |
| 139 | u64 *axi2abp_bases; | 139 | u64 *axi2abp_bases; |
| 140 | int apb_bridge_cnt; | 140 | int apb_bridge_cnt; |
| 141 | bool is_clk_rst; | ||
| 142 | int (*is_cluster_probed)(void); | ||
| 143 | int (*tegra_noc_en_clk_rpm)(void); | ||
| 144 | int (*tegra_noc_dis_clk_rpm)(void); | ||
| 145 | int (*tegra_noc_en_clk_no_rpm)(void); | ||
| 146 | int (*tegra_noc_dis_clk_no_rpm)(void); | ||
| 141 | }; | 147 | }; |
| 142 | 148 | ||
| 143 | struct tegra_cbb_noc_data { | 149 | struct tegra_cbb_noc_data { |
| @@ -157,7 +163,9 @@ struct tegra_cbb_noc_data { | |||
| 157 | bool is_ax2apb_bridge_connected; | 163 | bool is_ax2apb_bridge_connected; |
| 158 | bool is_clk_rst; | 164 | bool is_clk_rst; |
| 159 | int (*is_cluster_probed)(void); | 165 | int (*is_cluster_probed)(void); |
| 160 | int (*tegra_noc_clk_enable)(void); | 166 | int (*tegra_noc_en_clk_rpm)(void); |
| 161 | int (*tegra_noc_clk_disable)(void); | 167 | int (*tegra_noc_dis_clk_rpm)(void); |
| 168 | int (*tegra_noc_en_clk_no_rpm)(void); | ||
| 169 | int (*tegra_noc_dis_clk_no_rpm)(void); | ||
| 162 | }; | 170 | }; |
| 163 | 171 | ||
