diff options
author | Peter Daifuku <pdaifuku@nvidia.com> | 2016-04-15 21:12:34 -0400 |
---|---|---|
committer | Terje Bergstrom <tbergstrom@nvidia.com> | 2016-05-19 18:58:24 -0400 |
commit | ce0fe5082ebb8a7e0ca5a8992e17ae4547d4db5e (patch) | |
tree | f7301c2993c78af2d69ad768e1aa6c35bede6cfc /drivers/gpu/nvgpu/gk20a/gr_pri_gk20a.h | |
parent | 5ccaaa73af4683eabd4d135b5b08aec4a206b613 (diff) |
gpu: nvgpu: hwpm broadcast register support
Add support for hwpm broadcast registers (ltc and lts)
In gr_gk20a_find_priv_offset_in_buffer, replace "Unknown address type" error
with informational message: gr_gk20a_exec_ctx_ops calls
gk20a_get_ctx_buffer_offsets and if that fails,
calls gr_gk20a_get_pm_ctx_buffer_offsets; HWPM registers will fail the first
call, so an error or warning is overkill.
Bug 1648200
Change-Id: I197b82579e9894652add4ff254418f818981415a
Signed-off-by: Peter Daifuku <pdaifuku@nvidia.com>
Reviewed-on: http://git-master/r/1131365
(cherry picked from commit 9f30a92c5d87f6dadd34cc37396a6b10e3a72751)
Reviewed-on: http://git-master/r/1133628
(cherry picked from commit 7eb7cfd998852ba7f7c4c40d3db286f66e83ab3a)
Reviewed-on: http://git-master/r/1127749
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/gr_pri_gk20a.h')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gr_pri_gk20a.h | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gr_pri_gk20a.h b/drivers/gpu/nvgpu/gk20a/gr_pri_gk20a.h index 248fa291..62e276de 100644 --- a/drivers/gpu/nvgpu/gk20a/gr_pri_gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/gr_pri_gk20a.h | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * GK20A Graphics Context Pri Register Addressing | 2 | * GK20A Graphics Context Pri Register Addressing |
3 | * | 3 | * |
4 | * Copyright (c) 2014, NVIDIA CORPORATION. All rights reserved. | 4 | * Copyright (c) 2014-2016, NVIDIA CORPORATION. All rights reserved. |
5 | * | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify it | 6 | * This program is free software; you can redistribute it and/or modify it |
7 | * under the terms and conditions of the GNU General Public License, | 7 | * under the terms and conditions of the GNU General Public License, |
@@ -167,12 +167,21 @@ static inline u32 pri_ppc_addr(struct gk20a *g, u32 addr, u32 gpc, u32 ppc) | |||
167 | ppc_in_gpc_base + (ppc * ppc_in_gpc_stride) + addr; | 167 | ppc_in_gpc_base + (ppc * ppc_in_gpc_stride) + addr; |
168 | } | 168 | } |
169 | 169 | ||
170 | /* | ||
171 | * LTC pri addressing | ||
172 | */ | ||
173 | static inline bool pri_is_ltc_addr(u32 addr) | ||
174 | { | ||
175 | return ((addr >= ltc_pltcg_base_v()) && (addr < ltc_pltcg_extent_v())); | ||
176 | } | ||
177 | |||
170 | enum ctxsw_addr_type { | 178 | enum ctxsw_addr_type { |
171 | CTXSW_ADDR_TYPE_SYS = 0, | 179 | CTXSW_ADDR_TYPE_SYS = 0, |
172 | CTXSW_ADDR_TYPE_GPC = 1, | 180 | CTXSW_ADDR_TYPE_GPC = 1, |
173 | CTXSW_ADDR_TYPE_TPC = 2, | 181 | CTXSW_ADDR_TYPE_TPC = 2, |
174 | CTXSW_ADDR_TYPE_BE = 3, | 182 | CTXSW_ADDR_TYPE_BE = 3, |
175 | CTXSW_ADDR_TYPE_PPC = 4 | 183 | CTXSW_ADDR_TYPE_PPC = 4, |
184 | CTXSW_ADDR_TYPE_LTCS = 5 | ||
176 | }; | 185 | }; |
177 | 186 | ||
178 | #define PRI_BROADCAST_FLAGS_NONE 0 | 187 | #define PRI_BROADCAST_FLAGS_NONE 0 |
@@ -180,5 +189,7 @@ enum ctxsw_addr_type { | |||
180 | #define PRI_BROADCAST_FLAGS_TPC BIT(1) | 189 | #define PRI_BROADCAST_FLAGS_TPC BIT(1) |
181 | #define PRI_BROADCAST_FLAGS_BE BIT(2) | 190 | #define PRI_BROADCAST_FLAGS_BE BIT(2) |
182 | #define PRI_BROADCAST_FLAGS_PPC BIT(3) | 191 | #define PRI_BROADCAST_FLAGS_PPC BIT(3) |
192 | #define PRI_BROADCAST_FLAGS_LTCS BIT(4) | ||
193 | #define PRI_BROADCAST_FLAGS_LTSS BIT(5) | ||
183 | 194 | ||
184 | #endif /* GR_PRI_GK20A_H */ | 195 | #endif /* GR_PRI_GK20A_H */ |