]>
Commit | Line | Data |
---|---|---|
899c9bca GKH |
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 | |
5 | ||
6 | From: Ben Skeggs <bskeggs@redhat.com> | |
7 | ||
8 | commit 3733bd8b407211739e72d051e5f30ad82a52c4bc upstream. | |
9 | ||
10 | Fixes a race where we can miss an alarm that triggers while we're already | |
11 | processing previous alarms. | |
12 | ||
13 | Signed-off-by: Ben Skeggs <bskeggs@redhat.com> | |
14 | Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> | |
15 | ||
16 | --- | |
17 | drivers/gpu/drm/nouveau/nvkm/subdev/timer/nv04.c | 2 +- | |
18 | 1 file changed, 1 insertion(+), 1 deletion(-) | |
19 | ||
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); | |
24 | ||
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); | |
29 | stat &= ~0x00000001; | |
30 | } | |
31 |