From: Ville Syrjälä <ville.syrj...@linux.intel.com>

Avoid the fb format information lookups when we already have the
fb->format pointer at hand.

@@
struct drm_framebuffer *fb;
expression E;
@@
- drm_format_plane_cpp(fb->pixel_format, E)
+ fb->format->cpp[E]

@@
struct drm_framebuffer fb;
expression E;
@@
- drm_format_plane_cpp(fb.pixel_format, E)
+ fb.format->cpp[E]

@@
struct intel_plane_state *state;
expression E;
@@
- drm_format_plane_cpp(state->base.fb->pixel_format, E)
+ state->base.fb->format->cpp[E]

@@
struct drm_framebuffer *fb;
expression E1, E2;
@@
  unsigned format = fb ? fb->pixel_format : E1;
<+...
- drm_format_plane_cpp(format, E2)
+ fb->format->cpp[E2]
...+>

@@
struct drm_framebuffer *fb;
expression E;
@@
  uint32_t format = fb->pixel_format;
<+...
- drm_format_plane_cpp(format, E)
+ fb->format->cpp[E]
...+>

Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
---
 drivers/gpu/drm/i915/intel_display.c | 16 +++++++-------
 drivers/gpu/drm/i915/intel_pm.c      | 42 ++++++++++++++++++------------------
 drivers/gpu/drm/i915/intel_sprite.c  |  2 +-
 3 files changed, 30 insertions(+), 30 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_display.c 
