From b47892b9a85bf22494934c72166730c3bae63136 Mon Sep 17 00:00:00 2001 From: Ben Skeggs Date: Tue, 28 Oct 2014 11:21:44 +1000 Subject: disp: clear notify intr status when enabling, to prevent races Signed-off-by: Ben Skeggs --- nvkm/engine/disp/nv50.c | 2 ++ nvkm/engine/disp/nvd0.c | 2 ++ 2 files changed, 4 insertions(+) (limited to 'nvkm') diff --git a/nvkm/engine/disp/nv50.c b/nvkm/engine/disp/nv50.c index 6e7deeaba..44a8290aa 100644 --- a/nvkm/engine/disp/nv50.c +++ b/nvkm/engine/disp/nv50.c @@ -88,12 +88,14 @@ nv50_disp_chan_uevent_fini(struct nvkm_event *event, int type, int index) { struct nv50_disp_priv *priv = container_of(event, typeof(*priv), uevent); nv_mask(priv, 0x610028, 0x00000001 << index, 0x00000000 << index); + nv_wr32(priv, 0x610020, 0x00000001 << index); } static void nv50_disp_chan_uevent_init(struct nvkm_event *event, int types, int index) { struct nv50_disp_priv *priv = container_of(event, typeof(*priv), uevent); + nv_wr32(priv, 0x610020, 0x00000001 << index); nv_mask(priv, 0x610028, 0x00000001 << index, 0x00000001 << index); } diff --git a/nvkm/engine/disp/nvd0.c b/nvkm/engine/disp/nvd0.c index f3120b70b..181a2d57e 100644 --- a/nvkm/engine/disp/nvd0.c +++ b/nvkm/engine/disp/nvd0.c @@ -51,12 +51,14 @@ nvd0_disp_chan_uevent_fini(struct nvkm_event *event, int type, int index) { struct nv50_disp_priv *priv = container_of(event, typeof(*priv), uevent); nv_mask(priv, 0x610090, 0x00000001 << index, 0x00000000 << index); + nv_wr32(priv, 0x61008c, 0x00000001 << index); } static void nvd0_disp_chan_uevent_init(struct nvkm_event *event, int types, int index) { struct nv50_disp_priv *priv = container_of(event, typeof(*priv), uevent); + nv_wr32(priv, 0x61008c, 0x00000001 << index); nv_mask(priv, 0x610090, 0x00000001 << index, 0x00000001 << index); } -- cgit v1.2.1