From: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
To: "Jindal, Sonika" <sonika.jindal@intel.com>,
Intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH] drm/i915: Consider plane rotation when calculating stride in skl_do_mmio_flip
Date: Wed, 7 Oct 2015 13:15:43 +0100 [thread overview]
Message-ID: <56150CEF.4050804@linux.intel.com> (raw)
In-Reply-To: <56150B9B.7030406@intel.com>
On 07/10/15 13:10, Jindal, Sonika wrote:
>
>
> On 10/7/2015 3:31 PM, Tvrtko Ursulin wrote:
>> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>>
>> Previously rotation was ignored and wrong stride programmed
>> into the plane registers resulting in a corrupt image on screen.
>>
>> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>> Cc: Sonika Jindal <sonika.jindal@intel.com>
>> ---
>> drivers/gpu/drm/i915/intel_display.c | 16 ++++++++++++----
>> 1 file changed, 12 insertions(+), 4 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/intel_display.c
>> b/drivers/gpu/drm/i915/intel_display.c
>> index 539c3737e823..6328788193e4 100644
>> --- a/drivers/gpu/drm/i915/intel_display.c
>> +++ b/drivers/gpu/drm/i915/intel_display.c
>> @@ -11126,9 +11126,10 @@ static void skl_do_mmio_flip(struct
>> intel_crtc *intel_crtc)
>> {
>> struct drm_device *dev = intel_crtc->base.dev;
>> struct drm_i915_private *dev_priv = dev->dev_private;
>> + struct drm_plane *plane = intel_crtc->base.primary;
>> struct drm_framebuffer *fb = intel_crtc->base.primary->fb;
>> const enum pipe pipe = intel_crtc->pipe;
>> - u32 ctl, stride;
>> + u32 ctl, stride, tile_height;
>>
>> ctl = I915_READ(PLANE_CTL(pipe, 0));
>> ctl &= ~PLANE_CTL_TILED_MASK;
>> @@ -11152,9 +11153,16 @@ static void skl_do_mmio_flip(struct
>> intel_crtc *intel_crtc)
>> * The stride is either expressed as a multiple of 64 bytes
>> chunks for
>> * linear buffers or in number of tiles for tiled buffers.
>> */
>> - stride = fb->pitches[0] /
>> - intel_fb_stride_alignment(dev, fb->modifier[0],
>> - fb->pixel_format);
>> + if (intel_rotation_90_or_270(plane->state->rotation)) {
>> + /* stride = Surface height in tiles */
>> + tile_height = intel_tile_height(dev, fb->pixel_format,
>> + fb->modifier[0], 0);
>> + stride = DIV_ROUND_UP(fb->height, tile_height);
> Wouldn't we need a PLANE_SIZE update somewhere in case of 90/270? For
> the cases where the plane is not square and can fit after rotation as well?
We can just say that orientation changes are not allowed between page
flips. Or it can be improved later if I did not understand what you
mean? Because without this patch page flipping when rotated 90/270 does
not work at all.
Regards,
Tvrtko
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2015-10-07 12:15 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-10-07 10:01 [PATCH] drm/i915: Consider plane rotation when calculating stride in skl_do_mmio_flip Tvrtko Ursulin
2015-10-07 10:24 ` kbuild test robot
2015-10-07 12:10 ` Jindal, Sonika
2015-10-07 12:15 ` Tvrtko Ursulin [this message]
2015-10-19 11:15 ` Tvrtko Ursulin
2015-10-19 18:20 ` Ville Syrjälä
2015-10-20 7:42 ` Daniel Vetter
2015-10-20 9:06 ` Tvrtko Ursulin
2015-10-20 11:07 ` Ville Syrjälä
2015-10-20 11:44 ` Tvrtko Ursulin
2015-10-20 11:53 ` Ville Syrjälä
2015-10-20 12:05 ` Tvrtko Ursulin
2015-10-20 12:21 ` Ville Syrjälä
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=56150CEF.4050804@linux.intel.com \
--to=tvrtko.ursulin@linux.intel.com \
--cc=Intel-gfx@lists.freedesktop.org \
--cc=sonika.jindal@intel.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).