Message ID | 20241010224311.50133-8-matthew.s.atwood@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Add xe3lpd edp enabling | expand |
On Thu, Oct 10, 2024 at 03:43:08PM -0700, Matt Atwood wrote: > From: Suraj Kandpal <suraj.kandpal@intel.com> > > From DISPLAY_VER() >= 30 C20 PHY consolidated programming table of > DP and eDP been merged and now use the same rates and values. eDP > over TypeC has also been introduced. > Moreover it allows more granular and higher rates. Add new table to > represent this change. > > Bspec: 68961 > Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com> > Signed-off-by: Matt Atwood <matthew.s.atwood@intel.com> > Reviewed-by: Clint Taylor <Clinton.A.Taylor@intel.com> > --- > drivers/gpu/drm/i915/display/intel_cx0_phy.c | 24 ++++++++++++++++++-- > 1 file changed, 22 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_cx0_phy.c b/drivers/gpu/drm/i915/display/intel_cx0_phy.c > index f73d576fd99e..f1aea5ead41b 100644 > --- a/drivers/gpu/drm/i915/display/intel_cx0_phy.c > +++ b/drivers/gpu/drm/i915/display/intel_cx0_phy.c > @@ -1122,6 +1122,22 @@ static const struct intel_c20pll_state * const xe2hpd_c20_dp_tables[] = { > NULL, > }; > > +static const struct intel_c20pll_state * const xe3lpd_c20_dp_edp_tables[] = { > + &mtl_c20_dp_rbr, > + &xe2hpd_c20_edp_r216, > + &xe2hpd_c20_edp_r243, > + &mtl_c20_dp_hbr1, > + &xe2hpd_c20_edp_r324, > + &xe2hpd_c20_edp_r432, > + &mtl_c20_dp_hbr2, > + &xe2hpd_c20_edp_r675, > + &mtl_c20_dp_hbr3, > + &mtl_c20_dp_uhbr10, > + &xe2hpd_c20_dp_uhbr13_5, > + &mtl_c20_dp_uhbr20, > + NULL, > +}; > + > /* > * HDMI link rates with 38.4 MHz reference clock. > */ > @@ -2242,11 +2258,15 @@ intel_c20_pll_tables_get(struct intel_crtc_state *crtc_state, > struct drm_i915_private *i915 = to_i915(encoder->base.dev); > > if (intel_crtc_has_dp_encoder(crtc_state)) { > - if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_EDP)) > - return xe2hpd_c20_edp_tables; > + if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_EDP)) { > + if (DISPLAY_VER_FULL(i915) == IP_VER(14, 1)) It might be a bit simpler to && the conditions here instead of nesting if's. > + return xe2hpd_c20_edp_tables; > + } > > if (DISPLAY_VER_FULL(i915) == IP_VER(14, 1)) > return xe2hpd_c20_dp_tables; > + else if (DISPLAY_VER(i915) >= 30) Shouldn't this ladder be using the standard "newest platform first" ordering? Matt > + return xe3lpd_c20_dp_edp_tables; > else > return mtl_c20_dp_tables; > > -- > 2.45.0 >
> -----Original Message----- > From: Roper, Matthew D <matthew.d.roper@intel.com> > Sent: Saturday, October 12, 2024 3:16 AM > To: Atwood, Matthew S <matthew.s.atwood@intel.com> > Cc: intel-xe@lists.freedesktop.org; intel-gfx@lists.freedesktop.org; Kandpal, > Suraj <suraj.kandpal@intel.com>; Taylor, Clinton A > <clinton.a.taylor@intel.com> > Subject: Re: [PATCH v2 07/10] drm/i915/xe3lpd: Add C20 Phy consolidated > programming table > > On Thu, Oct 10, 2024 at 03:43:08PM -0700, Matt Atwood wrote: > > From: Suraj Kandpal <suraj.kandpal@intel.com> > > > > From DISPLAY_VER() >= 30 C20 PHY consolidated programming table of DP > > and eDP been merged and now use the same rates and values. eDP over > > TypeC has also been introduced. > > Moreover it allows more granular and higher rates. Add new table to > > represent this change. > > > > Bspec: 68961 > > Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com> > > Signed-off-by: Matt Atwood <matthew.s.atwood@intel.com> > > Reviewed-by: Clint Taylor <Clinton.A.Taylor@intel.com> > > --- > > drivers/gpu/drm/i915/display/intel_cx0_phy.c | 24 > > ++++++++++++++++++-- > > 1 file changed, 22 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/gpu/drm/i915/display/intel_cx0_phy.c > > b/drivers/gpu/drm/i915/display/intel_cx0_phy.c > > index f73d576fd99e..f1aea5ead41b 100644 > > --- a/drivers/gpu/drm/i915/display/intel_cx0_phy.c > > +++ b/drivers/gpu/drm/i915/display/intel_cx0_phy.c > > @@ -1122,6 +1122,22 @@ static const struct intel_c20pll_state * const > xe2hpd_c20_dp_tables[] = { > > NULL, > > }; > > > > +static const struct intel_c20pll_state * const xe3lpd_c20_dp_edp_tables[] > = { > > + &mtl_c20_dp_rbr, > > + &xe2hpd_c20_edp_r216, > > + &xe2hpd_c20_edp_r243, > > + &mtl_c20_dp_hbr1, > > + &xe2hpd_c20_edp_r324, > > + &xe2hpd_c20_edp_r432, > > + &mtl_c20_dp_hbr2, > > + &xe2hpd_c20_edp_r675, > > + &mtl_c20_dp_hbr3, > > + &mtl_c20_dp_uhbr10, > > + &xe2hpd_c20_dp_uhbr13_5, > > + &mtl_c20_dp_uhbr20, > > + NULL, > > +}; > > + > > /* > > * HDMI link rates with 38.4 MHz reference clock. > > */ > > @@ -2242,11 +2258,15 @@ intel_c20_pll_tables_get(struct intel_crtc_state > *crtc_state, > > struct drm_i915_private *i915 = to_i915(encoder->base.dev); > > > > if (intel_crtc_has_dp_encoder(crtc_state)) { > > - if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_EDP)) > > - return xe2hpd_c20_edp_tables; > > + if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_EDP)) { > > + if (DISPLAY_VER_FULL(i915) == IP_VER(14, 1)) > > It might be a bit simpler to && the conditions here instead of nesting if's. I kept it like this because in the next patch I add a condition for edp over type c > > > + return xe2hpd_c20_edp_tables; > > + } > > > > if (DISPLAY_VER_FULL(i915) == IP_VER(14, 1)) > > return xe2hpd_c20_dp_tables; > > + else if (DISPLAY_VER(i915) >= 30) > > Shouldn't this ladder be using the standard "newest platform first" > ordering? Sure will add that change Regards, Suraj Kandpal > > > Matt > > > + return xe3lpd_c20_dp_edp_tables; > > else > > return mtl_c20_dp_tables; > > > > -- > > 2.45.0 > > > > -- > Matt Roper > Graphics Software Engineer > Linux GPU Platform Enablement > Intel Corporation
diff --git a/drivers/gpu/drm/i915/display/intel_cx0_phy.c b/drivers/gpu/drm/i915/display/intel_cx0_phy.c index f73d576fd99e..f1aea5ead41b 100644 --- a/drivers/gpu/drm/i915/display/intel_cx0_phy.c +++ b/drivers/gpu/drm/i915/display/intel_cx0_phy.c @@ -1122,6 +1122,22 @@ static const struct intel_c20pll_state * const xe2hpd_c20_dp_tables[] = { NULL, }; +static const struct intel_c20pll_state * const xe3lpd_c20_dp_edp_tables[] = { + &mtl_c20_dp_rbr, + &xe2hpd_c20_edp_r216, + &xe2hpd_c20_edp_r243, + &mtl_c20_dp_hbr1, + &xe2hpd_c20_edp_r324, + &xe2hpd_c20_edp_r432, + &mtl_c20_dp_hbr2, + &xe2hpd_c20_edp_r675, + &mtl_c20_dp_hbr3, + &mtl_c20_dp_uhbr10, + &xe2hpd_c20_dp_uhbr13_5, + &mtl_c20_dp_uhbr20, + NULL, +}; + /* * HDMI link rates with 38.4 MHz reference clock. */ @@ -2242,11 +2258,15 @@ intel_c20_pll_tables_get(struct intel_crtc_state *crtc_state, struct drm_i915_private *i915 = to_i915(encoder->base.dev); if (intel_crtc_has_dp_encoder(crtc_state)) { - if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_EDP)) - return xe2hpd_c20_edp_tables; + if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_EDP)) { + if (DISPLAY_VER_FULL(i915) == IP_VER(14, 1)) + return xe2hpd_c20_edp_tables; + } if (DISPLAY_VER_FULL(i915) == IP_VER(14, 1)) return xe2hpd_c20_dp_tables; + else if (DISPLAY_VER(i915) >= 30) + return xe3lpd_c20_dp_edp_tables; else return mtl_c20_dp_tables;