All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jani Nikula <jani.nikula@linux.intel.com>
To: Matt Roper <matthew.d.roper@intel.com>,
	Thomas Gummerer <t.gummerer@gmail.com>
Cc: dri-devel@lists.freedesktop.org, intel-gfx@lists.freedesktop.org,
	linux-kernel@vger.kernel.org, David Airlie <airlied@linux.ie>,
	Daniel Vetter <daniel.vetter@intel.com>,
	jan@gondor.com, Tvrtko Ursulin <tvrtko.ursulin@intel.com>,
	Michael Leuchtenburg <michael@slashhome.org>
Subject: Re: [PATCH v2] drm/i915: fix screen flickering
Date: Tue, 19 May 2015 10:37:14 +0300	[thread overview]
Message-ID: <87k2w5kogl.fsf@intel.com> (raw)
In-Reply-To: <20150514142836.GE25648@intel.com>

On Thu, 14 May 2015, Matt Roper <matthew.d.roper@intel.com> wrote:
> On Thu, May 14, 2015 at 09:16:39AM +0200, Thomas Gummerer wrote:
>> Commit c9f038a1a592 ("drm/i915: Don't assume primary & cursor are
>> always on for wm calculation (v4)") fixes a null pointer dereference.
>> Setting the primary and cursor panes to false in
>> ilk_compute_wm_parameters to false does however give the following
>> errors in the kernel log and causes the screen to flicker.
>> 
>> [  101.133716] [drm:intel_set_cpu_fifo_underrun_reporting [i915]]
>> *ERROR* uncleared fifo underrun on pipe A
>> [  101.133725] [drm:intel_cpu_fifo_underrun_irq_handler [i915]]
>> *ERROR* CPU pipe A FIFO underrun
>> 
>> Always setting the panes to enabled fixes this error.
>> 
>> Helped-by: Matt Roper <matthew.d.roper@intel.com>
>> Signed-off-by: Thomas Gummerer <t.gummerer@gmail.com>
>
> Seems like a reasonable short-term workaround and returns us to how the
> code used to behaves.
>
> Reviewed-by: Matt Roper <matthew.d.roper@intel.com>

Pushed to drm-intel-fixes, thanks for the patch and review.

BR,
Jani.


>
>> ---
>> 
>> > Sorry, I missed your patch when you first sent it.  That type of fix
>> > looks like an okay workaround while we do a more in-depth rework of the
>> > watermark system.  However I think your patch could cause a crash if we
>> > disable the primary plane via the universal plane interface; if we do
>> > that, p->pri.bytes_per_pixel is set to 0, but since we're now pretending
>> > the primary plane is always enabled, ilk_wm_fbc() can eventually get
>> > called and use that 0 in the denominator of a division operation.
>> >
>> > If you just squash the following change into your patch, I think it should be
>> > safe:
>> > [...]
>> 
>> Thank you very much for the suggestion, here is an updated version of the 
>> patch.
>> 
>>  drivers/gpu/drm/i915/intel_pm.c | 24 +++++++++++-------------
>>  1 file changed, 11 insertions(+), 13 deletions(-)
>> 
>> diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
>> index fa4ccb3..555b896 100644
>> --- a/drivers/gpu/drm/i915/intel_pm.c
>> +++ b/drivers/gpu/drm/i915/intel_pm.c
>> @@ -2045,22 +2045,20 @@ static void ilk_compute_wm_parameters(struct drm_crtc *crtc,
>>  	p->pipe_htotal = intel_crtc->config->base.adjusted_mode.crtc_htotal;
>>  	p->pixel_rate = ilk_pipe_pixel_rate(dev, crtc);
>>  
>> -	if (crtc->primary->state->fb) {
>> -		p->pri.enabled = true;
>> +	if (crtc->primary->state->fb)
>>  		p->pri.bytes_per_pixel =
>>  			crtc->primary->state->fb->bits_per_pixel / 8;
>> -	} else {
>> -		p->pri.enabled = false;
>> -		p->pri.bytes_per_pixel = 0;
>> -	}
>> +	else
>> +		p->pri.bytes_per_pixel = 4;
>> +
>> +	p->cur.bytes_per_pixel = 4;
>> +	/*
>> +	 * TODO: for now, assume primary and cursor planes are always enabled.
>> +	 * Setting them to false makes the screen flicker.
>> +	 */
>> +	p->pri.enabled = true;
>> +	p->cur.enabled = true;
>>  
>> -	if (crtc->cursor->state->fb) {
>> -		p->cur.enabled = true;
>> -		p->cur.bytes_per_pixel = 4;
>> -	} else {
>> -		p->cur.enabled = false;
>> -		p->cur.bytes_per_pixel = 0;
>> -	}
>>  	p->pri.horiz_pixels = intel_crtc->config->pipe_src_w;
>>  	p->cur.horiz_pixels = intel_crtc->base.cursor->state->crtc_w;
>>  
>> -- 
>> 2.4.0.184.g8e1974e
>> 
>
> -- 
> Matt Roper
> Graphics Software Engineer
> IoTG Platform Enabling & Development
> Intel Corporation
> (916) 356-2795

-- 
Jani Nikula, Intel Open Source Technology Center

      reply	other threads:[~2015-05-19  7:37 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-12 19:54 [BUG/REGRESSION] Screen flickering Thomas Gummerer
2015-05-12 19:54 ` Thomas Gummerer
2015-05-13  9:14 ` Jani Nikula
2015-05-13  9:14   ` Jani Nikula
2015-05-13  9:53   ` Jan Niehusmann
2015-05-13  9:53     ` Jan Niehusmann
2015-05-13 10:32     ` Sudip Mukherjee
2015-05-13 10:32       ` Sudip Mukherjee
2015-05-13 11:10       ` Jan Niehusmann
2015-05-13 11:10         ` Jan Niehusmann
2015-05-13 11:28         ` Sudip Mukherjee
2015-05-13 11:28           ` Sudip Mukherjee
2015-05-13 11:27       ` Thomas Gummerer
2015-05-13 11:27         ` Thomas Gummerer
2015-05-13 11:34         ` Sudip Mukherjee
2015-05-13 11:23     ` Thomas Gummerer
2015-05-13 11:23       ` Thomas Gummerer
2015-05-14  3:21 ` Matt Roper
2015-05-14  7:16   ` [PATCH v2] drm/i915: fix screen flickering Thomas Gummerer
2015-05-14  7:16     ` Thomas Gummerer
2015-05-14 14:28     ` Matt Roper
2015-05-14 14:28       ` Matt Roper
2015-05-19  7:37       ` Jani Nikula [this message]

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=87k2w5kogl.fsf@intel.com \
    --to=jani.nikula@linux.intel.com \
    --cc=airlied@linux.ie \
    --cc=daniel.vetter@intel.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=jan@gondor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=matthew.d.roper@intel.com \
    --cc=michael@slashhome.org \
    --cc=t.gummerer@gmail.com \
    --cc=tvrtko.ursulin@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 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.