drm/i915: Drop intel_update_sprite_watermarks
authorMatt Roper <matthew.d.roper@intel.com>
Thu, 24 Sep 2015 22:53:13 +0000 (15:53 -0700)
committerMatt Roper <matthew.d.roper@intel.com>
Wed, 21 Oct 2015 21:53:52 +0000 (14:53 -0700)
The only platform that still has an update_sprite_wm entrypoint is SKL;
on SKL, intel_update_sprite_watermarks just updates intel_plane->wm and
then performs a regular watermark update.  However intel_plane->wm is
only used to update a couple fields in intel_wm_config, and those fields
are never used by the SKL code, so on SKL an update_sprite_wm is
effectively identical to an update_wm call.  Since we're already
ensuring that the regular intel_update_wm is called any time we'd try to
call intel_update_sprite_watermarks, the whole call is redundant and can
be dropped.

Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Smoke-tested-by: Paulo Zanoni <przanoni@gmail.com>
Link: http://patchwork.freedesktop.org/patch/60372/
drivers/gpu/drm/i915/i915_drv.h
drivers/gpu/drm/i915/intel_display.c
drivers/gpu/drm/i915/intel_drv.h
drivers/gpu/drm/i915/intel_pm.c
drivers/gpu/drm/i915/intel_sprite.c

index 48e3a488678f72ab54cc991810efe1990d477f47..50db4e8c47dc0a177239d958558418f06ce5401e 100644 (file)
@@ -628,10 +628,6 @@ struct drm_i915_display_funcs {
                          struct dpll *match_clock,
                          struct dpll *best_clock);
        void (*update_wm)(struct drm_crtc *crtc);
-       void (*update_sprite_wm)(struct drm_plane *plane,
-                                struct drm_crtc *crtc,
-                                uint32_t sprite_width, uint32_t sprite_height,
-                                int pixel_size, bool enable, bool scaled);
        int (*modeset_calc_cdclk)(struct drm_atomic_state *state);
        void (*modeset_commit_cdclk)(struct drm_atomic_state *state);
        /* Returns the active state of the crtc, and if the crtc is active,
index 49af225757bd22f68c19f514fa0b39fb4e58be03..bcc84672e199e83b908c66df1167023c2a79edf1 100644 (file)
@@ -4770,7 +4770,6 @@ static void intel_post_plane_update(struct intel_crtc *crtc)
        struct intel_crtc_atomic_commit *atomic = &crtc->atomic;
        struct drm_device *dev = crtc->base.dev;
        struct drm_i915_private *dev_priv = dev->dev_private;
-       struct drm_plane *plane;
 
        if (atomic->wait_vblank)
                intel_wait_for_vblank(dev, crtc->pipe);
@@ -4789,10 +4788,6 @@ static void intel_post_plane_update(struct intel_crtc *crtc)
        if (atomic->post_enable_primary)
                intel_post_enable_primary(&crtc->base);
 
-       drm_for_each_plane_mask(plane, dev, atomic->update_sprite_watermarks)
-               intel_update_sprite_watermarks(plane, &crtc->base,
-                                              0, 0, 0, false, false);
-
        memset(atomic, 0, sizeof(*atomic));
 }
 
index 754fdce86aa2bb613c33b0a1bb73747fb3a3f717..fdfd4e285f4800c8c06f2f1de2446cf08b924d31 100644 (file)
@@ -1402,12 +1402,6 @@ void intel_init_clock_gating(struct drm_device *dev);
 void intel_suspend_hw(struct drm_device *dev);
 int ilk_wm_max_level(const struct drm_device *dev);
 void intel_update_watermarks(struct drm_crtc *crtc);
-void intel_update_sprite_watermarks(struct drm_plane *plane,
-                                   struct drm_crtc *crtc,
-                                   uint32_t sprite_width,
-                                   uint32_t sprite_height,
-                                   int pixel_size,
-                                   bool enabled, bool scaled);
 void intel_init_pm(struct drm_device *dev);
 void intel_pm_setup(struct drm_device *dev);
 void intel_gpu_ips_init(struct drm_i915_private *dev_priv);
index af9057a381cfa2158d070b1a05660943dead8d2b..63d43cf1d4a408ad3e2ffd0c09b43fbca8f468e6 100644 (file)
@@ -3094,18 +3094,9 @@ static void skl_compute_wm_global_parameters(struct drm_device *dev,
                                             struct intel_wm_config *config)
 {
        struct drm_crtc *crtc;
-       struct drm_plane *plane;
 
        list_for_each_entry(crtc, &dev->mode_config.crtc_list, head)
                config->num_pipes_active += to_intel_crtc(crtc)->active;
-
-       /* FIXME: I don't think we need those two global parameters on SKL */
-       list_for_each_entry(plane, &dev->mode_config.plane_list, head) {
-               struct intel_plane *intel_plane = to_intel_plane(plane);
-
-               config->sprites_enabled |= intel_plane->wm.enabled;
-               config->sprites_scaled |= intel_plane->wm.scaled;
-       }
 }
 
 static bool skl_compute_plane_wm(const struct drm_i915_private *dev_priv,
@@ -3626,39 +3617,6 @@ static void skl_update_wm(struct drm_crtc *crtc)
        dev_priv->wm.skl_hw = *results;
 }
 
