summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_drv.h
diff options
context:
space:
mode:
authorVille Syrjälä <ville.syrjala@linux.intel.com>2017-03-02 19:14:52 +0200
committerVille Syrjälä <ville.syrjala@linux.intel.com>2017-03-03 16:50:09 +0200
commitf07d43d2da1cbf4f335359a5fe39f773133c2be4 (patch)
tree71cfdd282a7d32103a084541f70601546e36f7ee /drivers/gpu/drm/i915/intel_drv.h
parente9728bd888e1fa2d5c1f77de8817a96eeba31747 (diff)
downloadop-kernel-dev-f07d43d2da1cbf4f335359a5fe39f773133c2be4.zip
op-kernel-dev-f07d43d2da1cbf4f335359a5fe39f773133c2be4.tar.gz
drm/i915: Track plane fifo sizes under intel_crtc
Track the plane fifo sizes under intel_crtc instead of under each intel_plane. Avoids looping over the planes in a bunch of places, and later we'll move this tracking into the crtc state properly. v2: Nuke intel_plane_wm_parameters (Maarten) Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Link: http://patchwork.freedesktop.org/patch/msgid/20170302171508.1666-3-ville.syrjala@linux.intel.com
Diffstat (limited to 'drivers/gpu/drm/i915/intel_drv.h')
-rw-r--r--drivers/gpu/drm/i915/intel_drv.h32
1 files changed, 6 insertions, 26 deletions
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index 7083118..0ffe527 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -709,6 +709,10 @@ struct vlv_wm_state {
bool cxsr;
};
+struct vlv_fifo_state {
+ uint16_t plane[I915_MAX_PLANES];
+};
+
struct intel_crtc {
struct drm_crtc base;
enum pipe pipe;
@@ -758,6 +762,8 @@ struct intel_crtc {
/* allow CxSR on this pipe */
bool cxsr_allowed;
+
+ struct vlv_fifo_state fifo_state;
} wm;
int scanline_offset;
@@ -775,25 +781,6 @@ struct intel_crtc {
struct vlv_wm_state wm_state;
};
-struct intel_plane_wm_parameters {
- uint32_t horiz_pixels;
- uint32_t vert_pixels;
- /*
- * For packed pixel formats:
- * bytes_per_pixel - holds bytes per pixel
- * For planar pixel formats:
- * bytes_per_pixel - holds bytes per pixel for uv-plane
- * y_bytes_per_pixel - holds bytes per pixel for y-plane
- */
- uint8_t bytes_per_pixel;
- uint8_t y_bytes_per_pixel;
- bool enabled;
- bool scaled;
- u64 tiling;
- unsigned int rotation;
- uint16_t fifo_size;
-};
-
struct intel_plane {
struct drm_plane base;
u8 plane;
@@ -803,13 +790,6 @@ struct intel_plane {
int max_downscale;
uint32_t frontbuffer_bit;
- /* Since we need to change the watermarks before/after
- * enabling/disabling the planes, we need to store the parameters here
- * as the other pieces of the struct may not reflect the values we want
- * for the watermark calculations. Currently only Haswell uses this.
- */
- struct intel_plane_wm_parameters wm;
-
/*
* NOTE: Do not place new plane state fields here (e.g., when adding
* new plane properties). New runtime state should now be placed in
OpenPOWER on IntegriCloud