1 From 3733bd8b407211739e72d051e5f30ad82a52c4bc Mon Sep 17 00:00:00 2001
2 From: Ben Skeggs <bskeggs@redhat.com>
3 Date: Thu, 11 May 2017 16:53:42 +1000
4 Subject: drm/nouveau/tmr: ack interrupt before processing alarms
6 From: Ben Skeggs <bskeggs@redhat.com>
8 commit 3733bd8b407211739e72d051e5f30ad82a52c4bc upstream.
10 Fixes a race where we can miss an alarm that triggers while we're already
11 processing previous alarms.
13 Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
14 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
17 drivers/gpu/drm/nouveau/nvkm/subdev/timer/nv04.c | 2 +-
18 1 file changed, 1 insertion(+), 1 deletion(-)
20 --- a/drivers/gpu/drm/nouveau/nvkm/subdev/timer/nv04.c
21 +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/timer/nv04.c
22 @@ -76,8 +76,8 @@ nv04_timer_intr(struct nvkm_timer *tmr)
23 u32 stat = nvkm_rd32(device, NV04_PTIMER_INTR_0);
25 if (stat & 0x00000001) {
26 - nvkm_timer_alarm_trigger(tmr);
27 nvkm_wr32(device, NV04_PTIMER_INTR_0, 0x00000001);
28 + nvkm_timer_alarm_trigger(tmr);