Message ID | 20190626092731.26041-1-vandita.kulkarni@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [V2] drm/i915: Add icl mipi dsi properties | expand |
On Wed, 26 Jun 2019, Vandita Kulkarni <vandita.kulkarni@intel.com> wrote: > Add scaling and panel orientation properties for > icl mipi dsi. > > v2: Add platform specific function (Ville) > > Signed-off-by: Vandita Kulkarni <vandita.kulkarni@intel.com> > --- > drivers/gpu/drm/i915/display/icl_dsi.c | 30 ++++++++++++++++++++++++++ > drivers/gpu/drm/i915/display/vlv_dsi.c | 4 ++-- > 2 files changed, 32 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/icl_dsi.c b/drivers/gpu/drm/i915/display/icl_dsi.c > index b8673debf932..002db3300f40 100644 > --- a/drivers/gpu/drm/i915/display/icl_dsi.c > +++ b/drivers/gpu/drm/i915/display/icl_dsi.c > @@ -1255,9 +1255,14 @@ static int gen11_dsi_compute_config(struct intel_encoder *encoder, > intel_connector->panel.fixed_mode; > struct drm_display_mode *adjusted_mode = > &pipe_config->base.adjusted_mode; > + int ret = 0; No ned to initialize. > > pipe_config->output_format = INTEL_OUTPUT_FORMAT_RGB; > intel_fixed_panel_mode(fixed_mode, adjusted_mode); > + > + ret = skl_update_scaler_crtc(pipe_config); > + if (ret) > + return ret; > intel_pch_panel_fitting(crtc, pipe_config, conn_state->scaling_mode); > > adjusted_mode->flags = 0; > @@ -1508,6 +1513,29 @@ static void icl_dphy_param_init(struct intel_dsi *intel_dsi) > intel_dsi_log_params(intel_dsi); > } > > +static void icl_dsi_add_properties(struct intel_connector *connector) > +{ > + u32 allowed_scalers; > + > + if (!connector->panel.fixed_mode) > + return; This is a redundant check, as the caller bails out if fixed_mode is NULL. Otherwise LGTM, maybe Ville has more nitpicks? ;) BR, Jani. > + > + allowed_scalers = BIT(DRM_MODE_SCALE_ASPECT) | > + BIT(DRM_MODE_SCALE_FULLSCREEN) | > + BIT(DRM_MODE_SCALE_CENTER); > + > + drm_connector_attach_scaling_mode_property(&connector->base, > + allowed_scalers); > + > + connector->base.state->scaling_mode = DRM_MODE_SCALE_ASPECT; > + > + connector->base.display_info.panel_orientation = > + intel_dsi_get_panel_orientation(connector); > + drm_connector_init_panel_orientation_property(&connector->base, > + connector->panel.fixed_mode->hdisplay, > + connector->panel.fixed_mode->vdisplay); > +} > + > void icl_dsi_init(struct drm_i915_private *dev_priv) > { > struct drm_device *dev = &dev_priv->drm; > @@ -1601,6 +1629,8 @@ void icl_dsi_init(struct drm_i915_private *dev_priv) > } > > icl_dphy_param_init(intel_dsi); > + > + icl_dsi_add_properties(intel_connector); > return; > > err: > diff --git a/drivers/gpu/drm/i915/display/vlv_dsi.c b/drivers/gpu/drm/i915/display/vlv_dsi.c > index e272d826210a..c8002ffd29e7 100644 > --- a/drivers/gpu/drm/i915/display/vlv_dsi.c > +++ b/drivers/gpu/drm/i915/display/vlv_dsi.c > @@ -1644,7 +1644,7 @@ vlv_dsi_get_panel_orientation(struct intel_connector *connector) > return intel_dsi_get_panel_orientation(connector); > } > > -static void intel_dsi_add_properties(struct intel_connector *connector) > +static void vlv_dsi_add_properties(struct intel_connector *connector) > { > struct drm_i915_private *dev_priv = to_i915(connector->base.dev); > > @@ -1983,7 +1983,7 @@ void vlv_dsi_init(struct drm_i915_private *dev_priv) > intel_panel_init(&intel_connector->panel, fixed_mode, NULL); > intel_panel_setup_backlight(connector, INVALID_PIPE); > > - intel_dsi_add_properties(intel_connector); > + vlv_dsi_add_properties(intel_connector); > > return;
On Wed, Jun 26, 2019 at 03:53:19PM +0300, Jani Nikula wrote: > On Wed, 26 Jun 2019, Vandita Kulkarni <vandita.kulkarni@intel.com> wrote: > > Add scaling and panel orientation properties for > > icl mipi dsi. > > > > v2: Add platform specific function (Ville) > > > > Signed-off-by: Vandita Kulkarni <vandita.kulkarni@intel.com> > > --- > > drivers/gpu/drm/i915/display/icl_dsi.c | 30 ++++++++++++++++++++++++++ > > drivers/gpu/drm/i915/display/vlv_dsi.c | 4 ++-- > > 2 files changed, 32 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/gpu/drm/i915/display/icl_dsi.c b/drivers/gpu/drm/i915/display/icl_dsi.c > > index b8673debf932..002db3300f40 100644 > > --- a/drivers/gpu/drm/i915/display/icl_dsi.c > > +++ b/drivers/gpu/drm/i915/display/icl_dsi.c > > @@ -1255,9 +1255,14 @@ static int gen11_dsi_compute_config(struct intel_encoder *encoder, > > intel_connector->panel.fixed_mode; > > struct drm_display_mode *adjusted_mode = > > &pipe_config->base.adjusted_mode; > > + int ret = 0; > > No ned to initialize. > > > > > pipe_config->output_format = INTEL_OUTPUT_FORMAT_RGB; > > intel_fixed_panel_mode(fixed_mode, adjusted_mode); > > + > > + ret = skl_update_scaler_crtc(pipe_config); > > + if (ret) > > + return ret; This function call is not needed IIRC. The calls we already have in dp/hdmi are redundant. I have a branch somewhere where I remove them. > > intel_pch_panel_fitting(crtc, pipe_config, conn_state->scaling_mode); > > > > adjusted_mode->flags = 0; > > @@ -1508,6 +1513,29 @@ static void icl_dphy_param_init(struct intel_dsi *intel_dsi) > > intel_dsi_log_params(intel_dsi); > > } > > > > +static void icl_dsi_add_properties(struct intel_connector *connector) > > +{ > > + u32 allowed_scalers; > > + > > + if (!connector->panel.fixed_mode) > > + return; > > This is a redundant check, as the caller bails out if fixed_mode is > NULL. > > Otherwise LGTM, maybe Ville has more nitpicks? ;) My only other nitpick is that this was cc:d to my wrong address. > > BR, > Jani. > > > + > > + allowed_scalers = BIT(DRM_MODE_SCALE_ASPECT) | > > + BIT(DRM_MODE_SCALE_FULLSCREEN) | > > + BIT(DRM_MODE_SCALE_CENTER); > > + > > + drm_connector_attach_scaling_mode_property(&connector->base, > > + allowed_scalers); > > + > > + connector->base.state->scaling_mode = DRM_MODE_SCALE_ASPECT; > > + > > + connector->base.display_info.panel_orientation = > > + intel_dsi_get_panel_orientation(connector); > > + drm_connector_init_panel_orientation_property(&connector->base, > > + connector->panel.fixed_mode->hdisplay, > > + connector->panel.fixed_mode->vdisplay); > > +} > > + > > void icl_dsi_init(struct drm_i915_private *dev_priv) > > { > > struct drm_device *dev = &dev_priv->drm; > > @@ -1601,6 +1629,8 @@ void icl_dsi_init(struct drm_i915_private *dev_priv) > > } > > > > icl_dphy_param_init(intel_dsi); > > + > > + icl_dsi_add_properties(intel_connector); > > return; > > > > err: > > diff --git a/drivers/gpu/drm/i915/display/vlv_dsi.c b/drivers/gpu/drm/i915/display/vlv_dsi.c > > index e272d826210a..c8002ffd29e7 100644 > > --- a/drivers/gpu/drm/i915/display/vlv_dsi.c > > +++ b/drivers/gpu/drm/i915/display/vlv_dsi.c > > @@ -1644,7 +1644,7 @@ vlv_dsi_get_panel_orientation(struct intel_connector *connector) > > return intel_dsi_get_panel_orientation(connector); > > } > > > > -static void intel_dsi_add_properties(struct intel_connector *connector) > > +static void vlv_dsi_add_properties(struct intel_connector *connector) > > { > > struct drm_i915_private *dev_priv = to_i915(connector->base.dev); > > > > @@ -1983,7 +1983,7 @@ void vlv_dsi_init(struct drm_i915_private *dev_priv) > > intel_panel_init(&intel_connector->panel, fixed_mode, NULL); > > intel_panel_setup_backlight(connector, INVALID_PIPE); > > > > - intel_dsi_add_properties(intel_connector); > > + vlv_dsi_add_properties(intel_connector); > > > > return; > > -- > Jani Nikula, Intel Open Source Graphics Center > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/intel-gfx
> -----Original Message----- > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > Sent: Wednesday, June 26, 2019 7:29 PM > To: Nikula, Jani <jani.nikula@intel.com> > Cc: Kulkarni, Vandita <vandita.kulkarni@intel.com>; intel- > gfx@lists.freedesktop.org; Syrjala, Ville <ville.syrjala@intel.com> > Subject: Re: [Intel-gfx] [V2] drm/i915: Add icl mipi dsi properties > > On Wed, Jun 26, 2019 at 03:53:19PM +0300, Jani Nikula wrote: > > On Wed, 26 Jun 2019, Vandita Kulkarni <vandita.kulkarni@intel.com> wrote: > > > Add scaling and panel orientation properties for icl mipi dsi. > > > > > > v2: Add platform specific function (Ville) > > > > > > Signed-off-by: Vandita Kulkarni <vandita.kulkarni@intel.com> > > > --- > > > drivers/gpu/drm/i915/display/icl_dsi.c | 30 > > > ++++++++++++++++++++++++++ drivers/gpu/drm/i915/display/vlv_dsi.c | > > > 4 ++-- > > > 2 files changed, 32 insertions(+), 2 deletions(-) > > > > > > diff --git a/drivers/gpu/drm/i915/display/icl_dsi.c > > > b/drivers/gpu/drm/i915/display/icl_dsi.c > > > index b8673debf932..002db3300f40 100644 > > > --- a/drivers/gpu/drm/i915/display/icl_dsi.c > > > +++ b/drivers/gpu/drm/i915/display/icl_dsi.c > > > @@ -1255,9 +1255,14 @@ static int gen11_dsi_compute_config(struct > intel_encoder *encoder, > > > intel_connector->panel.fixed_mode; > > > struct drm_display_mode *adjusted_mode = > > > &pipe_config->base.adjusted_mode; > > > + int ret = 0; > > > > No ned to initialize. Ok. > > > > > > > > pipe_config->output_format = INTEL_OUTPUT_FORMAT_RGB; > > > intel_fixed_panel_mode(fixed_mode, adjusted_mode); > > > + > > > + ret = skl_update_scaler_crtc(pipe_config); > > > + if (ret) > > > + return ret; > > This function call is not needed IIRC. The calls we already have in dp/hdmi are > redundant. I have a branch somewhere where I remove them. Ok. > > > > intel_pch_panel_fitting(crtc, pipe_config, > > > conn_state->scaling_mode); > > > > > > adjusted_mode->flags = 0; > > > @@ -1508,6 +1513,29 @@ static void icl_dphy_param_init(struct intel_dsi > *intel_dsi) > > > intel_dsi_log_params(intel_dsi); > > > } > > > > > > +static void icl_dsi_add_properties(struct intel_connector > > > +*connector) { > > > + u32 allowed_scalers; > > > + > > > + if (!connector->panel.fixed_mode) > > > + return; > > > > This is a redundant check, as the caller bails out if fixed_mode is > > NULL. Ok. > > > > Otherwise LGTM, maybe Ville has more nitpicks? ;) > > My only other nitpick is that this was cc:d to my wrong address. Dropping it. Thanks for the reviews. Will fix and send V3. -Vandita > > > > > BR, > > Jani. > > > > > + > > > + allowed_scalers = BIT(DRM_MODE_SCALE_ASPECT) | > > > + BIT(DRM_MODE_SCALE_FULLSCREEN) | > > > + BIT(DRM_MODE_SCALE_CENTER); > > > + > > > + drm_connector_attach_scaling_mode_property(&connector->base, > > > + allowed_scalers); > > > + > > > + connector->base.state->scaling_mode = DRM_MODE_SCALE_ASPECT; > > > + > > > + connector->base.display_info.panel_orientation = > > > + intel_dsi_get_panel_orientation(connector); > > > + drm_connector_init_panel_orientation_property(&connector->base, > > > + connector->panel.fixed_mode->hdisplay, > > > + connector->panel.fixed_mode->vdisplay); > > > +} > > > + > > > void icl_dsi_init(struct drm_i915_private *dev_priv) { > > > struct drm_device *dev = &dev_priv->drm; @@ -1601,6 +1629,8 @@ > > > void icl_dsi_init(struct drm_i915_private *dev_priv) > > > } > > > > > > icl_dphy_param_init(intel_dsi); > > > + > > > + icl_dsi_add_properties(intel_connector); > > > return; > > > > > > err: > > > diff --git a/drivers/gpu/drm/i915/display/vlv_dsi.c > > > b/drivers/gpu/drm/i915/display/vlv_dsi.c > > > index e272d826210a..c8002ffd29e7 100644 > > > --- a/drivers/gpu/drm/i915/display/vlv_dsi.c > > > +++ b/drivers/gpu/drm/i915/display/vlv_dsi.c > > > @@ -1644,7 +1644,7 @@ vlv_dsi_get_panel_orientation(struct > intel_connector *connector) > > > return intel_dsi_get_panel_orientation(connector); > > > } > > > > > > -static void intel_dsi_add_properties(struct intel_connector > > > *connector) > > > +static void vlv_dsi_add_properties(struct intel_connector > > > +*connector) > > > { > > > struct drm_i915_private *dev_priv = to_i915(connector->base.dev); > > > > > > @@ -1983,7 +1983,7 @@ void vlv_dsi_init(struct drm_i915_private > *dev_priv) > > > intel_panel_init(&intel_connector->panel, fixed_mode, NULL); > > > intel_panel_setup_backlight(connector, INVALID_PIPE); > > > > > > - intel_dsi_add_properties(intel_connector); > > > + vlv_dsi_add_properties(intel_connector); > > > > > > return; > > > > -- > > Jani Nikula, Intel Open Source Graphics Center > > _______________________________________________ > > Intel-gfx mailing list > > Intel-gfx@lists.freedesktop.org > > https://lists.freedesktop.org/mailman/listinfo/intel-gfx > > -- > Ville Syrjälä > Intel
diff --git a/drivers/gpu/drm/i915/display/icl_dsi.c b/drivers/gpu/drm/i915/display/icl_dsi.c index b8673debf932..002db3300f40 100644 --- a/drivers/gpu/drm/i915/display/icl_dsi.c +++ b/drivers/gpu/drm/i915/display/icl_dsi.c @@ -1255,9 +1255,14 @@ static int gen11_dsi_compute_config(struct intel_encoder *encoder, intel_connector->panel.fixed_mode; struct drm_display_mode *adjusted_mode = &pipe_config->base.adjusted_mode; + int ret = 0; pipe_config->output_format = INTEL_OUTPUT_FORMAT_RGB; intel_fixed_panel_mode(fixed_mode, adjusted_mode); + + ret = skl_update_scaler_crtc(pipe_config); + if (ret) + return ret; intel_pch_panel_fitting(crtc, pipe_config, conn_state->scaling_mode); adjusted_mode->flags = 0; @@ -1508,6 +1513,29 @@ static void icl_dphy_param_init(struct intel_dsi *intel_dsi) intel_dsi_log_params(intel_dsi); } +static void icl_dsi_add_properties(struct intel_connector *connector) +{ + u32 allowed_scalers; + + if (!connector->panel.fixed_mode) + return; + + allowed_scalers = BIT(DRM_MODE_SCALE_ASPECT) | + BIT(DRM_MODE_SCALE_FULLSCREEN) | + BIT(DRM_MODE_SCALE_CENTER); + + drm_connector_attach_scaling_mode_property(&connector->base, + allowed_scalers); + + connector->base.state->scaling_mode = DRM_MODE_SCALE_ASPECT; + + connector->base.display_info.panel_orientation = + intel_dsi_get_panel_orientation(connector); + drm_connector_init_panel_orientation_property(&connector->base, + connector->panel.fixed_mode->hdisplay, + connector->panel.fixed_mode->vdisplay); +} + void icl_dsi_init(struct drm_i915_private *dev_priv) { struct drm_device *dev = &dev_priv->drm; @@ -1601,6 +1629,8 @@ void icl_dsi_init(struct drm_i915_private *dev_priv) } icl_dphy_param_init(intel_dsi); + + icl_dsi_add_properties(intel_connector); return; err: diff --git a/drivers/gpu/drm/i915/display/vlv_dsi.c b/drivers/gpu/drm/i915/display/vlv_dsi.c index e272d826210a..c8002ffd29e7 100644 --- a/drivers/gpu/drm/i915/display/vlv_dsi.c +++ b/drivers/gpu/drm/i915/display/vlv_dsi.c @@ -1644,7 +1644,7 @@ vlv_dsi_get_panel_orientation(struct intel_connector *connector) return intel_dsi_get_panel_orientation(connector); } -static void intel_dsi_add_properties(struct intel_connector *connector) +static void vlv_dsi_add_properties(struct intel_connector *connector) { struct drm_i915_private *dev_priv = to_i915(connector->base.dev); @@ -1983,7 +1983,7 @@ void vlv_dsi_init(struct drm_i915_private *dev_priv) intel_panel_init(&intel_connector->panel, fixed_mode, NULL); intel_panel_setup_backlight(connector, INVALID_PIPE); - intel_dsi_add_properties(intel_connector); + vlv_dsi_add_properties(intel_connector); return;
Add scaling and panel orientation properties for icl mipi dsi. v2: Add platform specific function (Ville) Signed-off-by: Vandita Kulkarni <vandita.kulkarni@intel.com> --- drivers/gpu/drm/i915/display/icl_dsi.c | 30 ++++++++++++++++++++++++++ drivers/gpu/drm/i915/display/vlv_dsi.c | 4 ++-- 2 files changed, 32 insertions(+), 2 deletions(-)