-static void
-skl_update_sprite_wm(struct drm_plane *plane, struct drm_crtc *crtc,
-                    uint32_t sprite_width, uint32_t sprite_height,
-                    int pixel_size, bool enabled, bool scaled)
-{
-       struct intel_plane *intel_plane = to_intel_plane(plane);
-       struct drm_framebuffer *fb = plane->state->fb;
-
-       intel_plane->wm.enabled = enabled;
-       intel_plane->wm.scaled = scaled;
-       intel_plane->wm.horiz_pixels = sprite_width;
-       intel_plane->wm.vert_pixels = sprite_height;
-       intel_plane->wm.tiling = DRM_FORMAT_MOD_NONE;
-
-       /* For planar: Bpp is for UV plane, y_Bpp is for Y plane */
-       intel_plane->wm.bytes_per_pixel =
-               (fb && fb->pixel_format == DRM_FORMAT_NV12) ?
-               drm_format_plane_cpp(plane->state->fb->pixel_format, 1) : pixel_size;
-       intel_plane->wm.y_bytes_per_pixel =
-               (fb && fb->pixel_format == DRM_FORMAT_NV12) ?
-               drm_format_plane_cpp(plane->state->fb->pixel_format, 0) : 0;
-
-       /*
-        * Framebuffer can be NULL on plane disable, but it does not
-        * matter for watermarks if we assume no tiling in that case.
-        */
-       if (fb)
-               intel_plane->wm.tiling = fb->modifier[0];
-       intel_plane->wm.rotation = plane->state->rotation;
-
-       skl_update_wm(crtc);
-}
-
 static void ilk_update_wm(struct drm_crtc *crtc)
 {
        struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
@@ -4094,21 +4052,6 @@ void intel_update_watermarks(struct drm_crtc *crtc)
                dev_priv->display.update_wm(crtc);
 }
 
-void intel_update_sprite_watermarks(struct drm_plane *plane,
-                                   struct drm_crtc *crtc,
-                                   uint32_t sprite_width,
-                                   uint32_t sprite_height,
-                                   int pixel_size,
-                                   bool enabled, bool scaled)
-{
-       struct drm_i915_private *dev_priv = plane->dev->dev_private;
-
-       if (dev_priv->display.update_sprite_wm)
-               dev_priv->display.update_sprite_wm(plane, crtc,
-                                                  sprite_width, sprite_height,
-                                                  pixel_size, enabled, scaled);
-}
-
 /**
  * Lock protecting IPS related data structures
  */
@@ -7021,7 +6964,6 @@ void intel_init_pm(struct drm_device *dev)
                        dev_priv->display.init_clock_gating =
                                bxt_init_clock_gating;
                dev_priv->display.update_wm = skl_update_wm;
-               dev_priv->display.update_sprite_wm = skl_update_sprite_wm;
        } else if (HAS_PCH_SPLIT(dev)) {
                ilk_setup_wm_latency(dev);
 
index 2551335ada040d92b40e62b31a06f9905cc0649c..4276c135b9f2d902b8463c18b751fcfc35d5d812 100644 (file)
@@ -192,7 +192,6 @@ skl_update_plane(struct drm_plane *drm_plane, struct drm_crtc *crtc,
        const int pipe = intel_plane->pipe;
        const int plane = intel_plane->plane + 1;
        u32 plane_ctl, stride_div, stride;
-       int pixel_size = drm_format_plane_cpp(fb->pixel_format, 0);
        const struct drm_intel_sprite_colorkey *key =
                &to_intel_plane_state(drm_plane->state)->ckey;
        unsigned long surf_addr;
@@ -212,10 +211,6 @@ skl_update_plane(struct drm_plane *drm_plane, struct drm_crtc *crtc,
        rotation = drm_plane->state->rotation;
        plane_ctl |= skl_plane_ctl_rotation(rotation);
 
-       intel_update_sprite_watermarks(drm_plane, crtc, src_w, src_h,
-                                      pixel_size, true,
-                                      src_w != crtc_w || src_h != crtc_h);
-
        stride_div = intel_fb_stride_alignment(dev, fb->modifier[0],
                                               fb->pixel_format);
 
@@ -297,8 +292,6 @@ skl_disable_plane(struct drm_plane *dplane, struct drm_crtc *crtc)
 
        I915_WRITE(PLANE_SURF(pipe, plane), 0);
        POSTING_READ(PLANE_SURF(pipe, plane));
-
-       intel_update_sprite_watermarks(dplane, crtc, 0, 0, 0, false, false);
 }
 
 static void
@@ -541,10 +534,6 @@ ivb_update_plane(struct drm_plane *plane, struct drm_crtc *crtc,
        if (IS_HASWELL(dev) || IS_BROADWELL(dev))
                sprctl |= SPRITE_PIPE_CSC_ENABLE;
 
-       intel_update_sprite_watermarks(plane, crtc, src_w, src_h, pixel_size,
-                                      true,
-                                      src_w != crtc_w || src_h != crtc_h);
-
        /* Sizes are 0 based */
        src_w--;
        src_h--;
@@ -678,10 +667,6 @@ ilk_update_plane(struct drm_plane *plane, struct drm_crtc *crtc,
        if (IS_GEN6(dev))
                dvscntr |= DVS_TRICKLE_FEED_DISABLE; /* must disable */
 
-       intel_update_sprite_watermarks(plane, crtc, src_w, src_h,
-                                      pixel_size, true,
-                                      src_w != crtc_w || src_h != crtc_h);
-
        /* Sizes are 0 based */
        src_w--;
        src_h--;