diff mbox series

[V2,3/4] drm/i915/dsi/xelpd: Disable DC states in Video mode

Message ID 20211019151435.20477-4-vandita.kulkarni@intel.com (mailing list archive)
State New, archived
Headers show
Series Enable MIPI DSI video mode on ADLP | expand

Commit Message

Kulkarni, Vandita Oct. 19, 2021, 3:14 p.m. UTC
MIPI DSI transcoder cannot be in video mode to support any of the
display C states.

Bspec: 49195 (For DC*co DSI transcoders cannot be in video mode)
Bspec: 49193 (Hardware does not support DC5 or DC6 with MIPI DSI enabled)
Bspec: 49188 (desc of DSI_DCSTATE_CTL talks about cmd mode PM control

v2: Align to the power domain ordering (Jani)
    Add bspec references (Imre)

Signed-off-by: Vandita Kulkarni <vandita.kulkarni@intel.com>
---
 drivers/gpu/drm/i915/display/intel_display_power.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Imre Deak Oct. 22, 2021, 8:23 p.m. UTC | #1
On Tue, Oct 19, 2021 at 08:44:34PM +0530, Vandita Kulkarni wrote:
> MIPI DSI transcoder cannot be in video mode to support any of the
> display C states.
> 
> Bspec: 49195 (For DC*co DSI transcoders cannot be in video mode)
> Bspec: 49193 (Hardware does not support DC5 or DC6 with MIPI DSI enabled)
> Bspec: 49188 (desc of DSI_DCSTATE_CTL talks about cmd mode PM control

So none of the DC states (except DC6v which the driver doesn't support)
are supported in DSI video mode and DC3co is supported in command mode.
The selection between video vs. command mode happens using a VBT flag
and I can't see anything that would prevent using command mode on XELPD.
If the support for it is missing, should it be disabled explicitly or at
least a notice printed that DC states are not yet supported?

> v2: Align to the power domain ordering (Jani)
>     Add bspec references (Imre)
> 
> Signed-off-by: Vandita Kulkarni <vandita.kulkarni@intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_display_power.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_display_power.c b/drivers/gpu/drm/i915/display/intel_display_power.c
> index d88da0d0f05a..b989ddd3d023 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_power.c
> +++ b/drivers/gpu/drm/i915/display/intel_display_power.c
> @@ -3106,6 +3106,7 @@ intel_display_power_put_mask_in_set(struct drm_i915_private *i915,
>  	BIT_ULL(POWER_DOMAIN_MODESET) |			\
>  	BIT_ULL(POWER_DOMAIN_AUX_A) |			\
>  	BIT_ULL(POWER_DOMAIN_AUX_B) |			\
> +	BIT_ULL(POWER_DOMAIN_PORT_DSI) |		\
>  	BIT_ULL(POWER_DOMAIN_INIT))
>  
>  #define XELPD_AUX_IO_D_XELPD_POWER_DOMAINS	BIT_ULL(POWER_DOMAIN_AUX_D_XELPD)
> -- 
> 2.32.0
>
Kulkarni, Vandita Oct. 28, 2021, 1:53 p.m. UTC | #2
> -----Original Message-----
> From: Deak, Imre <imre.deak@intel.com>
> Sent: Saturday, October 23, 2021 1:53 AM
> To: Kulkarni, Vandita <vandita.kulkarni@intel.com>
> Cc: intel-gfx@lists.freedesktop.org; Nikula, Jani <jani.nikula@intel.com>;
> Roper, Matthew D <matthew.d.roper@intel.com>;
> ville.syrjala@linux.intel.com
> Subject: Re: [V2 3/4] drm/i915/dsi/xelpd: Disable DC states in Video mode
> 
> On Tue, Oct 19, 2021 at 08:44:34PM +0530, Vandita Kulkarni wrote:
> > MIPI DSI transcoder cannot be in video mode to support any of the
> > display C states.
> >
> > Bspec: 49195 (For DC*co DSI transcoders cannot be in video mode)
> > Bspec: 49193 (Hardware does not support DC5 or DC6 with MIPI DSI
> > enabled)
> > Bspec: 49188 (desc of DSI_DCSTATE_CTL talks about cmd mode PM control
> 
> So none of the DC states (except DC6v which the driver doesn't support) are
> supported in DSI video mode and DC3co is supported in command mode.
> The selection between video vs. command mode happens using a VBT flag
> and I can't see anything that would prevent using command mode on XELPD.
> If the support for it is missing, should it be disabled explicitly or at least a
> notice printed that DC states are not yet supported?

Since we haven't enabled and tried dsi cmd mode on xelpd and in DC3co DMC
Would monitor the idleness of the transcoder, until that is enabled, we can disable
Cmd mode for now.
Will send out a patch to disable cmd mode on xelpd, as it would by default depend on
Vbt like you have mentioned above.

Thanks,
Vandita
 
> 
> > v2: Align to the power domain ordering (Jani)
> >     Add bspec references (Imre)
> >
> > Signed-off-by: Vandita Kulkarni <vandita.kulkarni@intel.com>
> > ---
> >  drivers/gpu/drm/i915/display/intel_display_power.c | 1 +
> >  1 file changed, 1 insertion(+)
> >
> > diff --git a/drivers/gpu/drm/i915/display/intel_display_power.c
> > b/drivers/gpu/drm/i915/display/intel_display_power.c
> > index d88da0d0f05a..b989ddd3d023 100644
> > --- a/drivers/gpu/drm/i915/display/intel_display_power.c
> > +++ b/drivers/gpu/drm/i915/display/intel_display_power.c
> > @@ -3106,6 +3106,7 @@ intel_display_power_put_mask_in_set(struct
> drm_i915_private *i915,
> >  	BIT_ULL(POWER_DOMAIN_MODESET) |			\
> >  	BIT_ULL(POWER_DOMAIN_AUX_A) |			\
> >  	BIT_ULL(POWER_DOMAIN_AUX_B) |			\
> > +	BIT_ULL(POWER_DOMAIN_PORT_DSI) |		\
> >  	BIT_ULL(POWER_DOMAIN_INIT))
> >
> >  #define XELPD_AUX_IO_D_XELPD_POWER_DOMAINS
> 	BIT_ULL(POWER_DOMAIN_AUX_D_XELPD)
> > --
> > 2.32.0
> >
Imre Deak Oct. 28, 2021, 3:05 p.m. UTC | #3
On Thu, Oct 28, 2021 at 04:53:22PM +0300, Kulkarni, Vandita wrote:
> > -----Original Message-----
> > From: Deak, Imre <imre.deak@intel.com>
> > Sent: Saturday, October 23, 2021 1:53 AM
> > To: Kulkarni, Vandita <vandita.kulkarni@intel.com>
> > Cc: intel-gfx@lists.freedesktop.org; Nikula, Jani <jani.nikula@intel.com>;
> > Roper, Matthew D <matthew.d.roper@intel.com>;
> > ville.syrjala@linux.intel.com
> > Subject: Re: [V2 3/4] drm/i915/dsi/xelpd: Disable DC states in Video mode
> > 
> > On Tue, Oct 19, 2021 at 08:44:34PM +0530, Vandita Kulkarni wrote:
> > > MIPI DSI transcoder cannot be in video mode to support any of the
> > > display C states.
> > >
> > > Bspec: 49195 (For DC*co DSI transcoders cannot be in video mode)
> > > Bspec: 49193 (Hardware does not support DC5 or DC6 with MIPI DSI
> > > enabled)
> > > Bspec: 49188 (desc of DSI_DCSTATE_CTL talks about cmd mode PM control
> > 
> > So none of the DC states (except DC6v which the driver doesn't support) are
> > supported in DSI video mode and DC3co is supported in command mode.
> > The selection between video vs. command mode happens using a VBT flag
> > and I can't see anything that would prevent using command mode on XELPD.
> > If the support for it is missing, should it be disabled explicitly or at least a
> > notice printed that DC states are not yet supported?
> 
> Since we haven't enabled and tried dsi cmd mode on xelpd and in DC3co
> DMC Would monitor the idleness of the transcoder, until that is
> enabled, we can disable Cmd mode for now.  Will send out a patch to
> disable cmd mode on xelpd, as it would by default depend on Vbt like
> you have mentioned above.

Ok. On this patch:
Reviewed-by: Imre Deak <imre.deak@intel.com>

> 
> Thanks,
> Vandita
>  
> > 
> > > v2: Align to the power domain ordering (Jani)
> > >     Add bspec references (Imre)
> > >
> > > Signed-off-by: Vandita Kulkarni <vandita.kulkarni@intel.com>
> > > ---
> > >  drivers/gpu/drm/i915/display/intel_display_power.c | 1 +
> > >  1 file changed, 1 insertion(+)
> > >
> > > diff --git a/drivers/gpu/drm/i915/display/intel_display_power.c
> > > b/drivers/gpu/drm/i915/display/intel_display_power.c
> > > index d88da0d0f05a..b989ddd3d023 100644
> > > --- a/drivers/gpu/drm/i915/display/intel_display_power.c
> > > +++ b/drivers/gpu/drm/i915/display/intel_display_power.c
> > > @@ -3106,6 +3106,7 @@ intel_display_power_put_mask_in_set(struct
> > drm_i915_private *i915,
> > >  	BIT_ULL(POWER_DOMAIN_MODESET) |			\
> > >  	BIT_ULL(POWER_DOMAIN_AUX_A) |			\
> > >  	BIT_ULL(POWER_DOMAIN_AUX_B) |			\
> > > +	BIT_ULL(POWER_DOMAIN_PORT_DSI) |		\
> > >  	BIT_ULL(POWER_DOMAIN_INIT))
> > >
> > >  #define XELPD_AUX_IO_D_XELPD_POWER_DOMAINS
> > 	BIT_ULL(POWER_DOMAIN_AUX_D_XELPD)
> > > --
> > > 2.32.0
> > >
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/display/intel_display_power.c b/drivers/gpu/drm/i915/display/intel_display_power.c
index d88da0d0f05a..b989ddd3d023 100644
--- a/drivers/gpu/drm/i915/display/intel_display_power.c
+++ b/drivers/gpu/drm/i915/display/intel_display_power.c
@@ -3106,6 +3106,7 @@  intel_display_power_put_mask_in_set(struct drm_i915_private *i915,
 	BIT_ULL(POWER_DOMAIN_MODESET) |			\
 	BIT_ULL(POWER_DOMAIN_AUX_A) |			\
 	BIT_ULL(POWER_DOMAIN_AUX_B) |			\
+	BIT_ULL(POWER_DOMAIN_PORT_DSI) |		\
 	BIT_ULL(POWER_DOMAIN_INIT))
 
 #define XELPD_AUX_IO_D_XELPD_POWER_DOMAINS	BIT_ULL(POWER_DOMAIN_AUX_D_XELPD)