b/drivers/gpu/drm/i915/intel_display.c
index c45da6766fff..6565e5cd0ada 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -2275,7 +2275,7 @@ u32 intel_fb_xy_to_linear(int x, int y,
                          int plane)
 {
        const struct drm_framebuffer *fb = state->base.fb;
-       unsigned int cpp = drm_format_plane_cpp(fb->pixel_format, plane);
+       unsigned int cpp = fb->format->cpp[plane];
        unsigned int pitch = fb->pitches[plane];

        return y * pitch + x * cpp;
@@ -2344,7 +2344,7 @@ static u32 intel_adjust_tile_offset(int *x, int *y,
 {
        const struct drm_i915_private *dev_priv = 
to_i915(state->base.plane->dev);
        const struct drm_framebuffer *fb = state->base.fb;
-       unsigned int cpp = drm_format_plane_cpp(fb->pixel_format, plane);
+       unsigned int cpp = fb->format->cpp[plane];
        unsigned int rotation = state->base.rotation;
        unsigned int pitch = intel_fb_pitch(fb, plane, rotation);

@@ -2400,7 +2400,7 @@ static u32 _intel_compute_tile_offset(const struct 
drm_i915_private *dev_priv,
                                      u32 alignment)
 {
        uint64_t fb_modifier = fb->modifier;
-       unsigned int cpp = drm_format_plane_cpp(fb->pixel_format, plane);
+       unsigned int cpp = fb->format->cpp[plane];
        u32 offset, offset_aligned;

        if (alignment)
@@ -2468,7 +2468,7 @@ u32 intel_compute_tile_offset(int *x, int *y,
 static void intel_fb_offset_to_xy(int *x, int *y,
                                  const struct drm_framebuffer *fb, int plane)
 {
-       unsigned int cpp = drm_format_plane_cpp(fb->pixel_format, plane);
+       unsigned int cpp = fb->format->cpp[plane];
        unsigned int pitch = fb->pitches[plane];
        u32 linear_offset = fb->offsets[plane];

@@ -2506,7 +2506,7 @@ intel_fill_fb_info(struct drm_i915_private *dev_priv,
                u32 offset;
                int x, y;

-               cpp = drm_format_plane_cpp(format, i);
+               cpp = fb->format->cpp[i];
                width = drm_format_plane_width(fb->width, format, i);
                height = drm_format_plane_height(fb->height, format, i);

@@ -2833,7 +2833,7 @@ intel_find_initial_plane_obj(struct intel_crtc 
*intel_crtc,
 static int skl_max_plane_width(const struct drm_framebuffer *fb, int plane,
                               unsigned int rotation)
 {
-       int cpp = drm_format_plane_cpp(fb->pixel_format, plane);
+       int cpp = fb->format->cpp[plane];

        switch (fb->modifier) {
        case DRM_FORMAT_MOD_NONE:
@@ -2912,7 +2912,7 @@ static int skl_check_main_surface(struct 
intel_plane_state *plane_state)
         * TODO: linear and Y-tiled seem fine, Yf untested,
         */
        if (fb->modifier == I915_FORMAT_MOD_X_TILED) {
-               int cpp = drm_format_plane_cpp(fb->pixel_format, 0);
+               int cpp = fb->format->cpp[0];

                while ((x + w) * cpp > fb->pitches[0]) {
                        if (offset == 0) {
@@ -3278,7 +3278,7 @@ u32 skl_plane_stride(const struct drm_framebuffer *fb, 
int plane,
         * linear buffers or in number of tiles for tiled buffers.
         */
        if (drm_rotation_90_or_270(rotation)) {
-               int cpp = drm_format_plane_cpp(fb->pixel_format, plane);
+               int cpp = fb->format->cpp[plane];

                stride /= intel_tile_height(dev_priv, fb->modifier, cpp);
        } else {
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index bbb1eaf1e6db..318cd7bdd785 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -652,7 +652,7 @@ static void pineview_update_wm(struct intel_crtc 
*unused_crtc)
                        &crtc->config->base.adjusted_mode;
                const struct drm_framebuffer *fb =
                        crtc->base.primary->state->fb;
-               int cpp = drm_format_plane_cpp(fb->pixel_format, 0);
+               int cpp = fb->format->cpp[0];
                int clock = adjusted_mode->crtc_clock;

                /* Display SR */
@@ -727,7 +727,7 @@ static bool g4x_compute_wm0(struct drm_i915_private 
*dev_priv,
        clock = adjusted_mode->crtc_clock;
        htotal = adjusted_mode->crtc_htotal;
        hdisplay = crtc->config->pipe_src_w;
-       cpp = drm_format_plane_cpp(fb->pixel_format, 0);
+       cpp = fb->format->cpp[0];

        /* Use the small buffer method to calculate plane watermark */
        entries = ((clock * cpp / 1000) * display_latency_ns) / 1000;
@@ -816,7 +816,7 @@ static bool g4x_compute_srwm(struct drm_i915_private 
*dev_priv,
        clock = adjusted_mode->crtc_clock;
        htotal = adjusted_mode->crtc_htotal;
        hdisplay = crtc->config->pipe_src_w;
-       cpp = drm_format_plane_cpp(fb->pixel_format, 0);
+       cpp = fb->format->cpp[0];

        line_time_us = max(htotal * 1000 / clock, 1);
        line_count = (latency_ns / line_time_us + 1000) / 1000;
@@ -963,7 +963,7 @@ static uint16_t vlv_compute_wm_level(struct intel_plane 
*plane,
        if (!state->base.visible)
                return 0;

-       cpp = drm_format_plane_cpp(state->base.fb->pixel_format, 0);
+       cpp = state->base.fb->format->cpp[0];
        clock = crtc->config->base.adjusted_mode.crtc_clock;
        htotal = crtc->config->base.adjusted_mode.crtc_htotal;
        width = crtc->config->pipe_src_w;
@@ -1004,7 +1004,7 @@ static void vlv_compute_fifo(struct intel_crtc *crtc)

                if (state->base.visible) {
                        wm_state->num_active_planes++;
-                       total_rate += 
drm_format_plane_cpp(state->base.fb->pixel_format, 0);
+                       total_rate += state->base.fb->format->cpp[0];
                }
        }

@@ -1023,7 +1023,7 @@ static void vlv_compute_fifo(struct intel_crtc *crtc)
                        continue;
                }

-               rate = drm_format_plane_cpp(state->base.fb->pixel_format, 0);
+               rate = state->base.fb->format->cpp[0];
                plane->wm.fifo_size = fifo_size * rate / total_rate;
                fifo_left -= plane->wm.fifo_size;
        }
@@ -1455,7 +1455,7 @@ static void i965_update_wm(struct intel_crtc *unused_crtc)
                int clock = adjusted_mode->crtc_clock;
                int htotal = adjusted_mode->crtc_htotal;
                int hdisplay = crtc->config->pipe_src_w;
-               int cpp = drm_format_plane_cpp(fb->pixel_format, 0);
+               int cpp = fb->format->cpp[0];
                unsigned long line_time_us;
                int entries;

@@ -1541,7 +1541,7 @@ static void i9xx_update_wm(struct intel_crtc *unused_crtc)
                if (IS_GEN2(dev_priv))
                        cpp = 4;
                else
-                       cpp = drm_format_plane_cpp(fb->pixel_format, 0);
+                       cpp = fb->format->cpp[0];

                planea_wm = intel_calculate_wm(adjusted_mode->crtc_clock,
                                               wm_info, fifo_size, cpp,
@@ -1568,7 +1568,7 @@ static void i9xx_update_wm(struct intel_crtc *unused_crtc)
                if (IS_GEN2(dev_priv))
                        cpp = 4;
                else
-                       cpp = drm_format_plane_cpp(fb->pixel_format, 0);
+                       cpp = fb->format->cpp[0];

                planeb_wm = intel_calculate_wm(adjusted_mode->crtc_clock,
                                               wm_info, fifo_size, cpp,
@@ -1621,7 +1621,7 @@ static void i9xx_update_wm(struct intel_crtc *unused_crtc)
                if (IS_I915GM(dev_priv) || IS_I945GM(dev_priv))
                        cpp = 4;
                else
-                       cpp = drm_format_plane_cpp(fb->pixel_format, 0);
+                       cpp = fb->format->cpp[0];

                line_time_us = max(htotal * 1000 / clock, 1);

@@ -1782,7 +1782,7 @@ static uint32_t ilk_compute_pri_wm(const struct 
intel_crtc_state *cstate,
                                   bool is_lp)
 {
        int cpp = pstate->base.fb ?
-               drm_format_plane_cpp(pstate->base.fb->pixel_format, 0) : 0;
+               pstate->base.fb->format->cpp[0] : 0;
        uint32_t method1, method2;

        if (!cstate->base.active || !pstate->base.visible)
@@ -1810,7 +1810,7 @@ static uint32_t ilk_compute_spr_wm(const struct 
intel_crtc_state *cstate,
                                   uint32_t mem_value)
 {
        int cpp = pstate->base.fb ?
-               drm_format_plane_cpp(pstate->base.fb->pixel_format, 0) : 0;
+               pstate->base.fb->format->cpp[0] : 0;
        uint32_t method1, method2;

        if (!cstate->base.active || !pstate->base.visible)
@@ -1854,7 +1854,7 @@ static uint32_t ilk_compute_fbc_wm(const struct 
intel_crtc_state *cstate,
                                   uint32_t pri_val)
 {
        int cpp = pstate->base.fb ?
-               drm_format_plane_cpp(pstate->base.fb->pixel_format, 0) : 0;
+               pstate->base.fb->format->cpp[0] : 0;

        if (!cstate->base.active || !pstate->base.visible)
                return 0;
@@ -3251,13 +3251,13 @@ skl_plane_relative_data_rate(const struct 
intel_crtc_state *cstate,
        if (format == DRM_FORMAT_NV12) {
                if (y)  /* y-plane data rate */
                        data_rate = width * height *
-                               drm_format_plane_cpp(format, 0);
+                               fb->format->cpp[0];
                else    /* uv-plane data rate */
                        data_rate = (width / 2) * (height / 2) *
-                               drm_format_plane_cpp(format, 1);
+                               fb->format->cpp[1];
        } else {
                /* for packed formats */
-               data_rate = width * height * drm_format_plane_cpp(format, 0);
+               data_rate = width * height * fb->format->cpp[0];
        }

        down_scale_amount = skl_plane_downscale_amount(intel_pstate);
@@ -3344,9 +3344,9 @@ skl_ddb_min_alloc(const struct drm_plane_state *pstate,
        }

        if (fb->pixel_format == DRM_FORMAT_NV12 && !y)
-               plane_bpp = drm_format_plane_cpp(fb->pixel_format, 1);
+               plane_bpp = fb->format->cpp[1];
        else
-               plane_bpp = drm_format_plane_cpp(fb->pixel_format, 0);
+               plane_bpp = fb->format->cpp[0];

        if (drm_rotation_90_or_270(pstate->rotation)) {
                switch (plane_bpp) {
@@ -3606,13 +3606,13 @@ static int skl_compute_plane_wm(const struct 
drm_i915_private *dev_priv,
        if (drm_rotation_90_or_270(pstate->rotation))
                swap(width, height);

-       cpp = drm_format_plane_cpp(fb->pixel_format, 0);
+       cpp = fb->format->cpp[0];
        plane_pixel_rate = skl_adjusted_plane_pixel_rate(cstate, intel_pstate);

        if (drm_rotation_90_or_270(pstate->rotation)) {
                int cpp = (fb->pixel_format == DRM_FORMAT_NV12) ?
-                       drm_format_plane_cpp(fb->pixel_format, 1) :
-                       drm_format_plane_cpp(fb->pixel_format, 0);
+                       fb->format->cpp[1] :
+                       fb->format->cpp[0];

                switch (cpp) {
                case 1:
diff --git a/drivers/gpu/drm/i915/intel_sprite.c 
b/drivers/gpu/drm/i915/intel_sprite.c
index 8f131a08d440..b46c1794d3ac 100644
--- a/drivers/gpu/drm/i915/intel_sprite.c
+++ b/drivers/gpu/drm/i915/intel_sprite.c
@@ -885,7 +885,7 @@ intel_check_sprite_plane(struct drm_plane *plane,
        /* Check size restrictions when scaling */
        if (state->base.visible && (src_w != crtc_w || src_h != crtc_h)) {
                unsigned int width_bytes;
-               int cpp = drm_format_plane_cpp(fb->pixel_format, 0);
+               int cpp = fb->format->cpp[0];

                WARN_ON(!can_scale);

-- 
2.7.4

Reply via email to