From: Jani Nikula <jani.nikula@intel.com>
To: "Manna, Animesh" <animesh.manna@intel.com>,
"intel-gfx@lists.freedesktop.org"
<intel-gfx@lists.freedesktop.org>,
"intel-xe@lists.freedesktop.org" <intel-xe@lists.freedesktop.org>
Cc: "Hogander, Jouni" <jouni.hogander@intel.com>,
"B, Jeevan" <jeevan.b@intel.com>
Subject: RE: [PATCH v4 5/8] drm/i915/lobf: Add debug interface for lobf
Date: Tue, 25 Feb 2025 11:15:35 +0200 [thread overview]
Message-ID: <87wmde5qrs.fsf@intel.com> (raw)
In-Reply-To: <PH7PR11MB5981C1F2229A4736E441FE11F9C32@PH7PR11MB5981.namprd11.prod.outlook.com>
On Tue, 25 Feb 2025, "Manna, Animesh" <animesh.manna@intel.com> wrote:
>> -----Original Message-----
>> From: Nikula, Jani <jani.nikula@intel.com>
>> Sent: Monday, February 24, 2025 4:26 PM
>> To: Manna, Animesh <animesh.manna@intel.com>; intel-
>> gfx@lists.freedesktop.org; intel-xe@lists.freedesktop.org
>> Cc: Hogander, Jouni <jouni.hogander@intel.com>; B, Jeevan
>> <jeevan.b@intel.com>; Manna, Animesh <animesh.manna@intel.com>
>> Subject: Re: [PATCH v4 5/8] drm/i915/lobf: Add debug interface for lobf
>>
>> On Mon, 24 Feb 2025, Animesh Manna <animesh.manna@intel.com> wrote:
>> > Add an interface in debugfs which will help in debugging LOBF feature.
>> >
>> > v1: Initial version.
>> > v2:
>> > - Remove FORCE_EN flag. [Jouni]
>> > - Change prefix from I915 to INTEL. [Jani]
>> > - Use u8 instead of bool for lobf-debug flag. [Jani]
>> >
>> > 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 | 5 ++
>> > 2 files changed, 56 insertions(+)
>> >
>> > diff --git a/drivers/gpu/drm/i915/display/intel_alpm.c
>> > b/drivers/gpu/drm/i915/display/intel_alpm.c
>> > index 83719ee1721c..5c70677ac3c0 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 &
>> INTEL_LOBF_DEBUG_DISABLE)
>> > + return;
>> > +
>> > if (!intel_dp_is_edp(intel_dp))
>> > return;
>> >
>> > @@ -449,6 +452,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;
>>
>> Where do you pass display as data? It's connector?
>
> I should pass display, thanks for catching.
It's a connector based debugfs file, so you should probably keep passing
the connector, and just assign to connector here.
>
>>
>> > + 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;
>>
>> What is this supposed to do?
>
> Other than EDP connector lobg_debug is not available, so will remove the above condition check.
This debugfs file is connector based. Why are we looping all dp anyway?
I don't understand.
>>
>> > +
>> > + // TODO: split to each edp transcoder.
>>
>> What does this mean?
>
> Currently lobf debug option only supported with one EDP, TODO added to support second EDP.
Again, this debugfs file is connector based. I don't understand the TODO
at all.
>
>>
>> > + *val = READ_ONCE(intel_dp->alpm_parameters.lobf_debug);
>>
>> You read this from all intel_dp and combine into one? What?
>
> Will return from here, will take care in next version.
>
>> > + 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;
>>
>> So this always returns failure?
>
> Missed to set the ret variable, will take care in next version.
> Thanks for review.
>
> Regards,
> Animesh
>>
>> > +}
>> > +
>> > +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); @@
>> > -458,6 +506,9 @@ void intel_alpm_lobf_debugfs_add(struct
>> intel_connector *connector)
>> > connector->base.connector_type !=
>> DRM_MODE_CONNECTOR_eDP)
>> > return;
You'll only have these debugfs files for eDP connectors anyway. There's
no need for eDP checks later.
BR,
Jani.
>> >
>> > + 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 b78721c451b8..b6ec9a8fadd9 100644
>> > --- a/drivers/gpu/drm/i915/display/intel_display_types.h
>> > +++ b/drivers/gpu/drm/i915/display/intel_display_types.h
>> > @@ -1808,6 +1808,11 @@ struct intel_dp {
>> > u8 aux_less_wake_lines;
>> > u8 silence_period_sym_clocks;
>> > u8 lfps_half_cycle_num_of_syms;
>> > +
>> > +#define INTEL_LOBF_DEBUG_MODE_MASK 0x0f
>> > +#define INTEL_LOBF_DEBUG_DEFAULT 0x00
>> > +#define INTEL_LOBF_DEBUG_DISABLE 0x01
>> > + u8 lobf_debug;
>>
>> Just overly complex still.
>>
>> > } alpm_parameters;
>> >
>> > u8 alpm_dpcd;
>>
>> --
>> Jani Nikula, Intel
--
Jani Nikula, Intel
next prev parent reply other threads:[~2025-02-25 9:15 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-02-24 8:08 [PATCH v4 0/8] LOBF enablement fix Animesh Manna
2025-02-24 8:08 ` [PATCH v4 1/8] drm/i915/lobf: Add lobf enablement in post plane update Animesh Manna
2025-02-24 10:42 ` Jani Nikula
2025-02-25 8:23 ` Manna, Animesh
2025-02-24 8:08 ` [PATCH v4 2/8] drm/i915/lobf: Disintegrate alpm_disable from psr_disable Animesh Manna
2025-02-24 10:45 ` Jani Nikula
2025-02-25 9:02 ` Manna, Animesh
2025-03-03 9:21 ` Manna, Animesh
2025-02-24 8:08 ` [PATCH v4 3/8] drm/i915/lobf: Add fixed refresh rate check in compute_config() Animesh Manna
2025-02-24 10:46 ` Jani Nikula
2025-02-25 8:25 ` Manna, Animesh
2025-02-24 8:08 ` [PATCH v4 4/8] drm/i915/lobf: Update lobf if any change in dependent parameters Animesh Manna
2025-02-24 10:48 ` Jani Nikula
2025-02-25 6:41 ` Manna, Animesh
2025-02-25 8:02 ` Jani Nikula
2025-02-25 8:22 ` Manna, Animesh
2025-02-24 10:49 ` Jani Nikula
2025-02-25 4:09 ` kernel test robot
2025-02-24 8:08 ` [PATCH v4 5/8] drm/i915/lobf: Add debug interface for lobf Animesh Manna
2025-02-24 10:55 ` Jani Nikula
2025-02-25 8:21 ` Manna, Animesh
2025-02-25 9:15 ` Jani Nikula [this message]
2025-02-24 8:08 ` [PATCH v4 6/8] drm/i915/lobf: Check for sink error and disable LOBF Animesh Manna
2025-02-24 8:08 ` [PATCH v4 7/8] drm/i915/lobf: Add mutex for alpm update Animesh Manna
2025-02-26 8:11 ` Dan Carpenter
2025-02-24 8:08 ` [PATCH v4 8/8] drm/i915/lobf: Add debug print for LOBF Animesh Manna
2025-02-24 18:45 ` ✓ CI.Patch_applied: success for LOBF enablement fix (rev3) Patchwork
2025-02-24 18:45 ` ✗ CI.checkpatch: warning " Patchwork
2025-02-24 18:46 ` ✓ CI.KUnit: success " Patchwork
2025-02-24 18:49 ` ✗ Fi.CI.CHECKPATCH: warning for LOBF enablement fix (rev4) Patchwork
2025-02-24 18:49 ` ✗ Fi.CI.SPARSE: " Patchwork
2025-02-24 19:03 ` ✓ CI.Build: success for LOBF enablement fix (rev3) Patchwork
2025-02-24 19:05 ` ✓ CI.Hooks: " Patchwork
2025-02-24 19:07 ` ✗ CI.checksparse: warning " Patchwork
2025-02-24 19:13 ` ✗ i915.CI.BAT: failure for LOBF enablement fix (rev4) Patchwork
2025-02-24 19:38 ` ✗ Xe.CI.BAT: failure for LOBF enablement fix (rev3) Patchwork
2025-02-24 20:41 ` ✗ Xe.CI.Full: " 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=87wmde5qrs.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.