diff options
author | Terje Bergstrom <tbergstrom@nvidia.com> | 2015-01-16 12:11:42 -0500 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2015-04-04 21:07:37 -0400 |
commit | bdb34abd93df5fdf741b060d3030bf59dd18b7e7 (patch) | |
tree | 3384685eb8f7207ef945b32efbc6f3bba0806a98 /drivers | |
parent | ecaa5c1b1fc298877ea54d8d8b02e75684f555af (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')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/channel_gk20a.c | 2 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/fifo_gk20a.c | 6 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/fifo_gk20a.h | 2 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gk20a.h | 1 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gm20b/fifo_gm20b.c | 1 |
5 files changed, 11 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 | ||
2157 | u32 gk20a_fifo_get_pbdma_signature(struct gk20a *g) | ||
2158 | { | ||
2159 | return pbdma_signature_hw_valid_f() | pbdma_signature_sw_zero_f(); | ||
2160 | } | ||
2161 | |||
2157 | void gk20a_init_fifo(struct gpu_ops *gops) | 2162 | void 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); |
171 | int gk20a_fifo_wait_engine_idle(struct gk20a *g); | 171 | int gk20a_fifo_wait_engine_idle(struct gk20a *g); |
172 | u32 gk20a_fifo_engine_interrupt_mask(struct gk20a *g); | 172 | u32 gk20a_fifo_engine_interrupt_mask(struct gk20a *g); |
173 | u32 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*/ |
diff --git a/drivers/gpu/nvgpu/gm20b/fifo_gm20b.c b/drivers/gpu/nvgpu/gm20b/fifo_gm20b.c index cdc8c810..640448cb 100644 --- a/drivers/gpu/nvgpu/gm20b/fifo_gm20b.c +++ b/drivers/gpu/nvgpu/gm20b/fifo_gm20b.c | |||
@@ -118,4 +118,5 @@ void gm20b_init_fifo(struct gpu_ops *gops) | |||
118 | gops->fifo.trigger_mmu_fault = gm20b_fifo_trigger_mmu_fault; | 118 | gops->fifo.trigger_mmu_fault = gm20b_fifo_trigger_mmu_fault; |
119 | gops->fifo.wait_engine_idle = gk20a_fifo_wait_engine_idle; | 119 | gops->fifo.wait_engine_idle = gk20a_fifo_wait_engine_idle; |
120 | gops->fifo.get_num_fifos = gm20b_fifo_get_num_fifos; | 120 | gops->fifo.get_num_fifos = gm20b_fifo_get_num_fifos; |
121 | gops->fifo.get_pbdma_signature = gk20a_fifo_get_pbdma_signature; | ||
121 | } | 122 | } |