From: Jani Nikula <jani.nikula@linux.intel.com>
To: "jp_2422-git@yahoo.com" <jp_2422-git@yahoo.com>,
"intel-gfx@lists.freedesktop.org"
<intel-gfx@lists.freedesktop.org>,
imre.deak@intel.com
Subject: Re: adlp_tc_phy_connect [i915] floods logs with drm_WARN_ON(tc->mode == TC_PORT_LEGACY) call traces
Date: Thu, 08 Oct 2026 14:51:34 +0300 [thread overview]
Message-ID: <d8206010e6ffca3a0cbf480247d9e78060ab2cdf@intel.com> (raw)
In-Reply-To: <fd77de823c5d30b4587676a7a71962f517979616@intel.com>
On Thu, 08 Oct 2026, Jani Nikula <jani.nikula@linux.intel.com> wrote:
> On Thu, 08 Oct 2026, "jp_2422-git@yahoo.com" <jp_2422-git@yahoo.com> wrote:
>> The issue discussed at https://gitlab.freedesktop.org/drm/i915/kernel/-/work_items/12246 affects a number of laptops and Bios combinations, and appears to be the result of buggy Bios'es where the Intel VBT table is listing non-existent Display Ports on Alder Lake laptops.
>>
>> The following patch skips the creation of the non-existent port early
>> on in intel_ddi_init(), so preventing the logs from being flooded with
>> the warnings. It uses a new i915 display parameter to allow the user
>> to select the type c port to skip with a boot option, and fixes the
>> problem. Please can you advise whether you would accept this patch.
>
> Thanks for the patch, but sorry, module parameters aren't the solution
> to work around issues.
Imre, can you have a look at the issue, please?
BR,
Jani.
>
> BR,
> Jani.
>
>>
>> diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c
>> index a46ab5d3d..5b9ebdecd 100644
>> --- a/drivers/gpu/drm/i915/display/intel_ddi.c
>> +++ b/drivers/gpu/drm/i915/display/intel_ddi.c
>> @@ -50,6 +50,7 @@
>> #include "intel_ddi_buf_trans.h"
>> #include "intel_de.h"
>> #include "intel_dip.h"
>> +#include "intel_display_params.h"
>> #include "intel_display_power.h"
>> #include "intel_display_regs.h"
>> #include "intel_display_types.h"
>> @@ -5239,6 +5240,24 @@ static const char *intel_ddi_encoder_name(struct intel_display *display,
>> return seq_buf_str(s);
>> }
>>
>> +static enum port get_skip_tc_port_param(struct intel_display *display)
>> +{
>> + const char *param;
>> + enum port port;
>> +
>> + param=display->params.skip_tc_port;
>> +
>> + if(param==NULL)
>> + return PORT_NONE;
>> +
>> + for_each_port(port) {
>> + if (port_name(port)==*param)
>> + return port;
>> + }
>> +
>> + return PORT_NONE;
>> +}
>> +
>> void intel_ddi_init(struct intel_display *display,
>> const struct intel_bios_encoder_data *devdata)
>> {
>> @@ -5249,11 +5268,20 @@ void intel_ddi_init(struct intel_display *display,
>> enum port port;
>> enum phy phy;
>> u32 ddi_buf_ctl;
>> + enum port skip_tc_port_param;
>>
>> port = intel_bios_encoder_port(devdata);
>> if (port == PORT_NONE)
>> return;
>>
>> + skip_tc_port_param=get_skip_tc_port_param(display);
>> +
>> + if(port == skip_tc_port_param) {
>> + drm_dbg_kms(display->drm,
>> + "Skipping creation of Port %c due to the skip_tc_port parameter\n", port_name(port));
>> + return;
>> + }
>> +
>> if (!port_strap_detected(display, port)) {
>> drm_dbg_kms(display->drm,
>> "Port %c strap not detected\n", port_name(port));
>> diff --git a/drivers/gpu/drm/i915/display/intel_display_params.c b/drivers/gpu/drm/i915/display/intel_display_params.c
>> index ca0ef466b..2f516ca4e 100644
>> --- a/drivers/gpu/drm/i915/display/intel_display_params.c
>> +++ b/drivers/gpu/drm/i915/display/intel_display_params.c
>> @@ -143,6 +143,10 @@ intel_display_param_named_unsafe(enable_dmc_wl, int, 0400,
>> "(-1=use per-chip default, 0=disabled, 1=enabled, 2=match any register, 3=always locked) "
>> "Default: -1");
>>
>> +intel_display_param_named_unsafe(skip_tc_port, charp, 0400,
>> + "Skip the use of the specified Type-C port "
>> + " (single letter in the range [A - I])");
>> +
>> __maybe_unused
>> static void _param_print_bool(struct drm_printer *p, const char *driver_name,
>> const char *name, bool val)
>> diff --git a/drivers/gpu/drm/i915/display/intel_display_params.h b/drivers/gpu/drm/i915/display/intel_display_params.h
>> index 5c5a1a135..6356438f6 100644
>> --- a/drivers/gpu/drm/i915/display/intel_display_params.h
>> +++ b/drivers/gpu/drm/i915/display/intel_display_params.h
>> @@ -51,6 +51,7 @@ struct drm_printer;
>> param(bool, psr_safest_params, false, 0400) \
>> param(bool, enable_psr2_sel_fetch, true, 0400) \
>> param(int, enable_dmc_wl, -1, 0400) \
>> + param(char *, skip_tc_port, NULL, 0400) \
>> /*
>> * Debugfs-only knob (per-device): no matching module_param is registered
>> * in intel_display_params.c on purpose. Runtime-toggle via debugfs.
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
--
Jani Nikula, Intel
next prev parent reply other threads:[~2026-10-08 11:51 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <348041964.128703.1791459745347.ref@mail.yahoo.com>
2026-10-08 11:42 ` adlp_tc_phy_connect [i915] floods logs with drm_WARN_ON(tc->mode == TC_PORT_LEGACY) call traces jp_2422-git
2026-10-08 11:49 ` Jani Nikula
2026-10-08 11:51 ` Jani Nikula [this message]
2026-10-08 12:13 ` jp_2422-git
2026-10-12 10:28 ` Fw: " jp_2422-git
2026-10-08 12:15 ` ✗ LGCI.VerificationFailed: failure for " Patchwork
2026-10-12 13:26 ` ✗ LGCI.VerificationFailed: failure for adlp_tc_phy_connect [i915] floods logs with drm_WARN_ON(tc->mode == TC_PORT_LEGACY) call traces (rev2) 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=d8206010e6ffca3a0cbf480247d9e78060ab2cdf@intel.com \
--to=jani.nikula@linux.intel.com \
--cc=imre.deak@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=jp_2422-git@yahoo.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.