diff options
author | Paulo Zanoni <paulo.r.zanoni@intel.com> | 2016-02-23 15:15:43 -0300 |
---|---|---|
committer | Paulo Zanoni <paulo.r.zanoni@intel.com> | 2016-02-23 16:17:08 -0300 |
commit | c307a049c2c5781ca7b48f143e275fc1733f0100 (patch) | |
tree | b728c4ec7f38b4f28d4d038f146846811b3e0fe7 | |
parent | 2536128ecd5a3e42618588c98936df42f6da6020 (diff) |
XXX: mmap debug stuff for FBCfbc-2016-02-26
Not-signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
-rw-r--r-- | drivers/gpu/drm/i915/intel_fbc.c | 9 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_frontbuffer.c | 49 |
2 files changed, 56 insertions, 2 deletions
diff --git a/drivers/gpu/drm/i915/intel_fbc.c b/drivers/gpu/drm/i915/intel_fbc.c index 57378ce7acaa..6b58ed780c96 100644 --- a/drivers/gpu/drm/i915/intel_fbc.c +++ b/drivers/gpu/drm/i915/intel_fbc.c @@ -818,8 +818,11 @@ static bool intel_fbc_can_activate(struct intel_crtc *crtc) } if (cache->fb.mmap_bits & (MMAP_BITS_CPU | MMAP_BITS_WC)) { + DRM_DEBUG_KMS("=== rejecting due to MMAP\n"); fbc->no_fbc_reason = "FB is CPU or WC mmapped"; return false; + } else { + DRM_DEBUG_KMS("=== not rejecting now :)\n"); } return true; @@ -1035,8 +1038,12 @@ void intel_fbc_mmap_notify(struct drm_i915_private *dev_priv, if (fbc->enabled && (intel_fbc_get_frontbuffer_bit(fbc) & frontbuffer_bits)) { fbc->state_cache.fb.mmap_bits = mmap_bits; - if (mmap_bits & (MMAP_BITS_CPU | MMAP_BITS_WC)) + if (mmap_bits & (MMAP_BITS_CPU | MMAP_BITS_WC)) { + DRM_DEBUG_KMS("=== CPU/WC mmap: disabling FBC\n"); intel_fbc_deactivate(dev_priv); + } else { + DRM_DEBUG_KMS("=== GTT mmap: keeping FBC\n"); + } } mutex_unlock(&fbc->lock); diff --git a/drivers/gpu/drm/i915/intel_frontbuffer.c b/drivers/gpu/drm/i915/intel_frontbuffer.c index a4471c335bdc..3ab7fe5a9a8f 100644 --- a/drivers/gpu/drm/i915/intel_frontbuffer.c +++ b/drivers/gpu/drm/i915/intel_frontbuffer.c @@ -261,8 +261,55 @@ void intel_frontbuffer_obj_mmap(struct drm_i915_gem_object *obj) { struct drm_i915_private *dev_priv = obj->base.dev->dev_private; - if (!obj->frontbuffer_bits) + if (!obj->frontbuffer_bits) { + switch (obj->mmap_bits) { + case MMAP_BITS_CPU: + DRM_DEBUG_KMS("=== CPU mmap on backbuffer object\n"); + break; + case MMAP_BITS_GTT: + DRM_DEBUG_KMS("=== GTT mmap on backbuffer object\n"); + break; + case MMAP_BITS_WC: + DRM_DEBUG_KMS("=== WC mmap on backbuffer object\n"); + break; + case MMAP_BITS_CPU | MMAP_BITS_GTT: + DRM_DEBUG_KMS("=== CPU+GTT mmap on backbuffer object\n"); + break; + case MMAP_BITS_CPU | MMAP_BITS_WC: + DRM_DEBUG_KMS("=== CPU+WC mmap on backbuffer object\n"); + break; + case MMAP_BITS_GTT | MMAP_BITS_WC: + DRM_DEBUG_KMS("=== GTT+WC mmap on backbuffer object\n"); + break; + case MMAP_BITS_CPU | MMAP_BITS_GTT | MMAP_BITS_WC: + DRM_DEBUG_KMS("=== CPU+GTT+WC mmap on backbuffer object\n"); + break; + } return; + } + switch (obj->mmap_bits) { + case MMAP_BITS_CPU: + DRM_DEBUG_KMS("=== CPU mmap on -FRONTBUFFER- object\n"); + break; + case MMAP_BITS_GTT: + DRM_DEBUG_KMS("=== GTT mmap on -FRONTBUFFER- object\n"); + break; + case MMAP_BITS_WC: + DRM_DEBUG_KMS("=== WC mmap on -FRONTBUFFER- object\n"); + break; + case MMAP_BITS_CPU | MMAP_BITS_GTT: + DRM_DEBUG_KMS("=== CPU+GTT mmap on -FRONTBUFFER- object\n"); + break; + case MMAP_BITS_CPU | MMAP_BITS_WC: + DRM_DEBUG_KMS("=== CPU+WC mmap on -FRONTBUFFER- object\n"); + break; + case MMAP_BITS_GTT | MMAP_BITS_WC: + DRM_DEBUG_KMS("=== GTT+WC mmap on -FRONTBUFFER- object\n"); + break; + case MMAP_BITS_CPU | MMAP_BITS_GTT | MMAP_BITS_WC: + DRM_DEBUG_KMS("=== CPU+GTT+WC mmap on -FRONTBUFFER- object\n"); + break; + } intel_fbc_mmap_notify(dev_priv, obj->frontbuffer_bits, obj->mmap_bits); } |