|
@@ -2866,25 +2866,19 @@ static void haswell_update_wm(struct drm_device *dev)
|
|
|
hsw_write_wm_values(dev_priv, best_results, partitioning);
|
|
|
}
|
|
|
|
|
|
-static void haswell_update_sprite_wm(struct drm_device *dev, int pipe,
|
|
|
+static void haswell_update_sprite_wm(struct drm_plane *plane,
|
|
|
+ struct drm_crtc *crtc,
|
|
|
uint32_t sprite_width, int pixel_size,
|
|
|
bool enabled, bool scaled)
|
|
|
{
|
|
|
- struct drm_plane *plane;
|
|
|
-
|
|
|
- list_for_each_entry(plane, &dev->mode_config.plane_list, head) {
|
|
|
- struct intel_plane *intel_plane = to_intel_plane(plane);
|
|
|
+ struct intel_plane *intel_plane = to_intel_plane(plane);
|
|
|
|
|
|
- if (intel_plane->pipe == pipe) {
|
|
|
- intel_plane->wm.enabled = enabled;
|
|
|
- intel_plane->wm.scaled = scaled;
|
|
|
- intel_plane->wm.horiz_pixels = sprite_width;
|
|
|
- intel_plane->wm.bytes_per_pixel = pixel_size;
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
+ intel_plane->wm.enabled = enabled;
|
|
|
+ intel_plane->wm.scaled = scaled;
|
|
|
+ intel_plane->wm.horiz_pixels = sprite_width;
|
|
|
+ intel_plane->wm.bytes_per_pixel = pixel_size;
|
|
|
|
|
|
- haswell_update_wm(dev);
|
|
|
+ haswell_update_wm(plane->dev);
|
|
|
}
|
|
|
|
|
|
static bool
|
|
@@ -2963,11 +2957,14 @@ sandybridge_compute_sprite_srwm(struct drm_device *dev, int plane,
|
|
|
return *sprite_wm > 0x3ff ? false : true;
|
|
|
}
|
|
|
|
|
|
-static void sandybridge_update_sprite_wm(struct drm_device *dev, int pipe,
|
|
|
+static void sandybridge_update_sprite_wm(struct drm_plane *plane,
|
|
|
+ struct drm_crtc *crtc,
|
|
|
uint32_t sprite_width, int pixel_size,
|
|
|
bool enabled, bool scaled)
|
|
|
{
|
|
|
+ struct drm_device *dev = plane->dev;
|
|
|
struct drm_i915_private *dev_priv = dev->dev_private;
|
|
|
+ int pipe = to_intel_plane(plane)->pipe;
|
|
|
int latency = dev_priv->wm.spr_latency[0] * 100; /* In unit 0.1us */
|
|
|
u32 val;
|
|
|
int sprite_wm, reg;
|
|
@@ -3086,14 +3083,15 @@ void intel_update_watermarks(struct drm_device *dev)
|
|
|
dev_priv->display.update_wm(dev);
|
|
|
}
|
|
|
|
|
|
-void intel_update_sprite_watermarks(struct drm_device *dev, int pipe,
|
|
|
+void intel_update_sprite_watermarks(struct drm_plane *plane,
|
|
|
+ struct drm_crtc *crtc,
|
|
|
uint32_t sprite_width, int pixel_size,
|
|
|
bool enabled, bool scaled)
|
|
|
{
|
|
|
- struct drm_i915_private *dev_priv = dev->dev_private;
|
|
|
+ struct drm_i915_private *dev_priv = plane->dev->dev_private;
|
|
|
|
|
|
if (dev_priv->display.update_sprite_wm)
|
|
|
- dev_priv->display.update_sprite_wm(dev, pipe, sprite_width,
|
|
|
+ dev_priv->display.update_sprite_wm(plane, crtc, sprite_width,
|
|
|
pixel_size, enabled, scaled);
|
|
|
}
|
|
|
|