Commit bed4a673 authored by Chris Wilson's avatar Chris Wilson

drm/i915: Fix updating FBC

We need to track different state on each generation in order to detect
when we need to refresh the FBC registers.
Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
parent ea056c14
...@@ -719,6 +719,9 @@ static int i915_fbc_status(struct seq_file *m, void *unused) ...@@ -719,6 +719,9 @@ static int i915_fbc_status(struct seq_file *m, void *unused)
} else { } else {
seq_printf(m, "FBC disabled: "); seq_printf(m, "FBC disabled: ");
switch (dev_priv->no_fbc_reason) { switch (dev_priv->no_fbc_reason) {
case FBC_NO_OUTPUT:
seq_printf(m, "no outputs");
break;
case FBC_STOLEN_TOO_SMALL: case FBC_STOLEN_TOO_SMALL:
seq_printf(m, "not enough stolen memory"); seq_printf(m, "not enough stolen memory");
break; break;
......
...@@ -219,6 +219,7 @@ struct intel_device_info { ...@@ -219,6 +219,7 @@ struct intel_device_info {
}; };
enum no_fbc_reason { enum no_fbc_reason {
FBC_NO_OUTPUT, /* no outputs enabled to compress */
FBC_STOLEN_TOO_SMALL, /* not enough space to hold compressed buffers */ FBC_STOLEN_TOO_SMALL, /* not enough space to hold compressed buffers */
FBC_UNSUPPORTED_MODE, /* interlace or doublescanned mode */ FBC_UNSUPPORTED_MODE, /* interlace or doublescanned mode */
FBC_MODE_TOO_LARGE, /* mode too large for compression */ FBC_MODE_TOO_LARGE, /* mode too large for compression */
...@@ -307,8 +308,10 @@ typedef struct drm_i915_private { ...@@ -307,8 +308,10 @@ typedef struct drm_i915_private {
unsigned long cfb_size; unsigned long cfb_size;
unsigned long cfb_pitch; unsigned long cfb_pitch;
unsigned long cfb_offset;
int cfb_fence; int cfb_fence;
int cfb_plane; int cfb_plane;
int cfb_y;
int irq_enabled; int irq_enabled;
......
This diff is collapsed.
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