diff options
author | Dave Airlie <airlied@redhat.com> | 2013-01-17 05:34:08 -0500 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2013-01-17 05:34:08 -0500 |
commit | b5cc6c0387b2f8d269c1df1e68c97c958dd22fed (patch) | |
tree | 697f2335b3a10f55e0ea226dcd044ee4ff3f0f7f /drivers/gpu/drm/i915/intel_pm.c | |
parent | 9931faca02c604c22335f5a935a501bb2ace6e20 (diff) | |
parent | c0c36b941b6f0be6ac74f340040cbb29d6a0b06c (diff) |
Merge tag 'drm-intel-next-2012-12-21' of git://people.freedesktop.org/~danvet/drm-intel into drm-next
Daniel writes:
- seqno wrap fixes and debug infrastructure from Mika Kuoppala and Chris
Wilson
- some leftover kill-agp on gen6+ patches from Ben
- hotplug improvements from Damien
- clear fb when allocated from stolen, avoids dirt on the fbcon (Chris)
- Stolen mem support from Chris Wilson, one of the many steps to get to
real fastboot support.
- Some DDI code cleanups from Paulo.
- Some refactorings around lvds and dp code.
- some random little bits&pieces
* tag 'drm-intel-next-2012-12-21' of git://people.freedesktop.org/~danvet/drm-intel: (93 commits)
drm/i915: Return the real error code from intel_set_mode()
drm/i915: Make GSM void
drm/i915: Move GSM mapping into dev_priv
drm/i915: Move even more gtt code to i915_gem_gtt
drm/i915: Make next_seqno debugs entry to use i915_gem_set_seqno
drm/i915: Introduce i915_gem_set_seqno()
drm/i915: Always clear semaphore mboxes on seqno wrap
drm/i915: Initialize hardware semaphore state on ring init
drm/i915: Introduce ring set_seqno
drm/i915: Missed conversion to gtt_pte_t
drm/i915: Bug on unsupported swizzled platforms
drm/i915: BUG() if fences are used on unsupported platform
drm/i915: fixup overlay stolen memory leak
drm/i915: clean up PIPECONF bpc #defines
drm/i915: add intel_dp_set_signal_levels
drm/i915: remove leftover display.update_wm assignment
drm/i915: check for the PCH when setting pch_transcoder
drm/i915: Clear the stolen fb before enabling
drm/i915: Access to snooped system memory through the GTT is incoherent
drm/i915: Remove stale comment about intel_dp_detect()
...
Conflicts:
drivers/gpu/drm/i915/intel_display.c
Diffstat (limited to 'drivers/gpu/drm/i915/intel_pm.c')
-rw-r--r-- | drivers/gpu/drm/i915/intel_pm.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c index e6f54ffab3ba..5a8a72c5a89d 100644 --- a/drivers/gpu/drm/i915/intel_pm.c +++ b/drivers/gpu/drm/i915/intel_pm.c | |||
@@ -440,12 +440,6 @@ void intel_update_fbc(struct drm_device *dev) | |||
440 | dev_priv->no_fbc_reason = FBC_MODULE_PARAM; | 440 | dev_priv->no_fbc_reason = FBC_MODULE_PARAM; |
441 | goto out_disable; | 441 | goto out_disable; |
442 | } | 442 | } |
443 | if (intel_fb->obj->base.size > dev_priv->cfb_size) { | ||
444 | DRM_DEBUG_KMS("framebuffer too large, disabling " | ||
445 | "compression\n"); | ||
446 | dev_priv->no_fbc_reason = FBC_STOLEN_TOO_SMALL; | ||
447 | goto out_disable; | ||
448 | } | ||
449 | if ((crtc->mode.flags & DRM_MODE_FLAG_INTERLACE) || | 443 | if ((crtc->mode.flags & DRM_MODE_FLAG_INTERLACE) || |
450 | (crtc->mode.flags & DRM_MODE_FLAG_DBLSCAN)) { | 444 | (crtc->mode.flags & DRM_MODE_FLAG_DBLSCAN)) { |
451 | DRM_DEBUG_KMS("mode incompatible with compression, " | 445 | DRM_DEBUG_KMS("mode incompatible with compression, " |
@@ -479,6 +473,14 @@ void intel_update_fbc(struct drm_device *dev) | |||
479 | if (in_dbg_master()) | 473 | if (in_dbg_master()) |
480 | goto out_disable; | 474 | goto out_disable; |
481 | 475 | ||
476 | if (i915_gem_stolen_setup_compression(dev, intel_fb->obj->base.size)) { | ||
477 | DRM_INFO("not enough stolen space for compressed buffer (need %zd bytes), disabling\n", intel_fb->obj->base.size); | ||
478 | DRM_INFO("hint: you may be able to increase stolen memory size in the BIOS to avoid this\n"); | ||
479 | DRM_DEBUG_KMS("framebuffer too large, disabling compression\n"); | ||
480 | dev_priv->no_fbc_reason = FBC_STOLEN_TOO_SMALL; | ||
481 | goto out_disable; | ||
482 | } | ||
483 | |||
482 | /* If the scanout has not changed, don't modify the FBC settings. | 484 | /* If the scanout has not changed, don't modify the FBC settings. |
483 | * Note that we make the fundamental assumption that the fb->obj | 485 | * Note that we make the fundamental assumption that the fb->obj |
484 | * cannot be unpinned (and have its GTT offset and fence revoked) | 486 | * cannot be unpinned (and have its GTT offset and fence revoked) |
@@ -526,6 +528,7 @@ out_disable: | |||
526 | DRM_DEBUG_KMS("unsupported config, disabling FBC\n"); | 528 | DRM_DEBUG_KMS("unsupported config, disabling FBC\n"); |
527 | intel_disable_fbc(dev); | 529 | intel_disable_fbc(dev); |
528 | } | 530 | } |
531 | i915_gem_stolen_cleanup_compression(dev); | ||
529 | } | 532 | } |
530 | 533 | ||
531 | static void i915_pineview_get_mem_freq(struct drm_device *dev) | 534 | static void i915_pineview_get_mem_freq(struct drm_device *dev) |