diff options
| author | Ben Skeggs <bskeggs@redhat.com> | 2011-11-21 22:59:30 -0500 |
|---|---|---|
| committer | Ben Skeggs <bskeggs@redhat.com> | 2012-05-24 02:32:01 -0400 |
| commit | afada5e0bb3cac8530c2ae36aa0abca41d60e063 (patch) | |
| tree | 32c87d14179a21c5fbec15ae1c1e30b724d1c9ac /drivers/gpu | |
| parent | 695b95b810d1c3024d7bad9e3658a35e11a60d86 (diff) | |
drm/nv04/disp: disable vblank interrupts when disabling display
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu')
| -rw-r--r-- | drivers/gpu/drm/nouveau/nouveau_hw.c | 5 | ||||
| -rw-r--r-- | drivers/gpu/drm/nouveau/nv04_display.c | 11 |
2 files changed, 11 insertions, 5 deletions
diff --git a/drivers/gpu/drm/nouveau/nouveau_hw.c b/drivers/gpu/drm/nouveau/nouveau_hw.c index ba896e54b799..b87ad3bd7739 100644 --- a/drivers/gpu/drm/nouveau/nouveau_hw.c +++ b/drivers/gpu/drm/nouveau/nouveau_hw.c | |||
| @@ -1018,11 +1018,6 @@ nv_load_state_ext(struct drm_device *dev, int head, | |||
| 1018 | } | 1018 | } |
| 1019 | 1019 | ||
| 1020 | NVWriteCRTC(dev, head, NV_PCRTC_START, regp->fb_start); | 1020 | NVWriteCRTC(dev, head, NV_PCRTC_START, regp->fb_start); |
| 1021 | |||
| 1022 | /* Enable vblank interrupts. */ | ||
| 1023 | NVWriteCRTC(dev, head, NV_PCRTC_INTR_EN_0, | ||
| 1024 | (dev->vblank_enabled[head] ? 1 : 0)); | ||
| 1025 | NVWriteCRTC(dev, head, NV_PCRTC_INTR_0, NV_PCRTC_INTR_0_VBLANK); | ||
| 1026 | } | 1021 | } |
| 1027 | 1022 | ||
| 1028 | static void | 1023 | static void |
diff --git a/drivers/gpu/drm/nouveau/nv04_display.c b/drivers/gpu/drm/nouveau/nv04_display.c index 7047d37e8dab..44488e3a257d 100644 --- a/drivers/gpu/drm/nouveau/nv04_display.c +++ b/drivers/gpu/drm/nouveau/nv04_display.c | |||
| @@ -98,6 +98,13 @@ nv04_display_early_init(struct drm_device *dev) | |||
| 98 | NVSetOwner(dev, 0); | 98 | NVSetOwner(dev, 0); |
| 99 | } | 99 | } |
| 100 | 100 | ||
| 101 | /* ensure vblank interrupts are off, they can't be enabled until | ||
| 102 | * drm_vblank has been initialised | ||
| 103 | */ | ||
| 104 | NVWriteCRTC(dev, 0, NV_PCRTC_INTR_EN_0, 0); | ||
| 105 | if (nv_two_heads(dev)) | ||
| 106 | NVWriteCRTC(dev, 1, NV_PCRTC_INTR_EN_0, 0); | ||
| 107 | |||
| 101 | return 0; | 108 | return 0; |
| 102 | } | 109 | } |
| 103 | 110 | ||
| @@ -246,6 +253,10 @@ nv04_display_init(struct drm_device *dev) | |||
| 246 | void | 253 | void |
| 247 | nv04_display_fini(struct drm_device *dev) | 254 | nv04_display_fini(struct drm_device *dev) |
| 248 | { | 255 | { |
| 256 | /* disable vblank interrupts */ | ||
| 257 | NVWriteCRTC(dev, 0, NV_PCRTC_INTR_EN_0, 0); | ||
| 258 | if (nv_two_heads(dev)) | ||
| 259 | NVWriteCRTC(dev, 1, NV_PCRTC_INTR_EN_0, 0); | ||
| 249 | } | 260 | } |
| 250 | 261 | ||
| 251 | static void | 262 | static void |
