From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [RFC v3 5/9] drm/i915: Extract framebufer CCS offset checks into a function
Date: Fri, 4 Oct 2019 18:10:29 +0300 [thread overview]
Message-ID: <20191004151029.GF1208@intel.com> (raw)
In-Reply-To: <20190923102935.5860-6-dhinakaran.pandiyan@intel.com>
On Mon, Sep 23, 2019 at 03:29:31AM -0700, Dhinakaran Pandiyan wrote:
> intel_fill_fb_info() has grown quite large and wrapping the offset checks
> into a separate function makes the loop a bit easier to follow.
>
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Cc: Matt Roper <matthew.d.roper@intel.com>
> Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_display.c | 69 ++++++++++++--------
> 1 file changed, 40 insertions(+), 29 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> index 6fec43cdddf4..7447001c1f85 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -2682,6 +2682,43 @@ static bool intel_plane_needs_remap(const struct intel_plane_state *plane_state)
> return stride > max_stride;
> }
>
> +static int
> +intel_fb_check_ccs_xy(struct drm_framebuffer *fb, int x, int y)
fb can be const
> +{
> + struct intel_framebuffer *intel_fb = to_intel_framebuffer(fb);
> + int hsub = fb->format->hsub;
> + int vsub = fb->format->vsub;
> + int tile_width, tile_height;
> + int ccs_x, ccs_y;
> + int main_x, main_y;
> +
> + intel_tile_dims(fb, 1, &tile_width, &tile_height);
> +
> + tile_width *= hsub;
> + tile_height *= vsub;
> +
> + ccs_x = (x * hsub) % tile_width;
> + ccs_y = (y * vsub) % tile_height;
> + main_x = intel_fb->normal[0].x % tile_width;
> + main_y = intel_fb->normal[0].y % tile_height;
> +
> + /*
> + * CCS doesn't have its own x/y offset register, so the intra CCS tile
> + * x/y offsets must match between CCS and the main surface.
> + */
Formatting fail with the comment?
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> + if (main_x != ccs_x || main_y != ccs_y) {
> + DRM_DEBUG_KMS("Bad CCS x/y (main %d,%d ccs %d,%d) full (main %d,%d ccs %d,%d)\n",
> + main_x, main_y,
> + ccs_x, ccs_y,
> + intel_fb->normal[0].x,
> + intel_fb->normal[0].y,
> + x, y);
> + return -EINVAL;
> + }
> +
> + return 0;
> +}
> +
> static int
> intel_fill_fb_info(struct drm_i915_private *dev_priv,
> struct drm_framebuffer *fb)
> @@ -2713,35 +2750,9 @@ intel_fill_fb_info(struct drm_i915_private *dev_priv,
> }
>
> if (is_ccs_modifier(fb->modifier) && i == 1) {
> - int hsub = fb->format->hsub;
> - int vsub = fb->format->vsub;
> - int tile_width, tile_height;
> - int main_x, main_y;
> - int ccs_x, ccs_y;
> -
> - intel_tile_dims(fb, i, &tile_width, &tile_height);
> -
> - tile_width *= hsub;
> - tile_height *= vsub;
> -
> - ccs_x = (x * hsub) % tile_width;
> - ccs_y = (y * vsub) % tile_height;
> - main_x = intel_fb->normal[0].x % tile_width;
> - main_y = intel_fb->normal[0].y % tile_height;
> -
> - /*
> - * CCS doesn't have its own x/y offset register, so the intra CCS tile
> - * x/y offsets must match between CCS and the main surface.
> - */
> - if (main_x != ccs_x || main_y != ccs_y) {
> - DRM_DEBUG_KMS("Bad CCS x/y (main %d,%d ccs %d,%d) full (main %d,%d ccs %d,%d)\n",
> - main_x, main_y,
> - ccs_x, ccs_y,
> - intel_fb->normal[0].x,
> - intel_fb->normal[0].y,
> - x, y);
> - return -EINVAL;
> - }
> + ret = intel_fb_check_ccs_xy(fb, x, y);
> + if (ret)
> + return ret;
> }
>
> /*
> --
> 2.17.1
--
Ville Syrjälä
Intel
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2019-10-04 15:10 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-09-23 10:29 [RFC v3 0/9] Gen12 E2E compression Dhinakaran Pandiyan
2019-09-23 10:29 ` [RFC v3 1/9] drm/framebuffer: Format modifier for Intel Gen-12 render compression Dhinakaran Pandiyan
2019-09-23 10:29 ` [RFC v3 2/9] drm/i915: Use intel_tile_height() instead of re-implementing Dhinakaran Pandiyan
2019-10-02 22:29 ` Matt Roper
2019-09-23 10:29 ` [RFC v3 3/9] drm/i915: Move CCS stride alignment W/A inside intel_fb_stride_alignment Dhinakaran Pandiyan
2019-10-02 22:29 ` Matt Roper
2019-10-03 21:29 ` Pandiyan, Dhinakaran
2019-09-23 10:29 ` [RFC v3 4/9] drm/i915/tgl: Gen-12 render decompression Dhinakaran Pandiyan
2019-10-02 22:32 ` Matt Roper
2019-10-03 12:00 ` Ville Syrjälä
2019-09-23 10:29 ` [RFC v3 5/9] drm/i915: Extract framebufer CCS offset checks into a function Dhinakaran Pandiyan
2019-10-04 15:10 ` Ville Syrjälä [this message]
2019-10-04 20:33 ` Matt Roper
2019-09-23 10:29 ` [RFC v3 6/9] drm/framebuffer: Format modifier for Intel Gen-12 media compression Dhinakaran Pandiyan
2019-09-26 6:42 ` Pandiyan, Dhinakaran
2019-09-23 10:29 ` [RFC v3 7/9] drm/i915: Skip rotated offset adjustment for unsupported modifiers Dhinakaran Pandiyan
2019-10-03 21:18 ` Dhinakaran Pandiyan
2019-09-23 10:29 ` [RFC v3 8/9] drm/fb: Extend format_info member arrays to handle four planes Dhinakaran Pandiyan
2019-09-23 10:29 ` [RFC v3 9/9] Gen-12 display can decompress surfaces compressed by the media engine Dhinakaran Pandiyan
2019-09-26 10:55 ` [PATCH v4 " Dhinakaran Pandiyan
2019-10-04 15:36 ` Ville Syrjälä
2019-10-04 23:54 ` Dhinakaran Pandiyan
2019-10-04 20:27 ` Matt Roper
2019-10-04 23:20 ` Dhinakaran Pandiyan
2019-09-23 13:53 ` ✗ Fi.CI.CHECKPATCH: warning for Gen12 E2E compression Patchwork
2019-09-23 14:16 ` ✗ Fi.CI.BAT: failure " Patchwork
2019-09-26 11:01 ` ✗ Fi.CI.CHECKPATCH: warning for Gen12 E2E compression (rev2) Patchwork
2019-09-26 11:25 ` ✗ Fi.CI.BAT: failure " Patchwork
2019-10-10 10:14 ` ✗ Fi.CI.CHECKPATCH: warning for Gen12 E2E compression (rev3) Patchwork
2019-10-10 10:39 ` ✗ Fi.CI.BAT: failure " Patchwork
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20191004151029.GF1208@intel.com \
--to=ville.syrjala@linux.intel.com \
--cc=dhinakaran.pandiyan@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.