summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a
diff options
context:
space:
mode:
authorTerje Bergstrom <tbergstrom@nvidia.com>2015-01-16 12:11:42 -0500
committerDan Willemsen <dwillemsen@nvidia.com>2015-04-04 21:07:37 -0400
commitbdb34abd93df5fdf741b060d3030bf59dd18b7e7 (patch)
tree3384685eb8f7207ef945b32efbc6f3bba0806a98 /drivers/gpu/nvgpu/gk20a
parentecaa5c1b1fc298877ea54d8d8b02e75684f555af (diff)
gpu: nvgpu: Per-chip PBDMA signature
PBDMA HW signature depends on the chip. Change-Id: If57d721d9bb77a090f967930a1aa2037bf4a16fe Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-on: http://git-master/r/672922
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a')
-rw-r--r--drivers/gpu/nvgpu/gk20a/channel_gk20a.c2
-rw-r--r--drivers/gpu/nvgpu/gk20a/fifo_gk20a.c6
-rw-r--r--drivers/gpu/nvgpu/gk20a/fifo_gk20a.h2
-rw-r--r--drivers/gpu/nvgpu/gk20a/gk20a.h1
4 files changed, 10 insertions, 1 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/channel_gk20a.c b/drivers/gpu/nvgpu/gk20a/channel_gk20a.c
index ddd3468c..b126f31a 100644
--- a/drivers/gpu/nvgpu/gk20a/channel_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/channel_gk20a.c
@@ -192,7 +192,7 @@ int channel_gk20a_setup_ramfc(struct channel_gk20a *c,
192 pbdma_gp_base_hi_limit2_f(ilog2(gpfifo_entries))); 192 pbdma_gp_base_hi_limit2_f(ilog2(gpfifo_entries)));
193 193
194 gk20a_mem_wr32(inst_ptr, ram_fc_signature_w(), 194 gk20a_mem_wr32(inst_ptr, ram_fc_signature_w(),
195 pbdma_signature_hw_valid_f() | pbdma_signature_sw_zero_f()); 195 c->g->ops.fifo.get_pbdma_signature(c->g));
196 196
197 gk20a_mem_wr32(inst_ptr, ram_fc_formats_w(), 197 gk20a_mem_wr32(inst_ptr, ram_fc_formats_w(),
198 pbdma_formats_gp_fermi0_f() | 198 pbdma_formats_gp_fermi0_f() |
diff --git a/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c b/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c
index f50277f3..9dcab250 100644
--- a/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c
@@ -2154,6 +2154,11 @@ static u32 gk20a_fifo_get_num_fifos(struct gk20a *g)
2154 return ccsr_channel__size_1_v(); 2154 return ccsr_channel__size_1_v();
2155} 2155}
2156 2156
2157u32 gk20a_fifo_get_pbdma_signature(struct gk20a *g)
2158{
2159 return pbdma_signature_hw_valid_f() | pbdma_signature_sw_zero_f();
2160}
2161
2157void gk20a_init_fifo(struct gpu_ops *gops) 2162void gk20a_init_fifo(struct gpu_ops *gops)
2158{ 2163{
2159 gk20a_init_channel(gops); 2164 gk20a_init_channel(gops);
@@ -2163,4 +2168,5 @@ void gk20a_init_fifo(struct gpu_ops *gops)
2163 gops->fifo.apply_pb_timeout = gk20a_fifo_apply_pb_timeout; 2168 gops->fifo.apply_pb_timeout = gk20a_fifo_apply_pb_timeout;
2164 gops->fifo.wait_engine_idle = gk20a_fifo_wait_engine_idle; 2169 gops->fifo.wait_engine_idle = gk20a_fifo_wait_engine_idle;
2165 gops->fifo.get_num_fifos = gk20a_fifo_get_num_fifos; 2170 gops->fifo.get_num_fifos = gk20a_fifo_get_num_fifos;
2171 gops->fifo.get_pbdma_signature = gk20a_fifo_get_pbdma_signature;
2166} 2172}
diff --git a/drivers/gpu/nvgpu/gk20a/fifo_gk20a.h b/drivers/gpu/nvgpu/gk20a/fifo_gk20a.h
index 8fda38f5..4ff1398a 100644
--- a/drivers/gpu/nvgpu/gk20a/fifo_gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/fifo_gk20a.h
@@ -170,4 +170,6 @@ void fifo_gk20a_finish_mmu_fault_handling(struct gk20a *g,
170 unsigned long fault_id); 170 unsigned long fault_id);
171int gk20a_fifo_wait_engine_idle(struct gk20a *g); 171int gk20a_fifo_wait_engine_idle(struct gk20a *g);
172u32 gk20a_fifo_engine_interrupt_mask(struct gk20a *g); 172u32 gk20a_fifo_engine_interrupt_mask(struct gk20a *g);
173u32 gk20a_fifo_get_pbdma_signature(struct gk20a *g);
174
173#endif /*__GR_GK20A_H__*/ 175#endif /*__GR_GK20A_H__*/
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.h b/drivers/gpu/nvgpu/gk20a/gk20a.h
index 0e06e7de..fa80f010 100644
--- a/drivers/gpu/nvgpu/gk20a/gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/gk20a.h
@@ -212,6 +212,7 @@ struct gpu_ops {
212 void (*apply_pb_timeout)(struct gk20a *g); 212 void (*apply_pb_timeout)(struct gk20a *g);
213 int (*wait_engine_idle)(struct gk20a *g); 213 int (*wait_engine_idle)(struct gk20a *g);
214 u32 (*get_num_fifos)(struct gk20a *g); 214 u32 (*get_num_fifos)(struct gk20a *g);
215 u32 (*get_pbdma_signature)(struct gk20a *g);
215 } fifo; 216 } fifo;
216 struct pmu_v { 217 struct pmu_v {
217 /*used for change of enum zbc update cmd id from ver 0 to ver1*/ 218 /*used for change of enum zbc update cmd id from ver 0 to ver1*/