summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorDeepak Nibade <dnibade@nvidia.com>2014-08-13 05:34:21 -0400
committerDan Willemsen <dwillemsen@nvidia.com>2015-03-18 15:10:52 -0400
commit4439a8e311e09b1f3af1a70d4111c75e002a607d (patch)
tree749630a76e0aededf4d21b6ebd14f271156d1d29 /drivers
parent67887cc61ae18c0278eec8ff8ae758297765f3b8 (diff)
gpu: nvgpu: add ioctl to force reset channel
Add below ioctl to force channel reset/recovery. NVHOST_IOCTL_CHANNEL_FORCE_RESET This recovery/reset is initiated by triggering mmu fault on channel so as to force the channel out (as oppose to waiting until channel is preempted) Bug 200027958 Change-Id: Idd3c10ef5fa691d746e34a8b890bd79aca815a20 Signed-off-by: Deepak Nibade <dnibade@nvidia.com> Reviewed-on: http://git-master/r/456084 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/nvgpu/gk20a/channel_gk20a.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/channel_gk20a.c b/drivers/gpu/nvgpu/gk20a/channel_gk20a.c
index f7cafc52..45757884 100644
--- a/drivers/gpu/nvgpu/gk20a/channel_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/channel_gk20a.c
@@ -2306,6 +2306,19 @@ long gk20a_channel_ioctl(struct file *filp,
2306 err = gk20a_fifo_preempt_channel(ch->g, ch->hw_chid); 2306 err = gk20a_fifo_preempt_channel(ch->g, ch->hw_chid);
2307 gk20a_idle(dev); 2307 gk20a_idle(dev);
2308 break; 2308 break;
2309 case NVHOST_IOCTL_CHANNEL_FORCE_RESET:
2310 err = gk20a_busy(dev);
2311 if (err) {
2312 dev_err(&dev->dev,
2313 "%s: failed to host gk20a for ioctl cmd: 0x%x",
2314 __func__, cmd);
2315 return err;
2316 }
2317 gk20a_set_error_notifier(ch,
2318 NVHOST_CHANNEL_RESETCHANNEL_VERIF_ERROR);
2319 gk20a_fifo_recover_ch(ch->g, ch->hw_chid, true);
2320 gk20a_idle(dev);
2321 break;
2309 default: 2322 default:
2310 dev_err(&dev->dev, "unrecognized ioctl cmd: 0x%x", cmd); 2323 dev_err(&dev->dev, "unrecognized ioctl cmd: 0x%x", cmd);
2311 err = -ENOTTY; 2324 err = -ENOTTY;