diff options
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gk20a.h | 2 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gr_gk20a.c | 6 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gr_gk20a.h | 2 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gm20b/hal_gm20b.c | 1 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gp106/hal_gp106.c | 1 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gp10b/hal_gp10b.c | 1 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gv100/hal_gv100.c | 1 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gv11b/hal_gv11b.c | 1 |
8 files changed, 12 insertions, 3 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.h b/drivers/gpu/nvgpu/gk20a/gk20a.h index 178c1200..6b93cb8d 100644 --- a/drivers/gpu/nvgpu/gk20a/gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/gk20a.h | |||
@@ -447,6 +447,8 @@ struct gpu_ops { | |||
447 | struct gr_gk20a_isr_data *isr_data, u32 error_notifier); | 447 | struct gr_gk20a_isr_data *isr_data, u32 error_notifier); |
448 | int (*handle_notify_pending)(struct gk20a *g, | 448 | int (*handle_notify_pending)(struct gk20a *g, |
449 | struct gr_gk20a_isr_data *isr_data); | 449 | struct gr_gk20a_isr_data *isr_data); |
450 | int (*handle_semaphore_pending)(struct gk20a *g, | ||
451 | struct gr_gk20a_isr_data *isr_data); | ||
450 | } gr; | 452 | } gr; |
451 | struct { | 453 | struct { |
452 | void (*init_hw)(struct gk20a *g); | 454 | void (*init_hw)(struct gk20a *g); |
diff --git a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c index 068eb070..8b07619d 100644 --- a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c | |||
@@ -5267,8 +5267,8 @@ static int gk20a_gr_handle_firmware_method(struct gk20a *g, | |||
5267 | return -EINVAL; | 5267 | return -EINVAL; |
5268 | } | 5268 | } |
5269 | 5269 | ||
5270 | static int gk20a_gr_handle_semaphore_pending(struct gk20a *g, | 5270 | int gk20a_gr_handle_semaphore_pending(struct gk20a *g, |
5271 | struct gr_gk20a_isr_data *isr_data) | 5271 | struct gr_gk20a_isr_data *isr_data) |
5272 | { | 5272 | { |
5273 | struct fifo_gk20a *f = &g->fifo; | 5273 | struct fifo_gk20a *f = &g->fifo; |
5274 | struct channel_gk20a *ch = &f->channel[isr_data->chid]; | 5274 | struct channel_gk20a *ch = &f->channel[isr_data->chid]; |
@@ -5896,7 +5896,7 @@ int gk20a_gr_isr(struct gk20a *g) | |||
5896 | } | 5896 | } |
5897 | 5897 | ||
5898 | if (gr_intr & gr_intr_semaphore_pending_f()) { | 5898 | if (gr_intr & gr_intr_semaphore_pending_f()) { |
5899 | gk20a_gr_handle_semaphore_pending(g, &isr_data); | 5899 | g->ops.gr.handle_semaphore_pending(g, &isr_data); |
5900 | gk20a_writel(g, gr_intr_r(), | 5900 | gk20a_writel(g, gr_intr_r(), |
5901 | gr_intr_semaphore_reset_f()); | 5901 | gr_intr_semaphore_reset_f()); |
5902 | gr_intr &= ~gr_intr_semaphore_pending_f(); | 5902 | gr_intr &= ~gr_intr_semaphore_pending_f(); |
diff --git a/drivers/gpu/nvgpu/gk20a/gr_gk20a.h b/drivers/gpu/nvgpu/gk20a/gr_gk20a.h index fff22f29..e4eb6c4a 100644 --- a/drivers/gpu/nvgpu/gk20a/gr_gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/gr_gk20a.h | |||
@@ -808,4 +808,6 @@ int gr_gk20a_fecs_ctx_bind_channel(struct gk20a *g, | |||
808 | struct channel_gk20a *c); | 808 | struct channel_gk20a *c); |
809 | u32 gk20a_init_sw_bundle(struct gk20a *g); | 809 | u32 gk20a_init_sw_bundle(struct gk20a *g); |
810 | int gr_gk20a_fecs_ctx_image_save(struct channel_gk20a *c, u32 save_type); | 810 | int gr_gk20a_fecs_ctx_image_save(struct channel_gk20a *c, u32 save_type); |
811 | int gk20a_gr_handle_semaphore_pending(struct gk20a *g, | ||
812 | struct gr_gk20a_isr_data *isr_data); | ||
811 | #endif /*__GR_GK20A_H__*/ | 813 | #endif /*__GR_GK20A_H__*/ |
diff --git a/drivers/gpu/nvgpu/gm20b/hal_gm20b.c b/drivers/gpu/nvgpu/gm20b/hal_gm20b.c index 9c3cc63e..ea087e92 100644 --- a/drivers/gpu/nvgpu/gm20b/hal_gm20b.c +++ b/drivers/gpu/nvgpu/gm20b/hal_gm20b.c | |||
@@ -313,6 +313,7 @@ static const struct gpu_ops gm20b_ops = { | |||
313 | .fecs_host_int_enable = gr_gk20a_fecs_host_int_enable, | 313 | .fecs_host_int_enable = gr_gk20a_fecs_host_int_enable, |
314 | .set_error_notifier = gk20a_gr_set_error_notifier, | 314 | .set_error_notifier = gk20a_gr_set_error_notifier, |
315 | .handle_notify_pending = gk20a_gr_handle_notify_pending, | 315 | .handle_notify_pending = gk20a_gr_handle_notify_pending, |
316 | .handle_semaphore_pending = gk20a_gr_handle_semaphore_pending, | ||
316 | }, | 317 | }, |
317 | .fb = { | 318 | .fb = { |
318 | .reset = fb_gk20a_reset, | 319 | .reset = fb_gk20a_reset, |
diff --git a/drivers/gpu/nvgpu/gp106/hal_gp106.c b/drivers/gpu/nvgpu/gp106/hal_gp106.c index 75c9d336..e3d5556f 100644 --- a/drivers/gpu/nvgpu/gp106/hal_gp106.c +++ b/drivers/gpu/nvgpu/gp106/hal_gp106.c | |||
@@ -375,6 +375,7 @@ static const struct gpu_ops gp106_ops = { | |||
375 | .fecs_host_int_enable = gr_gk20a_fecs_host_int_enable, | 375 | .fecs_host_int_enable = gr_gk20a_fecs_host_int_enable, |
376 | .set_error_notifier = gk20a_gr_set_error_notifier, | 376 | .set_error_notifier = gk20a_gr_set_error_notifier, |
377 | .handle_notify_pending = gk20a_gr_handle_notify_pending, | 377 | .handle_notify_pending = gk20a_gr_handle_notify_pending, |
378 | .handle_semaphore_pending = gk20a_gr_handle_semaphore_pending, | ||
378 | }, | 379 | }, |
379 | .fb = { | 380 | .fb = { |
380 | .reset = gp106_fb_reset, | 381 | .reset = gp106_fb_reset, |
diff --git a/drivers/gpu/nvgpu/gp10b/hal_gp10b.c b/drivers/gpu/nvgpu/gp10b/hal_gp10b.c index 137980a9..dd914ed4 100644 --- a/drivers/gpu/nvgpu/gp10b/hal_gp10b.c +++ b/drivers/gpu/nvgpu/gp10b/hal_gp10b.c | |||
@@ -343,6 +343,7 @@ static const struct gpu_ops gp10b_ops = { | |||
343 | .fecs_host_int_enable = gr_gk20a_fecs_host_int_enable, | 343 | .fecs_host_int_enable = gr_gk20a_fecs_host_int_enable, |
344 | .set_error_notifier = gk20a_gr_set_error_notifier, | 344 | .set_error_notifier = gk20a_gr_set_error_notifier, |
345 | .handle_notify_pending = gk20a_gr_handle_notify_pending, | 345 | .handle_notify_pending = gk20a_gr_handle_notify_pending, |
346 | .handle_semaphore_pending = gk20a_gr_handle_semaphore_pending, | ||
346 | }, | 347 | }, |
347 | .fb = { | 348 | .fb = { |
348 | .reset = fb_gk20a_reset, | 349 | .reset = fb_gk20a_reset, |
diff --git a/drivers/gpu/nvgpu/gv100/hal_gv100.c b/drivers/gpu/nvgpu/gv100/hal_gv100.c index 7e1b6a3f..00f5bcce 100644 --- a/drivers/gpu/nvgpu/gv100/hal_gv100.c +++ b/drivers/gpu/nvgpu/gv100/hal_gv100.c | |||
@@ -428,6 +428,7 @@ static const struct gpu_ops gv100_ops = { | |||
428 | .handle_ssync_hww = gr_gv11b_handle_ssync_hww, | 428 | .handle_ssync_hww = gr_gv11b_handle_ssync_hww, |
429 | .set_error_notifier = gk20a_gr_set_error_notifier, | 429 | .set_error_notifier = gk20a_gr_set_error_notifier, |
430 | .handle_notify_pending = gk20a_gr_handle_notify_pending, | 430 | .handle_notify_pending = gk20a_gr_handle_notify_pending, |
431 | .handle_semaphore_pending = gk20a_gr_handle_semaphore_pending, | ||
431 | }, | 432 | }, |
432 | .fb = { | 433 | .fb = { |
433 | .reset = gv100_fb_reset, | 434 | .reset = gv100_fb_reset, |
diff --git a/drivers/gpu/nvgpu/gv11b/hal_gv11b.c b/drivers/gpu/nvgpu/gv11b/hal_gv11b.c index 11d710bf..2443a4b1 100644 --- a/drivers/gpu/nvgpu/gv11b/hal_gv11b.c +++ b/drivers/gpu/nvgpu/gv11b/hal_gv11b.c | |||
@@ -395,6 +395,7 @@ static const struct gpu_ops gv11b_ops = { | |||
395 | .handle_ssync_hww = gr_gv11b_handle_ssync_hww, | 395 | .handle_ssync_hww = gr_gv11b_handle_ssync_hww, |
396 | .set_error_notifier = gk20a_gr_set_error_notifier, | 396 | .set_error_notifier = gk20a_gr_set_error_notifier, |
397 | .handle_notify_pending = gk20a_gr_handle_notify_pending, | 397 | .handle_notify_pending = gk20a_gr_handle_notify_pending, |
398 | .handle_semaphore_pending = gk20a_gr_handle_semaphore_pending, | ||
398 | }, | 399 | }, |
399 | .fb = { | 400 | .fb = { |
400 | .reset = gv11b_fb_reset, | 401 | .reset = gv11b_fb_reset, |