summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/gr_pri_gk20a.h
diff options
context:
space:
mode:
authorPeter Daifuku <pdaifuku@nvidia.com>2016-04-15 21:12:34 -0400
committerTerje Bergstrom <tbergstrom@nvidia.com>2016-05-19 18:58:24 -0400
commitce0fe5082ebb8a7e0ca5a8992e17ae4547d4db5e (patch)
treef7301c2993c78af2d69ad768e1aa6c35bede6cfc /drivers/gpu/nvgpu/gk20a/gr_pri_gk20a.h
parent5ccaaa73af4683eabd4d135b5b08aec4a206b613 (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.h23
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 */
173static inline bool pri_is_ltc_addr(u32 addr)
174{
175 return ((addr >= ltc_pltcg_base_v()) && (addr < ltc_pltcg_extent_v()));
176}
177
170enum ctxsw_addr_type { 178enum 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 */