Commit f9895e6d authored by Ben Skeggs's avatar Ben Skeggs

drm/nouveau/disp: clear notify intr status when enabling, to prevent races

Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent 2832271d
...@@ -88,12 +88,14 @@ nv50_disp_chan_uevent_fini(struct nvkm_event *event, int type, int index) ...@@ -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); struct nv50_disp_priv *priv = container_of(event, typeof(*priv), uevent);
nv_mask(priv, 0x610028, 0x00000001 << index, 0x00000000 << index); nv_mask(priv, 0x610028, 0x00000001 << index, 0x00000000 << index);
nv_wr32(priv, 0x610020, 0x00000001 << index);
} }
static void static void
nv50_disp_chan_uevent_init(struct nvkm_event *event, int types, int index) nv50_disp_chan_uevent_init(struct nvkm_event *event, int types, int index)
{ {
struct nv50_disp_priv *priv = container_of(event, typeof(*priv), uevent); 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); nv_mask(priv, 0x610028, 0x00000001 << index, 0x00000001 << index);
} }
......
...@@ -51,12 +51,14 @@ nvd0_disp_chan_uevent_fini(struct nvkm_event *event, int type, int index) ...@@ -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); struct nv50_disp_priv *priv = container_of(event, typeof(*priv), uevent);
nv_mask(priv, 0x610090, 0x00000001 << index, 0x00000000 << index); nv_mask(priv, 0x610090, 0x00000001 << index, 0x00000000 << index);
nv_wr32(priv, 0x61008c, 0x00000001 << index);
} }
static void static void
nvd0_disp_chan_uevent_init(struct nvkm_event *event, int types, int index) nvd0_disp_chan_uevent_init(struct nvkm_event *event, int types, int index)
{ {
struct nv50_disp_priv *priv = container_of(event, typeof(*priv), uevent); 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); nv_mask(priv, 0x610090, 0x00000001 << index, 0x00000001 << index);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment