From: Jani Nikula <jani.nikula@intel.com>
To: "Hogander, Jouni" <jouni.hogander@intel.com>,
"intel-xe@lists.freedesktop.org" <intel-xe@lists.freedesktop.org>,
"Manna, Animesh" <animesh.manna@intel.com>,
"intel-gfx@lists.freedesktop.org"
<intel-gfx@lists.freedesktop.org>
Cc: "B, Jeevan" <jeevan.b@intel.com>
Subject: Re: [PATCH v3 4/6] drm/i915/lobf: Add debug interface for lobf
Date: Wed, 08 Jan 2025 16:02:56 +0200 [thread overview]
Message-ID: <87o70hl7xr.fsf@intel.com> (raw)
In-Reply-To: <bf625a3b03eb355c37f5b2816c1046e1566aaa85.camel@intel.com>
On Wed, 08 Jan 2025, "Hogander, Jouni" <jouni.hogander@intel.com> wrote:
> On Mon, 2025-01-06 at 09:45 +0530, Animesh Manna wrote:
>> Add an interface in debugfs which will help in debugging LOBF
>> feature.
>>
>> Signed-off-by: Animesh Manna <animesh.manna@intel.com>
>> ---
>> drivers/gpu/drm/i915/display/intel_alpm.c | 51
>> +++++++++++++++++++
>> .../drm/i915/display/intel_display_types.h | 6 +++
>> 2 files changed, 57 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/i915/display/intel_alpm.c
>> b/drivers/gpu/drm/i915/display/intel_alpm.c
>> index 197c67363f0e..1cc0e5ed3f74 100644
>> --- a/drivers/gpu/drm/i915/display/intel_alpm.c
>> +++ b/drivers/gpu/drm/i915/display/intel_alpm.c
>> @@ -276,6 +276,9 @@ void intel_alpm_lobf_compute_config(struct
>> intel_dp *intel_dp,
>> int waketime_in_lines, first_sdp_position;
>> int context_latency, guardband;
>>
>> + if (intel_dp->alpm_parameters.lobf_debug &
>> I915_LOBF_DEBUG_DISABLE)
>> + return;
>> +
>> if (!intel_dp_is_edp(intel_dp))
>> return;
>>
>> @@ -448,6 +451,51 @@ static int i915_edp_lobf_info_show(struct
>> seq_file *m, void *data)
>>
>> DEFINE_SHOW_ATTRIBUTE(i915_edp_lobf_info);
>>
>> +static int
>> +i915_edp_lobf_debug_get(void *data, u64 *val)
>> +{
>> + struct intel_display *display = data;
>> + struct intel_encoder *encoder;
>> + int ret = -ENODEV;
>> +
>> + for_each_intel_dp(display->drm, encoder) {
>> + struct intel_dp *intel_dp =
>> enc_to_intel_dp(encoder);
>> +
>> + if (!intel_dp_is_edp(intel_dp))
>> + return ret;
>> +
>> + // TODO: split to each edp transcoder.
>> + *val = READ_ONCE(intel_dp-
>> >alpm_parameters.lobf_debug);
>> + ret = 0;
>> + }
>> +
>> + return ret;
>> +}
>> +
>> +static int
>> +i915_edp_lobf_debug_set(void *data, u64 val)
>> +{
>> + struct intel_display *display = data;
>> + struct intel_encoder *encoder;
>> + int ret = -ENODEV;
>> +
>> + for_each_intel_dp(display->drm, encoder) {
>> + struct intel_dp *intel_dp =
>> enc_to_intel_dp(encoder);
>> +
>> + if (!intel_dp_is_edp(intel_dp))
>> + return ret;
>> +
>> + // TODO: split to each edp transcoder.
>> + intel_dp->alpm_parameters.lobf_debug = val;
>> + }
>> +
>> + return ret;
>> +}
>> +
>> +DEFINE_SIMPLE_ATTRIBUTE(i915_edp_lobf_debug_fops,
>> + i915_edp_lobf_debug_get,
>> i915_edp_lobf_debug_set,
>> + "%llu\n");
>> +
>> void intel_alpm_lobf_debugfs_add(struct intel_connector *connector)
>> {
>> struct intel_display *display = to_intel_display(connector);
>> @@ -457,6 +505,9 @@ void intel_alpm_lobf_debugfs_add(struct
>> intel_connector *connector)
>> connector->base.connector_type !=
>> DRM_MODE_CONNECTOR_eDP)
>> return;
>>
>> + debugfs_create_file("i915_edp_lobf_debug", 0644, root,
>> + connector, &i915_edp_lobf_debug_fops);
>> +
>> debugfs_create_file("i915_edp_lobf_info", 0444, root,
>> connector, &i915_edp_lobf_info_fops);
>> }
>> diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h
>> b/drivers/gpu/drm/i915/display/intel_display_types.h
>> index f230163226d1..37f061acb204 100644
>> --- a/drivers/gpu/drm/i915/display/intel_display_types.h
>> +++ b/drivers/gpu/drm/i915/display/intel_display_types.h
>> @@ -1800,6 +1800,12 @@ struct intel_dp {
>> u8 aux_less_wake_lines;
>> u8 silence_period_sym_clocks;
>> u8 lfps_half_cycle_num_of_syms;
>> +
>> +#define I915_LOBF_DEBUG_MODE_MASK 0x0f
>> +#define I915_LOBF_DEBUG_DEFAULT 0x00
>> +#define I915_LOBF_DEBUG_DISABLE 0x01
>> +#define I915_LOBF_DEBUG_FORCE_EN 0x02
>
> FORCE_EN is not needed. You can achieve LOBF (if it's possible) by
> disabling PSR/PR.
To be honest, I don't like adding these debug mode masks at all. Don't
make it so complicated. Moreover, the only user of any of these is
intel_dp->alpm_parameters.lobf_debug & I915_LOBF_DEBUG_DISABLE
but lobf_debug is *boolean*!
Keep it simple.
And "i915" naming in display code is discouraged, unless it's in
reference to i915 as the platform.
BR,
Jani.
>
> BR,
>
> Jouni Högander
>
>> + bool lobf_debug;
>> } alpm_parameters;
>>
>> u8 alpm_dpcd;
>
--
Jani Nikula, Intel
next prev parent reply other threads:[~2025-01-08 14:03 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-06 4:15 [PATCH v3 0/6] LOBF enablement fix Animesh Manna
2025-01-06 4:15 ` [PATCH v3 1/6] drm/i915/lobf: Add lobf enablement in post plane update Animesh Manna
2025-01-06 4:15 ` [PATCH v3 2/6] drm/i915/lobf: Add fixed refresh rate check in compute_config() Animesh Manna
2025-01-06 4:15 ` [PATCH v3 3/6] drm/i915/lobf: Update lobf if any change in dependent parameters Animesh Manna
2025-01-08 12:56 ` Hogander, Jouni
2025-01-06 4:15 ` [PATCH v3 4/6] drm/i915/lobf: Add debug interface for lobf Animesh Manna
2025-01-08 13:01 ` Hogander, Jouni
2025-01-08 14:02 ` Jani Nikula [this message]
2025-01-06 4:15 ` [PATCH v3 5/6] drm/i915/lobf: Check for sink error and disable LOBF Animesh Manna
2025-01-08 14:07 ` Hogander, Jouni
2025-01-06 4:15 ` [PATCH v3 6/6] drm/i915/lobf: Add debug print for LOBF Animesh Manna
2025-01-06 5:32 ` ✓ CI.Patch_applied: success for LOBF enablement fix (rev2) Patchwork
2025-01-06 5:33 ` ✓ CI.checkpatch: " Patchwork
2025-01-06 5:34 ` ✓ CI.KUnit: " Patchwork
2025-01-06 5:41 ` ✗ Fi.CI.SPARSE: warning for LOBF enablement fix (rev3) Patchwork
2025-01-06 5:52 ` ✓ CI.Build: success for LOBF enablement fix (rev2) Patchwork
2025-01-06 5:54 ` ✓ CI.Hooks: " Patchwork
2025-01-06 5:56 ` ✗ CI.checksparse: warning " Patchwork
2025-01-06 5:58 ` ✗ i915.CI.BAT: failure for LOBF enablement fix (rev3) Patchwork
2025-01-06 6:23 ` ✓ Xe.CI.BAT: success for LOBF enablement fix (rev2) Patchwork
2025-01-06 9:27 ` ✗ Xe.CI.Full: 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=87o70hl7xr.fsf@intel.com \
--to=jani.nikula@intel.com \
--cc=animesh.manna@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=intel-xe@lists.freedesktop.org \
--cc=jeevan.b@intel.com \
--cc=jouni.hogander@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.