Commit afada5e0 authored by Ben Skeggs's avatar Ben Skeggs

drm/nv04/disp: disable vblank interrupts when disabling display

Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent 695b95b8
...@@ -1018,11 +1018,6 @@ nv_load_state_ext(struct drm_device *dev, int head, ...@@ -1018,11 +1018,6 @@ nv_load_state_ext(struct drm_device *dev, int head,
} }
NVWriteCRTC(dev, head, NV_PCRTC_START, regp->fb_start); NVWriteCRTC(dev, head, NV_PCRTC_START, regp->fb_start);
/* Enable vblank interrupts. */
NVWriteCRTC(dev, head, NV_PCRTC_INTR_EN_0,
(dev->vblank_enabled[head] ? 1 : 0));
NVWriteCRTC(dev, head, NV_PCRTC_INTR_0, NV_PCRTC_INTR_0_VBLANK);
} }
static void static void
......
...@@ -98,6 +98,13 @@ nv04_display_early_init(struct drm_device *dev) ...@@ -98,6 +98,13 @@ nv04_display_early_init(struct drm_device *dev)
NVSetOwner(dev, 0); NVSetOwner(dev, 0);
} }
/* ensure vblank interrupts are off, they can't be enabled until
* drm_vblank has been initialised
*/
NVWriteCRTC(dev, 0, NV_PCRTC_INTR_EN_0, 0);
if (nv_two_heads(dev))
NVWriteCRTC(dev, 1, NV_PCRTC_INTR_EN_0, 0);
return 0; return 0;
} }
...@@ -246,6 +253,10 @@ nv04_display_init(struct drm_device *dev) ...@@ -246,6 +253,10 @@ nv04_display_init(struct drm_device *dev)
void void
nv04_display_fini(struct drm_device *dev) nv04_display_fini(struct drm_device *dev)
{ {
/* disable vblank interrupts */
NVWriteCRTC(dev, 0, NV_PCRTC_INTR_EN_0, 0);
if (nv_two_heads(dev))
NVWriteCRTC(dev, 1, NV_PCRTC_INTR_EN_0, 0);
} }
static void static void
......
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