All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Dibin Moolakadan Subrahmanian <dibin.moolakadan.subrahmanian@intel.com>
Cc: "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>,
	"Nikula, Jani" <jani.nikula@intel.com>,
	"Shankar, Uma" <uma.shankar@intel.com>
Subject: Re: [PATCH v3 01/12] drm/i915/cmtg: add is_enable_allowed() for cmtg
Date: Tue, 7 Apr 2026 13:03:08 +0300	[thread overview]
Message-ID: <adTWXEKa_KOsxprS@intel.com> (raw)
In-Reply-To: <41346fec-0935-4be3-8069-924aded3e650@intel.com>

On Tue, Apr 07, 2026 at 02:29:46PM +0530, Dibin Moolakadan Subrahmanian wrote:
> On 07-04-2026 00:18, Shankar, Uma wrote:
> >
> >> -----Original Message-----
> >> From: Manna, Animesh <animesh.manna@intel.com>
> >> Sent: Friday, March 13, 2026 9:03 PM
> >> To: intel-gfx@lists.freedesktop.org; intel-xe@lists.freedesktop.org
> >> Cc: Nikula, Jani <jani.nikula@intel.com>; Shankar, Uma
> >> <uma.shankar@intel.com>; Dibin Moolakadan Subrahmanian
> >> <dibin.moolakadan.subrahmanian@intel.com>; Manna, Animesh
> >> <animesh.manna@intel.com>
> >> Subject: [PATCH v3 01/12] drm/i915/cmtg: add is_enable_allowed() for cmtg
> > Nit: Name here in subject doesn't match the actual function. Better to use exact same name.
> >
> >> Introduce a flag for DC3co. CMTG will be enabled only with DC3co so add a
> >> separate function is_allowed() for cmtg. DC3co flag will be enabled in a separate
> >> patch.
> >>
> >> Signed-off-by: Animesh Manna <animesh.manna@intel.com>
> >> ---
> >>   drivers/gpu/drm/i915/display/intel_cmtg.c          | 14 ++++++++++++++
> >>   drivers/gpu/drm/i915/display/intel_cmtg.h          |  2 ++
> >>   .../gpu/drm/i915/display/intel_display_device.h    |  1 +
> >>   drivers/gpu/drm/i915/display/intel_display_types.h |  4 ++++
> >>   4 files changed, 21 insertions(+)
> >>
> >> diff --git a/drivers/gpu/drm/i915/display/intel_cmtg.c
> >> b/drivers/gpu/drm/i915/display/intel_cmtg.c
> >> index e1fdc6fe9762..024d753eca55 100644
> >> --- a/drivers/gpu/drm/i915/display/intel_cmtg.c
> >> +++ b/drivers/gpu/drm/i915/display/intel_cmtg.c
> >> @@ -16,6 +16,7 @@
> >>   #include "intel_display_device.h"
> >>   #include "intel_display_power.h"
> >>   #include "intel_display_regs.h"
> >> +#include "intel_display_types.h"
> >>
> >>   /**
> >>    * DOC: Common Primary Timing Generator (CMTG) @@ -185,3 +186,16 @@
> >> void intel_cmtg_sanitize(struct intel_display *display)
> >>
> >>   	intel_cmtg_disable(display, &cmtg_config);  }
> >> +
> >> +bool intel_cmtg_is_allowed(const struct intel_crtc_state *crtc_state) {
> >> +	struct intel_display *display = to_intel_display(crtc_state);
> >> +	enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
> >> +
> >> +	if ((cpu_transcoder == TRANSCODER_A || cpu_transcoder ==
> >> TRANSCODER_B) &&
> >> +	    HAS_DC3CO(display) && intel_crtc_has_type(crtc_state,
> >> INTEL_OUTPUT_EDP) &&
> >> +	    crtc_state->dc3co.enable)
> > Don't think we need both HAS_DC3CO and dc3co.enable here. Later should never be set if HAS_DC3CO
> > not true.
> >
> >> +		return true;
> >> +
> >> +	return false;
> >> +}
> >> diff --git a/drivers/gpu/drm/i915/display/intel_cmtg.h
> >> b/drivers/gpu/drm/i915/display/intel_cmtg.h
> >> index ba62199adaa2..7692cc98cf87 100644
> >> --- a/drivers/gpu/drm/i915/display/intel_cmtg.h
> >> +++ b/drivers/gpu/drm/i915/display/intel_cmtg.h
> >> @@ -7,7 +7,9 @@
> >>   #define __INTEL_CMTG_H__
> >>
> >>   struct intel_display;
> >> +struct intel_crtc_state;
> >>
> >>   void intel_cmtg_sanitize(struct intel_display *display);
> >> +bool intel_cmtg_is_allowed(const struct intel_crtc_state *crtc_state);
> >>
> >>   #endif /* __INTEL_CMTG_H__ */
> >> diff --git a/drivers/gpu/drm/i915/display/intel_display_device.h
> >> b/drivers/gpu/drm/i915/display/intel_display_device.h
> >> index e84c190dcc4f..35e06fcf794d 100644
> >> --- a/drivers/gpu/drm/i915/display/intel_display_device.h
> >> +++ b/drivers/gpu/drm/i915/display/intel_display_device.h
> >> @@ -189,6 +189,7 @@ struct intel_display_platforms {
> >>   #define HAS_LRR(__display)		(DISPLAY_VER(__display) >= 12)
> >>   #define HAS_LSPCON(__display)		(IS_DISPLAY_VER(__display, 9,
> >> 10))
> >>   #define HAS_LT_PHY(__display)		((__display)->platform.novalake)
> >> +#define HAS_DC3CO(__display)		((__display)->platform.novalake)
> >>   #define HAS_MBUS_JOINING(__display)	((__display)->platform.alderlake_p
> >> || DISPLAY_VER(__display) >= 14)
> >>   #define HAS_MSO(__display)		(DISPLAY_VER(__display) >= 12)
> >>   #define HAS_OVERLAY(__display)		(DISPLAY_INFO(__display)-
> >>> has_overlay)
> >> diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h
> >> b/drivers/gpu/drm/i915/display/intel_display_types.h
> >> index e189f8c39ccb..8a92ea4f1438 100644
> >> --- a/drivers/gpu/drm/i915/display/intel_display_types.h
> >> +++ b/drivers/gpu/drm/i915/display/intel_display_types.h
> >> @@ -1434,6 +1434,10 @@ struct intel_crtc_state {
> >>
> >>   	/* to track changes in plane color blocks */
> >>   	bool plane_color_changed;
> >> +
> >> +	struct {
> >> +		bool enable;
> >> +	} dc3co;
> >>   };
> 
> DC3CO shouldn’t be part of struct intel_crtc_state.
> It’s a global display power feature, not per-CRTC state.
> struct intel_atomic_state would be a more appropriate place to track this.

