From: Jani Nikula <jani.nikula@intel.com>
To: intel-gfx@lists.freedesktop.org
Cc: Ander Conselvan de Oliveira
<ander.conselvan.de.oliveira@intel.com>,
stable@vger.kernel.org, Dave Airlie <airlied@gmail.com>
Subject: Re: [PATCH] drm/i915: Fix ilk watermarks calculation when primary plane is disabled
Date: Wed, 20 May 2015 16:53:40 +0300 [thread overview]
Message-ID: <878ucjl5i3.fsf@intel.com> (raw)
In-Reply-To: <1432128754-11840-1-git-send-email-ander.conselvan.de.oliveira@intel.com>
On Wed, 20 May 2015, Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com> wrote:
> On Fedora 21 or 22, when the transition from the X server to the wayland
> compositor is done, the CRTC with the login screen is left active with a
> disabled fb. A cursor ioctl after the transition causes the watermarks
> to be updated, but due to the logic in intel_crtc_active() checking for
> the primary plane fb, the update considers all planes to be disabled,
> untimately setting the wrong watermark values and causing screen
> flicker. Since the crtc is active, a modeset done later is skipped and
> replaced with a flip, which doesn't update the watermarks.
>
> This regression was introduced somewhere between v3.16 and v3.17.
> Another issue prevented me from doing a full bisect, but the issue was
> introduced in one of the following skipped commits:
>
> commit 7707e6535f43328e05e4729ac96eee864b90e8a4
> Author: Rob Clark <robdclark@gmail.com>
> Date: Thu Jul 17 23:30:04 2014 -0400
>
> drm/i915: use helpers
>
> commit ca5a1b9ba0fb5291b555a23b76dbe5f6c30bfd7a
> Merge: c7dbc6c 3488229
> Author: Dave Airlie <airlied@redhat.com>
> Date: Wed Jul 9 10:38:42 2014 +1000
>
> Merge tag 'drm-intel-next-2014-06-20' of git://anongit.freedesktop.org/drm-intel into drm-next
>
> commit c51f71679042a5f388d9580ffbede14c897f1e86
> Merge: b957f45 7b3c29f
> Author: Dave Airlie <airlied@redhat.com>
> Date: Sat Jul 19 16:43:41 2014 +1000
>
> Merge tag 'drm-intel-next-2014-07-11' of git://anongit.freedesktop.org/drm-intel into drm-next
>
> This patch is a simplified version of the following commits:
>
> commit 3dd512fbda0d87d1c3fb44bf878b262baee98fb6
> Author: Matt Roper <matthew.d.roper@intel.com>
> Date: Fri Feb 27 10:12:00 2015 -0800
>
> drm/i915: Kill intel_crtc->cursor_{width, height} (v2)
>
> commit 54da691deb123c045259ebf4f5c67381244f58f1
> Author: Thomas Gummerer <t.gummerer@gmail.com>
> Date: Thu May 14 09:16:39 2015 +0200
>
> drm/i915: fix screen flickering
This is expected to land in v4.1-rc5, i.e. these are all upstream
commits. And I assume none of them apply to stable kernels directly.
>
> commit 3ef00284e6a48f7deb0784ccca0478ebb7d4bcfc
> Author: Matt Roper <matthew.d.roper@intel.com>
> Date: Mon Mar 9 10:19:24 2015 -0700
>
> drm/i915: Use crtc->state->active in ilk/skl watermark calculations (v3)
>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90508
> Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1218688
> Cc: stable@vger.kernel.org
I (and most likely the stable team) would like to know which stable
kernel versions this is targeting.
Do you have Tested-bys against the stable versions you're targeting?
Anyway this is
Acked-by: Jani Nikula <jani.nikula@intel.com>
BR,
Jani.
> Cc: Dave Airlie <airlied@gmail.com>
> Cc: Jani Nikula <jani.nikula@intel.com>
> Signed-off-by: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
> ---
> drivers/gpu/drm/i915/intel_pm.c | 14 +++++++++++---
> 1 file changed, 11 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
> index 24d77dd..3d67f8e 100644
> --- a/drivers/gpu/drm/i915/intel_pm.c
> +++ b/drivers/gpu/drm/i915/intel_pm.c
> @@ -1898,16 +1898,24 @@ static void ilk_compute_wm_parameters(struct drm_crtc *crtc,
> enum pipe pipe = intel_crtc->pipe;
> struct drm_plane *plane;
>
> - if (!intel_crtc_active(crtc))
> + if (!intel_crtc->active)
> return;
>
> p->active = true;
> p->pipe_htotal = intel_crtc->config->base.adjusted_mode.crtc_htotal;
> p->pixel_rate = ilk_pipe_pixel_rate(dev, crtc);
> - p->pri.bytes_per_pixel = crtc->primary->fb->bits_per_pixel / 8;
> +
> +
> + if (crtc->primary->fb)
> + p->pri.bytes_per_pixel = crtc->primary->fb->bits_per_pixel / 8;
> + else
> + p->pri.bytes_per_pixel = 4;
> +
> p->cur.bytes_per_pixel = 4;
> +
> p->pri.horiz_pixels = intel_crtc->config->pipe_src_w;
> - p->cur.horiz_pixels = intel_crtc->cursor_width;
> + p->cur.horiz_pixels = intel_crtc->base.cursor->state->crtc_w;
> +
> /* TODO: for now, assume primary and cursor planes are always enabled. */
> p->pri.enabled = true;
> p->cur.enabled = true;
> --
> 2.1.0
>
--
Jani Nikula, Intel Open Source Technology Center
WARNING: multiple messages have this Message-ID (diff)
From: Jani Nikula <jani.nikula@intel.com>
To: Ander Conselvan de Oliveira
<ander.conselvan.de.oliveira@intel.com>,
intel-gfx@lists.freedesktop.org
Cc: Ander Conselvan de Oliveira
<ander.conselvan.de.oliveira@intel.com>,
stable@vger.kernel.org, Dave Airlie <airlied@gmail.com>
Subject: Re: [PATCH] drm/i915: Fix ilk watermarks calculation when primary plane is disabled
Date: Wed, 20 May 2015 16:53:40 +0300 [thread overview]
Message-ID: <878ucjl5i3.fsf@intel.com> (raw)
In-Reply-To: <1432128754-11840-1-git-send-email-ander.conselvan.de.oliveira@intel.com>
On Wed, 20 May 2015, Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com> wrote:
> On Fedora 21 or 22, when the transition from the X server to the wayland
> compositor is done, the CRTC with the login screen is left active with a
> disabled fb. A cursor ioctl after the transition causes the watermarks
> to be updated, but due to the logic in intel_crtc_active() checking for
> the primary plane fb, the update considers all planes to be disabled,
> untimately setting the wrong watermark values and causing screen
> flicker. Since the crtc is active, a modeset done later is skipped and
> replaced with a flip, which doesn't update the watermarks.
>
> This regression was introduced somewhere between v3.16 and v3.17.
> Another issue prevented me from doing a full bisect, but the issue was
> introduced in one of the following skipped commits:
>
> commit 7707e6535f43328e05e4729ac96eee864b90e8a4
> Author: Rob Clark <robdclark@gmail.com>
> Date: Thu Jul 17 23:30:04 2014 -0400
>
> drm/i915: use helpers
>
> commit ca5a1b9ba0fb5291b555a23b76dbe5f6c30bfd7a
> Merge: c7dbc6c 3488229
> Author: Dave Airlie <airlied@redhat.com>
> Date: Wed Jul 9 10:38:42 2014 +1000
>
> Merge tag 'drm-intel-next-2014-06-20' of git://anongit.freedesktop.org/drm-intel into drm-next
>
> commit c51f71679042a5f388d9580ffbede14c897f1e86
> Merge: b957f45 7b3c29f
> Author: Dave Airlie <airlied@redhat.com>
> Date: Sat Jul 19 16:43:41 2014 +1000
>
> Merge tag 'drm-intel-next-2014-07-11' of git://anongit.freedesktop.org/drm-intel into drm-next
>
> This patch is a simplified version of the following commits:
>
> commit 3dd512fbda0d87d1c3fb44bf878b262baee98fb6
> Author: Matt Roper <matthew.d.roper@intel.com>
> Date: Fri Feb 27 10:12:00 2015 -0800
>
> drm/i915: Kill intel_crtc->cursor_{width, height} (v2)
>
> commit 54da691deb123c045259ebf4f5c67381244f58f1
> Author: Thomas Gummerer <t.gummerer@gmail.com>
> Date: Thu May 14 09:16:39 2015 +0200
>
> drm/i915: fix screen flickering
This is expected to land in v4.1-rc5, i.e. these are all upstream
commits. And I assume none of them apply to stable kernels directly.
>
> commit 3ef00284e6a48f7deb0784ccca0478ebb7d4bcfc
> Author: Matt Roper <matthew.d.roper@intel.com>
> Date: Mon Mar 9 10:19:24 2015 -0700
>
> drm/i915: Use crtc->state->active in ilk/skl watermark calculations (v3)
>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90508
> Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1218688
> Cc: stable@vger.kernel.org
I (and most likely the stable team) would like to know which stable
kernel versions this is targeting.
Do you have Tested-bys against the stable versions you're targeting?
Anyway this is
Acked-by: Jani Nikula <jani.nikula@intel.com>
BR,
Jani.
> Cc: Dave Airlie <airlied@gmail.com>
> Cc: Jani Nikula <jani.nikula@intel.com>
> Signed-off-by: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
> ---
> drivers/gpu/drm/i915/intel_pm.c | 14 +++++++++++---
> 1 file changed, 11 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
> index 24d77dd..3d67f8e 100644
> --- a/drivers/gpu/drm/i915/intel_pm.c
> +++ b/drivers/gpu/drm/i915/intel_pm.c
> @@ -1898,16 +1898,24 @@ static void ilk_compute_wm_parameters(struct drm_crtc *crtc,
> enum pipe pipe = intel_crtc->pipe;
> struct drm_plane *plane;
>
> - if (!intel_crtc_active(crtc))
> + if (!intel_crtc->active)
> return;
>
> p->active = true;
> p->pipe_htotal = intel_crtc->config->base.adjusted_mode.crtc_htotal;
> p->pixel_rate = ilk_pipe_pixel_rate(dev, crtc);
> - p->pri.bytes_per_pixel = crtc->primary->fb->bits_per_pixel / 8;
> +
> +
> + if (crtc->primary->fb)
> + p->pri.bytes_per_pixel = crtc->primary->fb->bits_per_pixel / 8;
> + else
> + p->pri.bytes_per_pixel = 4;
> +
> p->cur.bytes_per_pixel = 4;
> +
> p->pri.horiz_pixels = intel_crtc->config->pipe_src_w;
> - p->cur.horiz_pixels = intel_crtc->cursor_width;
> + p->cur.horiz_pixels = intel_crtc->base.cursor->state->crtc_w;
> +
> /* TODO: for now, assume primary and cursor planes are always enabled. */
> p->pri.enabled = true;
> p->cur.enabled = true;
> --
> 2.1.0
>
--
Jani Nikula, Intel Open Source Technology Center
next prev parent reply other threads:[~2015-05-20 13:53 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-05-20 13:32 [PATCH] drm/i915: Fix ilk watermarks calculation when primary plane is disabled Ander Conselvan de Oliveira
2015-05-20 13:32 ` Ander Conselvan de Oliveira
2015-05-20 13:53 ` Jani Nikula [this message]
2015-05-20 13:53 ` Jani Nikula
2015-05-20 14:14 ` Josh Boyer
2015-05-20 17:29 ` Ray Strode
2015-05-21 7:21 ` Ander Conselvan De Oliveira
2015-05-21 7:21 ` Ander Conselvan De Oliveira
2015-05-21 12:20 ` Josh Boyer
2015-05-21 12:20 ` Josh Boyer
2015-05-21 12:40 ` Jani Nikula
2015-05-21 12:40 ` Jani Nikula
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=878ucjl5i3.fsf@intel.com \
--to=jani.nikula@intel.com \
--cc=airlied@gmail.com \
--cc=ander.conselvan.de.oliveira@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=stable@vger.kernel.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.