diff mbox series

[6/9] drm/i915: Disable scanout VT-d workaround for TGL+

Message ID 20241009182207.22900-7-ville.syrjala@linux.intel.com (mailing list archive)
State New, archived
Headers show
Series drm/i915: Async flip + compression, and some plane cleanups | expand

Commit Message

Ville Syrjälä Oct. 9, 2024, 6:22 p.m. UTC
From: Ville Syrjälä <ville.syrjala@linux.intel.com>

TGL+ should no longer need any VT-d scanout workarounds.
Don't apply any.

Not 100% sure whether pre-SNB might also suffer from this. The
workaround did originate on SNB but who knows if it was just
never caught before that. Not that I ever managed to enable
VT-d any older hardware. Last time I tried on my ILK it ate
the disk!

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/display/intel_display.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Hogander, Jouni Oct. 24, 2024, 10:50 a.m. UTC | #1
On Wed, 2024-10-09 at 21:22 +0300, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> TGL+ should no longer need any VT-d scanout workarounds.
> Don't apply any.
> 
> Not 100% sure whether pre-SNB might also suffer from this. The
> workaround did originate on SNB but who knows if it was just
> never caught before that. Not that I ever managed to enable
> VT-d any older hardware. Last time I tried on my ILK it ate
> the disk!

Any possibility to have bspec reference or is it just some offline
documentation?

BR,

Jouni Högander
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_display.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c
> b/drivers/gpu/drm/i915/display/intel_display.c
> index 2afd10bbe7b8..7c25060e5f32 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -8694,5 +8694,5 @@ void intel_hpd_poll_fini(struct
> drm_i915_private *i915)
>  
>  bool intel_scanout_needs_vtd_wa(struct drm_i915_private *i915)
>  {
> -       return DISPLAY_VER(i915) >= 6 && i915_vtd_active(i915);
> +       return IS_DISPLAY_VER(i915, 6, 11) && i915_vtd_active(i915);
>  }
Ville Syrjälä Oct. 28, 2024, 3:01 p.m. UTC | #2
On Thu, Oct 24, 2024 at 10:50:06AM +0000, Hogander, Jouni wrote:
> On Wed, 2024-10-09 at 21:22 +0300, Ville Syrjala wrote:
> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > 
> > TGL+ should no longer need any VT-d scanout workarounds.
> > Don't apply any.
> > 
> > Not 100% sure whether pre-SNB might also suffer from this. The
> > workaround did originate on SNB but who knows if it was just
> > never caught before that. Not that I ever managed to enable
> > VT-d any older hardware. Last time I tried on my ILK it ate
> > the disk!
> 
> Any possibility to have bspec reference or is it just some offline
> documentation?

The workaround is documented in the PLANE_SURF registers.
It is there for pre-TGL and gone for TGL+.

> 
> BR,
> 
> Jouni Högander
> > 
> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > ---
> >  drivers/gpu/drm/i915/display/intel_display.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/display/intel_display.c
> > b/drivers/gpu/drm/i915/display/intel_display.c
> > index 2afd10bbe7b8..7c25060e5f32 100644
> > --- a/drivers/gpu/drm/i915/display/intel_display.c
> > +++ b/drivers/gpu/drm/i915/display/intel_display.c
> > @@ -8694,5 +8694,5 @@ void intel_hpd_poll_fini(struct
> > drm_i915_private *i915)
> >  
> >  bool intel_scanout_needs_vtd_wa(struct drm_i915_private *i915)
> >  {
> > -       return DISPLAY_VER(i915) >= 6 && i915_vtd_active(i915);
> > +       return IS_DISPLAY_VER(i915, 6, 11) && i915_vtd_active(i915);
> >  }
>
Hogander, Jouni Nov. 18, 2024, 7:48 a.m. UTC | #3
On Mon, 2024-10-28 at 17:01 +0200, Ville Syrjälä wrote:
> On Thu, Oct 24, 2024 at 10:50:06AM +0000, Hogander, Jouni wrote:
> > On Wed, 2024-10-09 at 21:22 +0300, Ville Syrjala wrote:
> > > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > > 
> > > TGL+ should no longer need any VT-d scanout workarounds.
> > > Don't apply any.
> > > 
> > > Not 100% sure whether pre-SNB might also suffer from this. The
> > > workaround did originate on SNB but who knows if it was just
> > > never caught before that. Not that I ever managed to enable
> > > VT-d any older hardware. Last time I tried on my ILK it ate
> > > the disk!
> > 
> > Any possibility to have bspec reference or is it just some offline
> > documentation?
> 
> The workaround is documented in the PLANE_SURF registers.
> It is there for pre-TGL and gone for TGL+.

Thank you for the pointer:

Reviewed-by: Jouni Högander <jouni.hogander@intel.com>

> 
> > 
> > BR,
> > 
> > Jouni Högander
> > > 
> > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > > ---
> > >  drivers/gpu/drm/i915/display/intel_display.c | 2 +-
> > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > 
> > > diff --git a/drivers/gpu/drm/i915/display/intel_display.c
> > > b/drivers/gpu/drm/i915/display/intel_display.c
> > > index 2afd10bbe7b8..7c25060e5f32 100644
> > > --- a/drivers/gpu/drm/i915/display/intel_display.c
> > > +++ b/drivers/gpu/drm/i915/display/intel_display.c
> > > @@ -8694,5 +8694,5 @@ void intel_hpd_poll_fini(struct
> > > drm_i915_private *i915)
> > >  
> > >  bool intel_scanout_needs_vtd_wa(struct drm_i915_private *i915)
> > >  {
> > > -       return DISPLAY_VER(i915) >= 6 && i915_vtd_active(i915);
> > > +       return IS_DISPLAY_VER(i915, 6, 11) &&
> > > i915_vtd_active(i915);
> > >  }
> > 
>
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index 2afd10bbe7b8..7c25060e5f32 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -8694,5 +8694,5 @@  void intel_hpd_poll_fini(struct drm_i915_private *i915)
 
 bool intel_scanout_needs_vtd_wa(struct drm_i915_private *i915)
 {
-	return DISPLAY_VER(i915) >= 6 && i915_vtd_active(i915);
+	return IS_DISPLAY_VER(i915, 6, 11) && i915_vtd_active(i915);
 }