intel_atomic_state isn't actually a state, and so should not be used
to track anything. To better reflect its role drm_atomic_state will
soon be renamed to drm_atomic_commit, and we need to follow up with
the corresponding intel_atomic_* rename.

-- 
Ville Syrjälä
Intel

  reply	other threads:[~2026-04-07 10:03 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-03-13 15:32 [PATCH v3 00/12] CMTG enablement Animesh Manna
2026-03-13 15:32 ` [PATCH v3 01/12] drm/i915/cmtg: add is_enable_allowed() for cmtg Animesh Manna
2026-04-06 18:48   ` Shankar, Uma
2026-04-07  8:59     ` Dibin Moolakadan Subrahmanian
2026-04-07 10:03       ` Ville Syrjälä [this message]
2026-03-13 15:32 ` [PATCH v3 02/12] drm/i915/cmtg: set CMTG clock select Animesh Manna
2026-04-06 19:02   ` Shankar, Uma
2026-03-13 15:32 ` [PATCH v3 03/12] drm/i915/cmtg: set timings for CMTG Animesh Manna
2026-04-06 19:24   ` Shankar, Uma
2026-04-07  8:03   ` Jani Nikula
2026-04-07 10:00     ` Ville Syrjälä
2026-04-07 11:03       ` Jani Nikula
2026-04-09 14:00         ` Manna, Animesh
2026-03-13 15:32 ` [PATCH v3 04/12] drm/i915/cmtg: program VRR registers of CMTG Animesh Manna
2026-04-06 19:35   ` Shankar, Uma
2026-03-13 15:32 ` [PATCH v3 05/12] drm/i915/cmtg: set transcoder mn for CMTG Animesh Manna
2026-04-06 19:43   ` Shankar, Uma
2026-03-13 15:32 ` [PATCH v3 06/12] drm/i915/cmtg: add hook to enable CMTG with sync to port Animesh Manna
2026-04-06 19:52   ` Shankar, Uma
2026-03-13 15:32 ` [PATCH v3 07/12] drm/i915/cmtg: add a hook to enable ddi for CMTG Animesh Manna
2026-04-06 20:07   ` Shankar, Uma
2026-03-13 15:32 ` [PATCH v3 08/12] drm/i915/cmtg: modify existing hook to disable CMTG Animesh Manna
2026-04-06 20:13   ` Shankar, Uma
2026-03-13 15:32 ` [PATCH v3 09/12] drm/i915/cmtg: Add trigger to enable/disable cmtg Animesh Manna
2026-04-06 20:50   ` Shankar, Uma
2026-03-13 15:32 ` [PATCH v3 10/12] drm/i915/cmtg: Add CMTG interrupt handling Animesh Manna
2026-04-06 21:37   ` Shankar, Uma
2026-03-13 15:32 ` [PATCH v3 11/12] drm/i915/cmtg: set dc3co_enable flag for lobf/psr2/pr-alpm Animesh Manna
2026-04-06 21:39   ` Shankar, Uma
2026-03-13 15:33 ` [PATCH v3 12/12] drm/i915/cmtg: disable CMTG if dc3co entry condition not met Animesh Manna
2026-04-06 21:42   ` Shankar, Uma
2026-03-13 16:10 ` ✓ CI.KUnit: success for CMTG enablement (rev4) Patchwork
2026-03-13 17:01 ` ✓ Xe.CI.BAT: " Patchwork
2026-03-13 17:53 ` ✓ i915.CI.BAT: success for CMTG enablement (rev3) Patchwork
2026-03-14 21:15 ` ✓ Xe.CI.FULL: success for CMTG enablement (rev4) Patchwork
2026-03-14 21:26 ` ✓ i915.CI.Full: success for CMTG enablement (rev3) 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=adTWXEKa_KOsxprS@intel.com \
    --to=ville.syrjala@linux.intel.com \
    --cc=animesh.manna@intel.com \
    --cc=dibin.moolakadan.subrahmanian@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=intel-xe@lists.freedesktop.org \
    --cc=jani.nikula@intel.com \
    --cc=uma.shankar@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.