diff options
Diffstat (limited to 'drivers/gpu/drm/i915/intel_display.c')
-rw-r--r-- | drivers/gpu/drm/i915/intel_display.c | 42 |
1 files changed, 6 insertions, 36 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index d8a1d98693e7..581fb4b2f766 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c | |||
@@ -3941,8 +3941,6 @@ static void intel_connector_check_state(struct intel_connector *connector) | |||
3941 | * consider. */ | 3941 | * consider. */ |
3942 | void intel_connector_dpms(struct drm_connector *connector, int mode) | 3942 | void intel_connector_dpms(struct drm_connector *connector, int mode) |
3943 | { | 3943 | { |
3944 | struct intel_encoder *encoder = intel_attached_encoder(connector); | ||
3945 | |||
3946 | /* All the simple cases only support two dpms states. */ | 3944 | /* All the simple cases only support two dpms states. */ |
3947 | if (mode != DRM_MODE_DPMS_ON) | 3945 | if (mode != DRM_MODE_DPMS_ON) |
3948 | mode = DRM_MODE_DPMS_OFF; | 3946 | mode = DRM_MODE_DPMS_OFF; |
@@ -3953,10 +3951,8 @@ void intel_connector_dpms(struct drm_connector *connector, int mode) | |||
3953 | connector->dpms = mode; | 3951 | connector->dpms = mode; |
3954 | 3952 | ||
3955 | /* Only need to change hw state when actually enabled */ | 3953 | /* Only need to change hw state when actually enabled */ |
3956 | if (encoder->base.crtc) | 3954 | if (connector->encoder) |
3957 | intel_encoder_dpms(encoder, mode); | 3955 | intel_encoder_dpms(to_intel_encoder(connector->encoder), mode); |
3958 | else | ||
3959 | WARN_ON(encoder->connectors_active != false); | ||
3960 | 3956 | ||
3961 | intel_modeset_check_state(connector->dev); | 3957 | intel_modeset_check_state(connector->dev); |
3962 | } | 3958 | } |
@@ -4775,6 +4771,10 @@ static void i9xx_set_pipeconf(struct intel_crtc *intel_crtc) | |||
4775 | 4771 | ||
4776 | pipeconf = 0; | 4772 | pipeconf = 0; |
4777 | 4773 | ||
4774 | if (dev_priv->quirks & QUIRK_PIPEA_FORCE && | ||
4775 | I915_READ(PIPECONF(intel_crtc->pipe)) & PIPECONF_ENABLE) | ||
4776 | pipeconf |= PIPECONF_ENABLE; | ||
4777 | |||
4778 | if (intel_crtc->pipe == 0 && INTEL_INFO(dev)->gen < 4) { | 4778 | if (intel_crtc->pipe == 0 && INTEL_INFO(dev)->gen < 4) { |
4779 | /* Enable pixel doubling when the dot clock is > 90% of the (display) | 4779 | /* Enable pixel doubling when the dot clock is > 90% of the (display) |
4780 | * core speed. | 4780 | * core speed. |
@@ -10045,33 +10045,6 @@ static void i915_disable_vga(struct drm_device *dev) | |||
10045 | POSTING_READ(vga_reg); | 10045 | POSTING_READ(vga_reg); |
10046 | } | 10046 | } |
10047 | 10047 | ||
10048 | static void i915_enable_vga_mem(struct drm_device *dev) | ||
10049 | { | ||
10050 | /* Enable VGA memory on Intel HD */ | ||
10051 | if (HAS_PCH_SPLIT(dev)) { | ||
10052 | vga_get_uninterruptible(dev->pdev, VGA_RSRC_LEGACY_IO); | ||
10053 | outb(inb(VGA_MSR_READ) | VGA_MSR_MEM_EN, VGA_MSR_WRITE); | ||
10054 | vga_set_legacy_decoding(dev->pdev, VGA_RSRC_LEGACY_IO | | ||
10055 | VGA_RSRC_LEGACY_MEM | | ||
10056 | VGA_RSRC_NORMAL_IO | | ||
10057 | VGA_RSRC_NORMAL_MEM); | ||
10058 | vga_put(dev->pdev, VGA_RSRC_LEGACY_IO); | ||
10059 | } | ||
10060 | } | ||
10061 | |||
10062 | void i915_disable_vga_mem(struct drm_device *dev) | ||
10063 | { | ||
10064 | /* Disable VGA memory on Intel HD */ | ||
10065 | if (HAS_PCH_SPLIT(dev)) { | ||
10066 | vga_get_uninterruptible(dev->pdev, VGA_RSRC_LEGACY_IO); | ||
10067 | outb(inb(VGA_MSR_READ) & ~VGA_MSR_MEM_EN, VGA_MSR_WRITE); | ||
10068 | vga_set_legacy_decoding(dev->pdev, VGA_RSRC_LEGACY_IO | | ||
10069 | VGA_RSRC_NORMAL_IO | | ||
10070 | VGA_RSRC_NORMAL_MEM); | ||
10071 | vga_put(dev->pdev, VGA_RSRC_LEGACY_IO); | ||
10072 | } | ||
10073 | } | ||
10074 | |||
10075 | void intel_modeset_init_hw(struct drm_device *dev) | 10048 | void intel_modeset_init_hw(struct drm_device *dev) |
10076 | { | 10049 | { |
10077 | intel_init_power_well(dev); | 10050 | intel_init_power_well(dev); |
@@ -10350,7 +10323,6 @@ void i915_redisable_vga(struct drm_device *dev) | |||
10350 | if (I915_READ(vga_reg) != VGA_DISP_DISABLE) { | 10323 | if (I915_READ(vga_reg) != VGA_DISP_DISABLE) { |
10351 | DRM_DEBUG_KMS("Something enabled VGA plane, disabling it\n"); | 10324 | DRM_DEBUG_KMS("Something enabled VGA plane, disabling it\n"); |
10352 | i915_disable_vga(dev); | 10325 | i915_disable_vga(dev); |
10353 | i915_disable_vga_mem(dev); | ||
10354 | } | 10326 | } |
10355 | } | 10327 | } |
10356 | 10328 | ||
@@ -10564,8 +10536,6 @@ void intel_modeset_cleanup(struct drm_device *dev) | |||
10564 | 10536 | ||
10565 | intel_disable_fbc(dev); | 10537 | intel_disable_fbc(dev); |
10566 | 10538 | ||
10567 | i915_enable_vga_mem(dev); | ||
10568 | |||
10569 | intel_disable_gt_powersave(dev); | 10539 | intel_disable_gt_powersave(dev); |
10570 | 10540 | ||
10571 | ironlake_teardown_rc6(dev); | 10541 | ironlake_teardown_rc6(dev); |