Intel-GFX Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Jani Nikula <jani.nikula@linux.intel.com>
To: imre.deak@intel.com
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH 5/8] drm/i915: Check error return when	converting pipe to connector
Date: Wed, 26 Apr 2017 17:53:52 +0300	[thread overview]
Message-ID: <87shkvrzi7.fsf@intel.com> (raw)
In-Reply-To: <20170426142011.GA15301@ideak-desk.fi.intel.com>

On Wed, 26 Apr 2017, Imre Deak <imre.deak@intel.com> wrote:
> On Wed, Apr 26, 2017 at 05:12:32PM +0300, Jani Nikula wrote:
>> On Wed, 26 Apr 2017, Imre Deak <imre.deak@intel.com> wrote:
>> > An error from intel_get_pipe_from_connector() would mean a bug somewhere
>> > else, but we still should check for it to prevent some other more
>> > obscure bug later.
>> 
>> Do check for invalid pipe, but please just limp on instead of bailing
>> out of the functions. See notes inline.
>> 
>> BR,
>> Jani.
>> 
>> >
>> > Signed-off-by: Imre Deak <imre.deak@intel.com>
>> > ---
>> >  drivers/gpu/drm/i915/intel_panel.c | 14 ++++++++++++--
>> >  1 file changed, 12 insertions(+), 2 deletions(-)
>> >
>> > diff --git a/drivers/gpu/drm/i915/intel_panel.c b/drivers/gpu/drm/i915/intel_panel.c
>> > index cb50c52..dbe05ec 100644
>> > --- a/drivers/gpu/drm/i915/intel_panel.c
>> > +++ b/drivers/gpu/drm/i915/intel_panel.c
>> > @@ -888,10 +888,14 @@ static void pch_enable_backlight(struct intel_connector *connector)
>> >  	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
>> >  	struct intel_panel *panel = &connector->panel;
>> >  	enum pipe pipe = intel_get_pipe_from_connector(connector);
>> > -	enum transcoder cpu_transcoder =
>> > -		intel_pipe_to_cpu_transcoder(dev_priv, pipe);
>> > +	enum transcoder cpu_transcoder;
>> >  	u32 cpu_ctl2, pch_ctl1, pch_ctl2;
>> >  
>> > +	if (WARN_ON_ONCE(pipe == INVALID_PIPE))
>> > +		return;
>> 
>> Please just assign e.g. TRANSCODER_EDP to cpu_transcoder in this case,
>> go on, and hope for the best. Do leave the warn in place though.
>> 
>> > +
>> > +	cpu_transcoder = intel_pipe_to_cpu_transcoder(dev_priv, pipe);
>> > +
>> >  	cpu_ctl2 = I915_READ(BLC_PWM_CPU_CTL2);
>> >  	if (cpu_ctl2 & BLM_PWM_ENABLE) {
>> >  		DRM_DEBUG_KMS("cpu backlight already enabled\n");
>> > @@ -973,6 +977,9 @@ static void i965_enable_backlight(struct intel_connector *connector)
>> >  	enum pipe pipe = intel_get_pipe_from_connector(connector);
>> >  	u32 ctl, ctl2, freq;
>> >  
>> > +	if (WARN_ON_ONCE(pipe == INVALID_PIPE))
>> > +		return;
>> 
>> Same here, please just assign e.g. PIPE_A here with the warning, and
>> limp on.
>> 
>> > +
>> >  	ctl2 = I915_READ(BLC_PWM_CTL2);
>> >  	if (ctl2 & BLM_PWM_ENABLE) {
>> >  		DRM_DEBUG_KMS("backlight already enabled\n");
>> > @@ -1093,6 +1100,9 @@ void intel_panel_enable_backlight(struct intel_connector *connector)
>> >  	if (!panel->backlight.present)
>> >  		return;
>> >  
>> > +	if (WARN_ON_ONCE(pipe == INVALID_PIPE))
>> > +		return;
>> 
>> Here, pipe is only used for the debug logging, just skip that instead.
>
> Ok, can do. This would make things inconsistent wrt.
> vlv_enable/disable_backlight() though, so are you ok if I change those
> too accordingly?

Those are different in the sense that the *registers* are chosen based
on the pipe, so it *must* be one of A or B. But in the paths changed
here, pipe is only used for some bit fields of the registers being
updated. IIRC they are not even crucial for fundamental operation of the
backlight. So I don't want to bail out unless we really can't proceed.

BR,
Jani.


>
> --Imre
>
>> 
>> > +
>> >  	DRM_DEBUG_KMS("pipe %c\n", pipe_name(pipe));
>> >  
>> >  	mutex_lock(&dev_priv->backlight_lock);
>> 
>> -- 
>> Jani Nikula, Intel Open Source Technology Center

-- 
Jani Nikula, Intel Open Source Technology Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

  reply	other threads:[~2017-04-26 14:51 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-04-26 13:40 [PATCH 0/8] drm: Fix/remove a few static checker error Imre Deak
2017-04-26 13:40 ` [PATCH 1/8] drm/i915/vlv: Fix port B PLL opamp initialization Imre Deak
2017-04-26 14:54   ` Ville Syrjälä
2017-04-26 13:40 ` [PATCH 2/8] drm/i915/dp: Check error return during DPCD capability queries Imre Deak
2017-04-26 15:08   ` Ville Syrjälä
2017-04-26 15:23     ` Imre Deak
2017-04-26 15:30       ` Ville Syrjälä
2017-04-26 13:40 ` [PATCH 3/8] drm/i915/sdvo: Check error return from intel_sdvo_get_value() Imre Deak
2017-04-26 15:12   ` Ville Syrjälä
2017-04-26 15:24     ` Imre Deak
2017-04-26 17:18   ` [PATCH v2 " Imre Deak
2017-04-26 13:40 ` [PATCH 4/8] drm/i915: Check error return when setting DMA mask Imre Deak
2017-04-26 14:04   ` Jani Nikula
2017-04-26 17:18   ` [PATCH v2 " Imre Deak
2017-04-27 11:40     ` Jani Nikula
2017-04-26 13:40 ` [PATCH 5/8] drm/i915: Check error return when converting pipe to connector Imre Deak
2017-04-26 14:12   ` Jani Nikula
2017-04-26 14:20     ` Imre Deak
2017-04-26 14:53       ` Jani Nikula [this message]
2017-04-26 15:27         ` Imre Deak
2017-04-26 17:18   ` [PATCH v2 " Imre Deak
2017-04-27  7:09     ` Jani Nikula
2017-04-27  8:28       ` Imre Deak
2017-04-27  8:36     ` [PATCH v3 " Imre Deak
2017-04-27  9:08       ` Jani Nikula
2017-04-27 11:49       ` Ville Syrjälä
2017-04-27 11:56         ` Imre Deak
2017-04-27 12:03           ` Jani Nikula
2017-04-26 13:40 ` [PATCH 6/8] drm/i915: Sanitize stolen memory size calculation Imre Deak
2017-04-26 15:27   ` Ville Syrjälä
2017-04-27  9:34     ` Joonas Lahtinen
2017-04-26 13:40 ` [PATCH 7/8] drm/i915/lvds: Remove magic from PLL programming Imre Deak
2017-04-26 14:50   ` Ville Syrjälä
2017-04-26 15:04     ` Imre Deak
2017-04-26 17:18   ` [PATCH v2 " Imre Deak
2017-04-26 17:25     ` Ville Syrjälä
2017-04-26 13:40 ` [PATCH 8/8] drm: Remove redundant NULL check during atomic plane commit Imre Deak
2017-04-26 15:44   ` Ville Syrjälä
2017-05-09 10:05     ` [Intel-gfx] " Ville Syrjälä
2017-04-26 14:40 ` ✓ Fi.CI.BAT: success for drm: Fix/remove a few static checker error 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=87shkvrzi7.fsf@intel.com \
    --to=jani.nikula@linux.intel.com \
    --cc=imre.deak@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox