diff mbox series

drm/i915/dsi: Enable dsi as part of encoder->enable

Message ID 20200127111608.7246-1-vandita.kulkarni@intel.com (mailing list archive)
State New, archived
Headers show
Series drm/i915/dsi: Enable dsi as part of encoder->enable | expand

Commit Message

Kulkarni, Vandita Jan. 27, 2020, 11:16 a.m. UTC
Enable the dsi transcoder, panel and backlight as part
of encoder->enable and not encoder->pre_enable.

Signed-off-by: Vandita Kulkarni <vandita.kulkarni@intel.com>
---
 drivers/gpu/drm/i915/display/icl_dsi.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

Comments

Jani Nikula Jan. 27, 2020, 12:03 p.m. UTC | #1
On Mon, 27 Jan 2020, Vandita Kulkarni <vandita.kulkarni@intel.com> wrote:
> Enable the dsi transcoder, panel and backlight as part
> of encoder->enable and not encoder->pre_enable.

That's the *what*, and we can see that much from the patch.

But we need to know *why*, and why you think it was done like this
before, and why it's okay now, etc.

BR,
Jani.

>
> Signed-off-by: Vandita Kulkarni <vandita.kulkarni@intel.com>
> ---
>  drivers/gpu/drm/i915/display/icl_dsi.c | 10 ++++++++--
>  1 file changed, 8 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/icl_dsi.c b/drivers/gpu/drm/i915/display/icl_dsi.c
> index 1186a5df057e..d40ee5951168 100644
> --- a/drivers/gpu/drm/i915/display/icl_dsi.c
> +++ b/drivers/gpu/drm/i915/display/icl_dsi.c
> @@ -1086,8 +1086,6 @@ static void gen11_dsi_pre_enable(struct intel_encoder *encoder,
>  				 const struct intel_crtc_state *pipe_config,
>  				 const struct drm_connector_state *conn_state)
>  {
> -	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
> -
>  	/* step3b */
>  	gen11_dsi_map_pll(encoder, pipe_config);
>  
> @@ -1101,6 +1099,13 @@ static void gen11_dsi_pre_enable(struct intel_encoder *encoder,
>  
>  	/* step6c: configure transcoder timings */
>  	gen11_dsi_set_transcoder_timings(encoder, pipe_config);
> +}
> +
> +static void gen11_dsi_enable(struct intel_encoder *encoder,
> +				 const struct intel_crtc_state *pipe_config,
> +				 const struct drm_connector_state *conn_state)
> +{
> +	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>  
>  	/* step6d: enable dsi transcoder */
>  	gen11_dsi_enable_transcoder(encoder);
> @@ -1727,6 +1732,7 @@ void icl_dsi_init(struct drm_i915_private *dev_priv)
>  
>  	encoder->pre_pll_enable = gen11_dsi_pre_pll_enable;
>  	encoder->pre_enable = gen11_dsi_pre_enable;
> +	encoder->enable = gen11_dsi_enable;
>  	encoder->disable = gen11_dsi_disable;
>  	encoder->post_disable = gen11_dsi_post_disable;
>  	encoder->port = port;
Kulkarni, Vandita Jan. 28, 2020, 2:38 p.m. UTC | #2
> -----Original Message-----
> From: Jani Nikula <jani.nikula@intel.com>
> Sent: Monday, January 27, 2020 5:34 PM
> To: Kulkarni, Vandita <vandita.kulkarni@intel.com>; intel-
> gfx@lists.freedesktop.org
> Cc: Kulkarni, Vandita <vandita.kulkarni@intel.com>
> Subject: Re: [PATCH] drm/i915/dsi: Enable dsi as part of encoder->enable
> 
> On Mon, 27 Jan 2020, Vandita Kulkarni <vandita.kulkarni@intel.com> wrote:
> > Enable the dsi transcoder, panel and backlight as part of
> > encoder->enable and not encoder->pre_enable.
> 
> That's the *what*, and we can see that much from the patch.
> 
> But we need to know *why*, and why you think it was done like this before, and
> why it's okay now, etc.

Now this is necessary, as we should configure pipe parameters like pipe_src_size before enabling the pipe_config for dsi,
And we are using the same code path as other encoders.
I will update the same in the commit message.
Thank you,

Also please let me know your opinion on handling pipe src size part to icl_dsi to before enabling the transcoder.

> 
> BR,
> Jani.
> 
> >
> > Signed-off-by: Vandita Kulkarni <vandita.kulkarni@intel.com>
> > ---
> >  drivers/gpu/drm/i915/display/icl_dsi.c | 10 ++++++++--
> >  1 file changed, 8 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/display/icl_dsi.c
> > b/drivers/gpu/drm/i915/display/icl_dsi.c
> > index 1186a5df057e..d40ee5951168 100644
> > --- a/drivers/gpu/drm/i915/display/icl_dsi.c
> > +++ b/drivers/gpu/drm/i915/display/icl_dsi.c
> > @@ -1086,8 +1086,6 @@ static void gen11_dsi_pre_enable(struct
> intel_encoder *encoder,
> >  				 const struct intel_crtc_state *pipe_config,
> >  				 const struct drm_connector_state
> *conn_state)  {
> > -	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
> > -
> >  	/* step3b */
> >  	gen11_dsi_map_pll(encoder, pipe_config);
> >
> > @@ -1101,6 +1099,13 @@ static void gen11_dsi_pre_enable(struct
> > intel_encoder *encoder,
> >
> >  	/* step6c: configure transcoder timings */
> >  	gen11_dsi_set_transcoder_timings(encoder, pipe_config);
> > +}
> > +
> > +static void gen11_dsi_enable(struct intel_encoder *encoder,
> > +				 const struct intel_crtc_state *pipe_config,
> > +				 const struct drm_connector_state
> *conn_state) {
> > +	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
> >
> >  	/* step6d: enable dsi transcoder */
> >  	gen11_dsi_enable_transcoder(encoder);
> > @@ -1727,6 +1732,7 @@ void icl_dsi_init(struct drm_i915_private
> > *dev_priv)
> >
> >  	encoder->pre_pll_enable = gen11_dsi_pre_pll_enable;
> >  	encoder->pre_enable = gen11_dsi_pre_enable;
> > +	encoder->enable = gen11_dsi_enable;
> >  	encoder->disable = gen11_dsi_disable;
> >  	encoder->post_disable = gen11_dsi_post_disable;
> >  	encoder->port = port;
> 
> --
> Jani Nikula, Intel Open Source Graphics Center
Jani Nikula Jan. 28, 2020, 4:41 p.m. UTC | #3
On Tue, 28 Jan 2020, "Kulkarni, Vandita" <vandita.kulkarni@intel.com> wrote:
>> -----Original Message-----
>> From: Jani Nikula <jani.nikula@intel.com>
>> Sent: Monday, January 27, 2020 5:34 PM
>> To: Kulkarni, Vandita <vandita.kulkarni@intel.com>; intel-
>> gfx@lists.freedesktop.org
>> Cc: Kulkarni, Vandita <vandita.kulkarni@intel.com>
>> Subject: Re: [PATCH] drm/i915/dsi: Enable dsi as part of encoder->enable
>> 
>> On Mon, 27 Jan 2020, Vandita Kulkarni <vandita.kulkarni@intel.com> wrote:
>> > Enable the dsi transcoder, panel and backlight as part of
>> > encoder->enable and not encoder->pre_enable.
>> 
>> That's the *what*, and we can see that much from the patch.
>> 
>> But we need to know *why*, and why you think it was done like this before, and
>> why it's okay now, etc.
>
> Now this is necessary, as we should configure pipe parameters like pipe_src_size before enabling the pipe_config for dsi,
> And we are using the same code path as other encoders.
> I will update the same in the commit message.
> Thank you,
>
> Also please let me know your opinion on handling pipe src size part to icl_dsi to before enabling the transcoder.

This patch is now part of [1]. Please review.

BR,
Jani.


[1] https://patchwork.freedesktop.org/series/72678/

>
>> 
>> BR,
>> Jani.
>> 
>> >
>> > Signed-off-by: Vandita Kulkarni <vandita.kulkarni@intel.com>
>> > ---
>> >  drivers/gpu/drm/i915/display/icl_dsi.c | 10 ++++++++--
>> >  1 file changed, 8 insertions(+), 2 deletions(-)
>> >
>> > diff --git a/drivers/gpu/drm/i915/display/icl_dsi.c
>> > b/drivers/gpu/drm/i915/display/icl_dsi.c
>> > index 1186a5df057e..d40ee5951168 100644
>> > --- a/drivers/gpu/drm/i915/display/icl_dsi.c
>> > +++ b/drivers/gpu/drm/i915/display/icl_dsi.c
>> > @@ -1086,8 +1086,6 @@ static void gen11_dsi_pre_enable(struct
>> intel_encoder *encoder,
>> >  				 const struct intel_crtc_state *pipe_config,
>> >  				 const struct drm_connector_state
>> *conn_state)  {
>> > -	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>> > -
>> >  	/* step3b */
>> >  	gen11_dsi_map_pll(encoder, pipe_config);
>> >
>> > @@ -1101,6 +1099,13 @@ static void gen11_dsi_pre_enable(struct
>> > intel_encoder *encoder,
>> >
>> >  	/* step6c: configure transcoder timings */
>> >  	gen11_dsi_set_transcoder_timings(encoder, pipe_config);
>> > +}
>> > +
>> > +static void gen11_dsi_enable(struct intel_encoder *encoder,
>> > +				 const struct intel_crtc_state *pipe_config,
>> > +				 const struct drm_connector_state
>> *conn_state) {
>> > +	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>> >
>> >  	/* step6d: enable dsi transcoder */
>> >  	gen11_dsi_enable_transcoder(encoder);
>> > @@ -1727,6 +1732,7 @@ void icl_dsi_init(struct drm_i915_private
>> > *dev_priv)
>> >
>> >  	encoder->pre_pll_enable = gen11_dsi_pre_pll_enable;
>> >  	encoder->pre_enable = gen11_dsi_pre_enable;
>> > +	encoder->enable = gen11_dsi_enable;
>> >  	encoder->disable = gen11_dsi_disable;
>> >  	encoder->post_disable = gen11_dsi_post_disable;
>> >  	encoder->port = port;
>> 
>> --
>> Jani Nikula, Intel Open Source Graphics Center
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/display/icl_dsi.c b/drivers/gpu/drm/i915/display/icl_dsi.c
index 1186a5df057e..d40ee5951168 100644
--- a/drivers/gpu/drm/i915/display/icl_dsi.c
+++ b/drivers/gpu/drm/i915/display/icl_dsi.c
@@ -1086,8 +1086,6 @@  static void gen11_dsi_pre_enable(struct intel_encoder *encoder,
 				 const struct intel_crtc_state *pipe_config,
 				 const struct drm_connector_state *conn_state)
 {
-	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
-
 	/* step3b */
 	gen11_dsi_map_pll(encoder, pipe_config);
 
@@ -1101,6 +1099,13 @@  static void gen11_dsi_pre_enable(struct intel_encoder *encoder,
 
 	/* step6c: configure transcoder timings */
 	gen11_dsi_set_transcoder_timings(encoder, pipe_config);
+}
+
+static void gen11_dsi_enable(struct intel_encoder *encoder,
+				 const struct intel_crtc_state *pipe_config,
+				 const struct drm_connector_state *conn_state)
+{
+	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 
 	/* step6d: enable dsi transcoder */
 	gen11_dsi_enable_transcoder(encoder);
@@ -1727,6 +1732,7 @@  void icl_dsi_init(struct drm_i915_private *dev_priv)
 
 	encoder->pre_pll_enable = gen11_dsi_pre_pll_enable;
 	encoder->pre_enable = gen11_dsi_pre_enable;
+	encoder->enable = gen11_dsi_enable;
 	encoder->disable = gen11_dsi_disable;
 	encoder->post_disable = gen11_dsi_post_disable;
 	encoder->port = port;