Message ID | 20240925063032.2311796-3-nemesa.garg@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Consider joiner calculation for panel fitting | expand |
On Wed, 25 Sep 2024, Nemesa Garg <nemesa.garg@intel.com> wrote: > For all encoders add gmch_panel_fitting and remove > pch_panel_fitting as it will be called from pipe_config > after joiner calculation is done. > > Signed-off-by: Nemesa Garg <nemesa.garg@intel.com> > --- > drivers/gpu/drm/i915/display/icl_dsi.c | 8 +++++--- > drivers/gpu/drm/i915/display/intel_dp.c | 5 ++--- > drivers/gpu/drm/i915/display/intel_hdmi.c | 4 ++-- > drivers/gpu/drm/i915/display/intel_lvds.c | 8 +++++--- > drivers/gpu/drm/i915/display/vlv_dsi.c | 8 +++++--- > 5 files changed, 19 insertions(+), 14 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/icl_dsi.c b/drivers/gpu/drm/i915/display/icl_dsi.c > index 293efc1f841d..cfbfbc815d8c 100644 > --- a/drivers/gpu/drm/i915/display/icl_dsi.c > +++ b/drivers/gpu/drm/i915/display/icl_dsi.c > @@ -1641,9 +1641,11 @@ static int gen11_dsi_compute_config(struct intel_encoder *encoder, > if (ret) > return ret; > > - ret = intel_panel_fitting(pipe_config, conn_state); > - if (ret) > - return ret; > + if (HAS_GMCH(i915)) { ICL DSI code is only used when HAS_DDI() is true, but HAS_GMCH() and HAS_DDI() are never both true at the same time. > + ret = intel_gch_panel_fitting(pipe_config, conn_state); > + if (ret) > + return ret; > + } > > adjusted_mode->flags = 0; > > diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c > index a1fcedfd404b..480cb8dc2948 100644 > --- a/drivers/gpu/drm/i915/display/intel_dp.c > +++ b/drivers/gpu/drm/i915/display/intel_dp.c > @@ -3049,9 +3049,8 @@ intel_dp_compute_config(struct intel_encoder *encoder, > if (ret) > return ret; > > - if ((intel_dp_is_edp(intel_dp) && fixed_mode) || > - pipe_config->output_format == INTEL_OUTPUT_FORMAT_YCBCR420) { > - ret = intel_panel_fitting(pipe_config, conn_state); > + if (HAS_GMCH(dev_priv)) { > + ret = intel_gch_panel_fitting(pipe_config, conn_state); > if (ret) > return ret; > } > diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.c b/drivers/gpu/drm/i915/display/intel_hdmi.c > index cd9ee171e0df..90b4664f66f8 100644 > --- a/drivers/gpu/drm/i915/display/intel_hdmi.c > +++ b/drivers/gpu/drm/i915/display/intel_hdmi.c > @@ -2345,8 +2345,8 @@ int intel_hdmi_compute_config(struct intel_encoder *encoder, > return ret; > } > > - if (intel_hdmi_is_ycbcr420(pipe_config)) { > - ret = intel_panel_fitting(pipe_config, conn_state); > + if (HAS_GMCH(display)) { > + ret = intel_gch_panel_fitting(pipe_config, conn_state); > if (ret) > return ret; > } > diff --git a/drivers/gpu/drm/i915/display/intel_lvds.c b/drivers/gpu/drm/i915/display/intel_lvds.c > index fb4ed9f7855b..c28979b4ac15 100644 > --- a/drivers/gpu/drm/i915/display/intel_lvds.c > +++ b/drivers/gpu/drm/i915/display/intel_lvds.c > @@ -463,9 +463,11 @@ static int intel_lvds_compute_config(struct intel_encoder *encoder, > if (adjusted_mode->flags & DRM_MODE_FLAG_DBLSCAN) > return -EINVAL; > > - ret = intel_panel_fitting(crtc_state, conn_state); > - if (ret) > - return ret; > + if (HAS_GMCH(i915)) { > + ret = intel_gch_panel_fitting(crtc_state, conn_state); > + if (ret) > + return ret; > + } > > /* > * XXX: It would be nice to support lower refresh rates on the > diff --git a/drivers/gpu/drm/i915/display/vlv_dsi.c b/drivers/gpu/drm/i915/display/vlv_dsi.c > index d21f3fb39706..753a883c30c2 100644 > --- a/drivers/gpu/drm/i915/display/vlv_dsi.c > +++ b/drivers/gpu/drm/i915/display/vlv_dsi.c > @@ -282,9 +282,11 @@ static int intel_dsi_compute_config(struct intel_encoder *encoder, > if (ret) > return ret; > > - ret = intel_panel_fitting(pipe_config, conn_state); > - if (ret) > - return ret; > + if (HAS_GMCH(dev_priv)) { > + ret = intel_gch_panel_fitting(pipe_config, conn_state); > + if (ret) > + return ret; > + } > > if (adjusted_mode->flags & DRM_MODE_FLAG_DBLSCAN) > return -EINVAL;
> -----Original Message----- > From: Jani Nikula <jani.nikula@linux.intel.com> > Sent: Wednesday, September 25, 2024 2:42 PM > To: Garg, Nemesa <nemesa.garg@intel.com>; intel-gfx@lists.freedesktop.org > Cc: Garg, Nemesa <nemesa.garg@intel.com> > Subject: Re: [PATCH 2/3] drm/i915/display: Add gmch_panel_fitting in all > encoders > > On Wed, 25 Sep 2024, Nemesa Garg <nemesa.garg@intel.com> wrote: > > For all encoders add gmch_panel_fitting and remove pch_panel_fitting > > as it will be called from pipe_config after joiner calculation is > > done. > > > > Signed-off-by: Nemesa Garg <nemesa.garg@intel.com> > > --- > > drivers/gpu/drm/i915/display/icl_dsi.c | 8 +++++--- > > drivers/gpu/drm/i915/display/intel_dp.c | 5 ++--- > > drivers/gpu/drm/i915/display/intel_hdmi.c | 4 ++-- > > drivers/gpu/drm/i915/display/intel_lvds.c | 8 +++++--- > > drivers/gpu/drm/i915/display/vlv_dsi.c | 8 +++++--- > > 5 files changed, 19 insertions(+), 14 deletions(-) > > > > diff --git a/drivers/gpu/drm/i915/display/icl_dsi.c > > b/drivers/gpu/drm/i915/display/icl_dsi.c > > index 293efc1f841d..cfbfbc815d8c 100644 > > --- a/drivers/gpu/drm/i915/display/icl_dsi.c > > +++ b/drivers/gpu/drm/i915/display/icl_dsi.c > > @@ -1641,9 +1641,11 @@ static int gen11_dsi_compute_config(struct > intel_encoder *encoder, > > if (ret) > > return ret; > > > > - ret = intel_panel_fitting(pipe_config, conn_state); > > - if (ret) > > - return ret; > > + if (HAS_GMCH(i915)) { > > ICL DSI code is only used when HAS_DDI() is true, but HAS_GMCH() and > HAS_DDI() are never both true at the same time. > So in this case only pch_panel_fitting can be supported.? Thanks and Regards, Nemesa > > + ret = intel_gch_panel_fitting(pipe_config, conn_state); > > + if (ret) > > + return ret; > > + } > > > > adjusted_mode->flags = 0; > > > > diff --git a/drivers/gpu/drm/i915/display/intel_dp.c > > b/drivers/gpu/drm/i915/display/intel_dp.c > > index a1fcedfd404b..480cb8dc2948 100644 > > --- a/drivers/gpu/drm/i915/display/intel_dp.c > > +++ b/drivers/gpu/drm/i915/display/intel_dp.c > > @@ -3049,9 +3049,8 @@ intel_dp_compute_config(struct intel_encoder > *encoder, > > if (ret) > > return ret; > > > > - if ((intel_dp_is_edp(intel_dp) && fixed_mode) || > > - pipe_config->output_format == INTEL_OUTPUT_FORMAT_YCBCR420) > { > > - ret = intel_panel_fitting(pipe_config, conn_state); > > + if (HAS_GMCH(dev_priv)) { > > + ret = intel_gch_panel_fitting(pipe_config, conn_state); > > if (ret) > > return ret; > > } > > diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.c > > b/drivers/gpu/drm/i915/display/intel_hdmi.c > > index cd9ee171e0df..90b4664f66f8 100644 > > --- a/drivers/gpu/drm/i915/display/intel_hdmi.c > > +++ b/drivers/gpu/drm/i915/display/intel_hdmi.c > > @@ -2345,8 +2345,8 @@ int intel_hdmi_compute_config(struct intel_encoder > *encoder, > > return ret; > > } > > > > - if (intel_hdmi_is_ycbcr420(pipe_config)) { > > - ret = intel_panel_fitting(pipe_config, conn_state); > > + if (HAS_GMCH(display)) { > > + ret = intel_gch_panel_fitting(pipe_config, conn_state); > > if (ret) > > return ret; > > } > > diff --git a/drivers/gpu/drm/i915/display/intel_lvds.c > > b/drivers/gpu/drm/i915/display/intel_lvds.c > > index fb4ed9f7855b..c28979b4ac15 100644 > > --- a/drivers/gpu/drm/i915/display/intel_lvds.c > > +++ b/drivers/gpu/drm/i915/display/intel_lvds.c > > @@ -463,9 +463,11 @@ static int intel_lvds_compute_config(struct > intel_encoder *encoder, > > if (adjusted_mode->flags & DRM_MODE_FLAG_DBLSCAN) > > return -EINVAL; > > > > - ret = intel_panel_fitting(crtc_state, conn_state); > > - if (ret) > > - return ret; > > + if (HAS_GMCH(i915)) { > > + ret = intel_gch_panel_fitting(crtc_state, conn_state); > > + if (ret) > > + return ret; > > + } > > > > /* > > * XXX: It would be nice to support lower refresh rates on the diff > > --git a/drivers/gpu/drm/i915/display/vlv_dsi.c > > b/drivers/gpu/drm/i915/display/vlv_dsi.c > > index d21f3fb39706..753a883c30c2 100644 > > --- a/drivers/gpu/drm/i915/display/vlv_dsi.c > > +++ b/drivers/gpu/drm/i915/display/vlv_dsi.c > > @@ -282,9 +282,11 @@ static int intel_dsi_compute_config(struct > intel_encoder *encoder, > > if (ret) > > return ret; > > > > - ret = intel_panel_fitting(pipe_config, conn_state); > > - if (ret) > > - return ret; > > + if (HAS_GMCH(dev_priv)) { > > + ret = intel_gch_panel_fitting(pipe_config, conn_state); > > + if (ret) > > + return ret; > > + } > > > > if (adjusted_mode->flags & DRM_MODE_FLAG_DBLSCAN) > > return -EINVAL; > > -- > Jani Nikula, Intel
On Wed, Sep 25, 2024 at 12:00:31PM +0530, Nemesa Garg wrote: > For all encoders add gmch_panel_fitting and remove > pch_panel_fitting as it will be called from pipe_config > after joiner calculation is done. > > Signed-off-by: Nemesa Garg <nemesa.garg@intel.com> > --- > drivers/gpu/drm/i915/display/icl_dsi.c | 8 +++++--- > drivers/gpu/drm/i915/display/intel_dp.c | 5 ++--- > drivers/gpu/drm/i915/display/intel_hdmi.c | 4 ++-- > drivers/gpu/drm/i915/display/intel_lvds.c | 8 +++++--- > drivers/gpu/drm/i915/display/vlv_dsi.c | 8 +++++--- > 5 files changed, 19 insertions(+), 14 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/icl_dsi.c b/drivers/gpu/drm/i915/display/icl_dsi.c > index 293efc1f841d..cfbfbc815d8c 100644 > --- a/drivers/gpu/drm/i915/display/icl_dsi.c > +++ b/drivers/gpu/drm/i915/display/icl_dsi.c > @@ -1641,9 +1641,11 @@ static int gen11_dsi_compute_config(struct intel_encoder *encoder, > if (ret) > return ret; > > - ret = intel_panel_fitting(pipe_config, conn_state); > - if (ret) > - return ret; > + if (HAS_GMCH(i915)) { > + ret = intel_gch_panel_fitting(pipe_config, conn_state); > + if (ret) > + return ret; > + } This one can be nuked entirely as Jani pointed out. > > adjusted_mode->flags = 0; > > diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c > index a1fcedfd404b..480cb8dc2948 100644 > --- a/drivers/gpu/drm/i915/display/intel_dp.c > +++ b/drivers/gpu/drm/i915/display/intel_dp.c > @@ -3049,9 +3049,8 @@ intel_dp_compute_config(struct intel_encoder *encoder, > if (ret) > return ret; > > - if ((intel_dp_is_edp(intel_dp) && fixed_mode) || > - pipe_config->output_format == INTEL_OUTPUT_FORMAT_YCBCR420) { > - ret = intel_panel_fitting(pipe_config, conn_state); > + if (HAS_GMCH(dev_priv)) { Hmm. Technically we only need this for eDP (no 4:2:0 on gmch so that part is irrelevant), but I suppose there should be no real harm in calling it unconditionally as gmch_panel_fitting() will check whether pipe_src matches the mode. > + ret = intel_gch_panel_fitting(pipe_config, conn_state); > if (ret) > return ret; > } > diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.c b/drivers/gpu/drm/i915/display/intel_hdmi.c > index cd9ee171e0df..90b4664f66f8 100644 > --- a/drivers/gpu/drm/i915/display/intel_hdmi.c > +++ b/drivers/gpu/drm/i915/display/intel_hdmi.c > @@ -2345,8 +2345,8 @@ int intel_hdmi_compute_config(struct intel_encoder *encoder, > return ret; > } > > - if (intel_hdmi_is_ycbcr420(pipe_config)) { > - ret = intel_panel_fitting(pipe_config, conn_state); > + if (HAS_GMCH(display)) { > + ret = intel_gch_panel_fitting(pipe_config, conn_state); > if (ret) > return ret; > } This too can be nuked since there is no 4:2:0 support on gmch platforms. > diff --git a/drivers/gpu/drm/i915/display/intel_lvds.c b/drivers/gpu/drm/i915/display/intel_lvds.c > index fb4ed9f7855b..c28979b4ac15 100644 > --- a/drivers/gpu/drm/i915/display/intel_lvds.c > +++ b/drivers/gpu/drm/i915/display/intel_lvds.c > @@ -463,9 +463,11 @@ static int intel_lvds_compute_config(struct intel_encoder *encoder, > if (adjusted_mode->flags & DRM_MODE_FLAG_DBLSCAN) > return -EINVAL; > > - ret = intel_panel_fitting(crtc_state, conn_state); > - if (ret) > - return ret; > + if (HAS_GMCH(i915)) { > + ret = intel_gch_panel_fitting(crtc_state, conn_state); > + if (ret) > + return ret; > + } > > /* > * XXX: It would be nice to support lower refresh rates on the > diff --git a/drivers/gpu/drm/i915/display/vlv_dsi.c b/drivers/gpu/drm/i915/display/vlv_dsi.c > index d21f3fb39706..753a883c30c2 100644 > --- a/drivers/gpu/drm/i915/display/vlv_dsi.c > +++ b/drivers/gpu/drm/i915/display/vlv_dsi.c > @@ -282,9 +282,11 @@ static int intel_dsi_compute_config(struct intel_encoder *encoder, > if (ret) > return ret; > > - ret = intel_panel_fitting(pipe_config, conn_state); > - if (ret) > - return ret; > + if (HAS_GMCH(dev_priv)) { > + ret = intel_gch_panel_fitting(pipe_config, conn_state); > + if (ret) > + return ret; > + } > > if (adjusted_mode->flags & DRM_MODE_FLAG_DBLSCAN) > return -EINVAL; > -- > 2.25.1
diff --git a/drivers/gpu/drm/i915/display/icl_dsi.c b/drivers/gpu/drm/i915/display/icl_dsi.c index 293efc1f841d..cfbfbc815d8c 100644 --- a/drivers/gpu/drm/i915/display/icl_dsi.c +++ b/drivers/gpu/drm/i915/display/icl_dsi.c @@ -1641,9 +1641,11 @@ static int gen11_dsi_compute_config(struct intel_encoder *encoder, if (ret) return ret; - ret = intel_panel_fitting(pipe_config, conn_state); - if (ret) - return ret; + if (HAS_GMCH(i915)) { + ret = intel_gch_panel_fitting(pipe_config, conn_state); + if (ret) + return ret; + } adjusted_mode->flags = 0; diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c index a1fcedfd404b..480cb8dc2948 100644 --- a/drivers/gpu/drm/i915/display/intel_dp.c +++ b/drivers/gpu/drm/i915/display/intel_dp.c @@ -3049,9 +3049,8 @@ intel_dp_compute_config(struct intel_encoder *encoder, if (ret) return ret; - if ((intel_dp_is_edp(intel_dp) && fixed_mode) || - pipe_config->output_format == INTEL_OUTPUT_FORMAT_YCBCR420) { - ret = intel_panel_fitting(pipe_config, conn_state); + if (HAS_GMCH(dev_priv)) { + ret = intel_gch_panel_fitting(pipe_config, conn_state); if (ret) return ret; } diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.c b/drivers/gpu/drm/i915/display/intel_hdmi.c index cd9ee171e0df..90b4664f66f8 100644 --- a/drivers/gpu/drm/i915/display/intel_hdmi.c +++ b/drivers/gpu/drm/i915/display/intel_hdmi.c @@ -2345,8 +2345,8 @@ int intel_hdmi_compute_config(struct intel_encoder *encoder, return ret; } - if (intel_hdmi_is_ycbcr420(pipe_config)) { - ret = intel_panel_fitting(pipe_config, conn_state); + if (HAS_GMCH(display)) { + ret = intel_gch_panel_fitting(pipe_config, conn_state); if (ret) return ret; } diff --git a/drivers/gpu/drm/i915/display/intel_lvds.c b/drivers/gpu/drm/i915/display/intel_lvds.c index fb4ed9f7855b..c28979b4ac15 100644 --- a/drivers/gpu/drm/i915/display/intel_lvds.c +++ b/drivers/gpu/drm/i915/display/intel_lvds.c @@ -463,9 +463,11 @@ static int intel_lvds_compute_config(struct intel_encoder *encoder, if (adjusted_mode->flags & DRM_MODE_FLAG_DBLSCAN) return -EINVAL; - ret = intel_panel_fitting(crtc_state, conn_state); - if (ret) - return ret; + if (HAS_GMCH(i915)) { + ret = intel_gch_panel_fitting(crtc_state, conn_state); + if (ret) + return ret; + } /* * XXX: It would be nice to support lower refresh rates on the diff --git a/drivers/gpu/drm/i915/display/vlv_dsi.c b/drivers/gpu/drm/i915/display/vlv_dsi.c index d21f3fb39706..753a883c30c2 100644 --- a/drivers/gpu/drm/i915/display/vlv_dsi.c +++ b/drivers/gpu/drm/i915/display/vlv_dsi.c @@ -282,9 +282,11 @@ static int intel_dsi_compute_config(struct intel_encoder *encoder, if (ret) return ret; - ret = intel_panel_fitting(pipe_config, conn_state); - if (ret) - return ret; + if (HAS_GMCH(dev_priv)) { + ret = intel_gch_panel_fitting(pipe_config, conn_state); + if (ret) + return ret; + } if (adjusted_mode->flags & DRM_MODE_FLAG_DBLSCAN) return -EINVAL;
For all encoders add gmch_panel_fitting and remove pch_panel_fitting as it will be called from pipe_config after joiner calculation is done. Signed-off-by: Nemesa Garg <nemesa.garg@intel.com> --- drivers/gpu/drm/i915/display/icl_dsi.c | 8 +++++--- drivers/gpu/drm/i915/display/intel_dp.c | 5 ++--- drivers/gpu/drm/i915/display/intel_hdmi.c | 4 ++-- drivers/gpu/drm/i915/display/intel_lvds.c | 8 +++++--- drivers/gpu/drm/i915/display/vlv_dsi.c | 8 +++++--- 5 files changed, 19 insertions(+), 14 deletions(-)