drm/nouveau/tmr: ack interrupt before processing alarms
commit 3733bd8b407211739e72d051e5f30ad82a52c4bc upstream. Fixes a race where we can miss an alarm that triggers while we're already processing previous alarms. Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
3819271d8a
commit
27f82df2f0
1 changed files with 1 additions and 1 deletions
|
@ -76,8 +76,8 @@ nv04_timer_intr(struct nvkm_timer *tmr)
|
||||||
u32 stat = nvkm_rd32(device, NV04_PTIMER_INTR_0);
|
u32 stat = nvkm_rd32(device, NV04_PTIMER_INTR_0);
|
||||||
|
|
||||||
if (stat & 0x00000001) {
|
if (stat & 0x00000001) {
|
||||||
nvkm_timer_alarm_trigger(tmr);
|
|
||||||
nvkm_wr32(device, NV04_PTIMER_INTR_0, 0x00000001);
|
nvkm_wr32(device, NV04_PTIMER_INTR_0, 0x00000001);
|
||||||
|
nvkm_timer_alarm_trigger(tmr);
|
||||||
stat &= ~0x00000001;
|
stat &= ~0x00000001;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue