All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jani Nikula <jani.nikula@intel.com>
To: "Lisovskiy, Stanislav" <stanislav.lisovskiy@intel.com>
Cc: intel-gfx@lists.freedesktop.org, stable@vger.kernel.org
Subject: Re: [Intel-gfx] [RESEND 1/3] drm/i915/dsi: filter invalid backlight and CABC ports
Date: Wed, 17 Aug 2022 11:29:50 +0300	[thread overview]
Message-ID: <87mtc3p91d.fsf@intel.com> (raw)
In-Reply-To: <YvyjILz4bXhvPjdZ@intel.com>

On Wed, 17 Aug 2022, "Lisovskiy, Stanislav" <stanislav.lisovskiy@intel.com> wrote:
> On Tue, Aug 16, 2022 at 06:37:20PM +0300, Jani Nikula wrote:
>> Avoid using ports that aren't initialized in case the VBT backlight or
>> CABC ports have invalid values. This fixes a NULL pointer dereference of
>> intel_dsi->dsi_hosts[port] in such cases.
>> 
>> Cc: stable@vger.kernel.org
>> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>
> Would be interesting to figure out which one of those actually fixed the
> https://gitlab.freedesktop.org/drm/intel/-/issues/6476 issue, this one
> or next one.

I asked to test with patch 1 alone first, and it lets them boot without
the oops. And it produces the warn added here. But this just filters
port C out of bl_ports, and doesn't fix the root cause. Patch 2 should
fix the root cause, get rid of the warn and give them functioning
backlight. I hope. There was no test results with patches 2&3. :)

> Reviewed-by: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>

Thanks for the review!

BR,
Jani.

>
>> ---
>>  drivers/gpu/drm/i915/display/icl_dsi.c | 7 +++++++
>>  drivers/gpu/drm/i915/display/vlv_dsi.c | 7 +++++++
>>  2 files changed, 14 insertions(+)
>> 
>> diff --git a/drivers/gpu/drm/i915/display/icl_dsi.c b/drivers/gpu/drm/i915/display/icl_dsi.c
>> index 5dcfa7feffa9..885c74f60366 100644
>> --- a/drivers/gpu/drm/i915/display/icl_dsi.c
>> +++ b/drivers/gpu/drm/i915/display/icl_dsi.c
>> @@ -2070,7 +2070,14 @@ void icl_dsi_init(struct drm_i915_private *dev_priv)
>>  	else
>>  		intel_dsi->ports = BIT(port);
>>  
>> +	if (drm_WARN_ON(&dev_priv->drm, intel_connector->panel.vbt.dsi.bl_ports & ~intel_dsi->ports))
>> +		intel_connector->panel.vbt.dsi.bl_ports &= intel_dsi->ports;
>> +
>>  	intel_dsi->dcs_backlight_ports = intel_connector->panel.vbt.dsi.bl_ports;
>> +
>> +	if (drm_WARN_ON(&dev_priv->drm, intel_connector->panel.vbt.dsi.cabc_ports & ~intel_dsi->ports))
>> +		intel_connector->panel.vbt.dsi.cabc_ports &= intel_dsi->ports;
>> +
>>  	intel_dsi->dcs_cabc_ports = intel_connector->panel.vbt.dsi.cabc_ports;
>>  
>>  	for_each_dsi_port(port, intel_dsi->ports) {
>> diff --git a/drivers/gpu/drm/i915/display/vlv_dsi.c b/drivers/gpu/drm/i915/display/vlv_dsi.c
>> index b9b1fed99874..35136d26e517 100644
>> --- a/drivers/gpu/drm/i915/display/vlv_dsi.c
>> +++ b/drivers/gpu/drm/i915/display/vlv_dsi.c
>> @@ -1933,7 +1933,14 @@ void vlv_dsi_init(struct drm_i915_private *dev_priv)
>>  	else
>>  		intel_dsi->ports = BIT(port);
>>  
>> +	if (drm_WARN_ON(&dev_priv->drm, intel_connector->panel.vbt.dsi.bl_ports & ~intel_dsi->ports))
>> +		intel_connector->panel.vbt.dsi.bl_ports &= intel_dsi->ports;
>> +
>>  	intel_dsi->dcs_backlight_ports = intel_connector->panel.vbt.dsi.bl_ports;
>> +
>> +	if (drm_WARN_ON(&dev_priv->drm, intel_connector->panel.vbt.dsi.cabc_ports & ~intel_dsi->ports))
>> +		intel_connector->panel.vbt.dsi.cabc_ports &= intel_dsi->ports;
>> +
>>  	intel_dsi->dcs_cabc_ports = intel_connector->panel.vbt.dsi.cabc_ports;
>>  
>>  	/* Create a DSI host (and a device) for each port. */
>> -- 
>> 2.34.1
>> 

-- 
Jani Nikula, Intel Open Source Graphics Center

  reply	other threads:[~2022-08-17  8:30 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-16 15:37 [Intel-gfx] [RESEND 0/3] drm/i915/dsi: fix DSI DCS backlight port handling Jani Nikula
2022-08-16 15:37 ` [Intel-gfx] [RESEND 1/3] drm/i915/dsi: filter invalid backlight and CABC ports Jani Nikula
2022-08-16 15:37   ` Jani Nikula
2022-08-17  8:13   ` [Intel-gfx] " Lisovskiy, Stanislav
2022-08-17  8:29     ` Jani Nikula [this message]
2022-08-19  9:52       ` Jani Nikula
2022-08-16 15:37 ` [Intel-gfx] [RESEND 2/3] drm/i915/dsi: fix dual-link DSI backlight and CABC ports for display 11+ Jani Nikula
2022-08-16 15:37   ` Jani Nikula
2022-08-17  8:13   ` [Intel-gfx] " Lisovskiy, Stanislav
2022-08-16 15:37 ` [Intel-gfx] [RESEND 3/3] drm/i915/dsi: use VBT backlight and CABC port definitions directly Jani Nikula
2022-08-17  8:14   ` Lisovskiy, Stanislav
2022-08-16 16:56 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915/dsi: fix DSI DCS backlight port handling (rev2) Patchwork
2022-08-16 17:15 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2022-08-16 21:25 ` [Intel-gfx] ✗ Fi.CI.IGT: 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=87mtc3p91d.fsf@intel.com \
    --to=jani.nikula@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=stable@vger.kernel.org \
    --cc=stanislav.lisovskiy@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.