* [PATCH 01/12] drm/i915/display/ptl: Fill VRR crtc_state timings before other transcoder timings
2024-10-18 20:49 [PATCH 00/12] drm/i915/xe3lpd: ptl display patches Matt Atwood
@ 2024-10-18 20:49 ` Matt Atwood
2024-10-18 23:43 ` Matt Roper
2024-10-18 20:49 ` [PATCH 02/12] drm/i915/ptl: Define IS_PANTHERLAKE macro Matt Atwood
` (13 subsequent siblings)
14 siblings, 1 reply; 30+ messages in thread
From: Matt Atwood @ 2024-10-18 20:49 UTC (permalink / raw)
To: intel-gfx, intel-xe; +Cc: Mitul Golani, Ankit Nautiyal, Matt Atwood
From: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>
In progress to make VRR timing generator as the default timing generator,
rest other timings will be derived based on vrr.vmin and vrr.vmax. Call
intel_vrr_get_config before intel_get_transcoder_timings to accomodate
values getting pre-filled.
Signed-off-by: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>
Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Signed-off-by: Matt Atwood <matthew.s.atwood@intel.com>
---
drivers/gpu/drm/i915/display/intel_display.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index ef1436146325..01466611eebe 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -4134,13 +4134,13 @@ static bool hsw_get_pipe_config(struct intel_crtc *crtc,
intel_joiner_get_config(pipe_config);
intel_dsc_get_config(pipe_config);
+ if (HAS_VRR(dev_priv) && !transcoder_is_dsi(pipe_config->cpu_transcoder))
+ intel_vrr_get_config(pipe_config);
+
if (!transcoder_is_dsi(pipe_config->cpu_transcoder) ||
DISPLAY_VER(dev_priv) >= 11)
intel_get_transcoder_timings(crtc, pipe_config);
- if (HAS_VRR(dev_priv) && !transcoder_is_dsi(pipe_config->cpu_transcoder))
- intel_vrr_get_config(pipe_config);
-
intel_get_pipe_src_size(crtc, pipe_config);
if (IS_HASWELL(dev_priv)) {
--
2.45.0
^ permalink raw reply related [flat|nested] 30+ messages in thread* Re: [PATCH 01/12] drm/i915/display/ptl: Fill VRR crtc_state timings before other transcoder timings
2024-10-18 20:49 ` [PATCH 01/12] drm/i915/display/ptl: Fill VRR crtc_state timings before other transcoder timings Matt Atwood
@ 2024-10-18 23:43 ` Matt Roper
2024-10-22 4:37 ` Golani, Mitulkumar Ajitkumar
0 siblings, 1 reply; 30+ messages in thread
From: Matt Roper @ 2024-10-18 23:43 UTC (permalink / raw)
To: Matt Atwood; +Cc: intel-gfx, intel-xe, Mitul Golani, Ankit Nautiyal
On Fri, Oct 18, 2024 at 01:49:30PM -0700, Matt Atwood wrote:
> From: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>
>
> In progress to make VRR timing generator as the default timing generator,
> rest other timings will be derived based on vrr.vmin and vrr.vmax. Call
I'm having trouble following what this first sentence is trying to say;
I think it might be missing some words? Can you reword it to be more
clear?
We may want to elaborate more on what "VRR timing generator as the
default timing generator" means and how/why that's happening.
Matt
> intel_vrr_get_config before intel_get_transcoder_timings to accomodate
> values getting pre-filled.
>
> Signed-off-by: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>
> Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
> Signed-off-by: Matt Atwood <matthew.s.atwood@intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_display.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> index ef1436146325..01466611eebe 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -4134,13 +4134,13 @@ static bool hsw_get_pipe_config(struct intel_crtc *crtc,
> intel_joiner_get_config(pipe_config);
> intel_dsc_get_config(pipe_config);
>
> + if (HAS_VRR(dev_priv) && !transcoder_is_dsi(pipe_config->cpu_transcoder))
> + intel_vrr_get_config(pipe_config);
> +
> if (!transcoder_is_dsi(pipe_config->cpu_transcoder) ||
> DISPLAY_VER(dev_priv) >= 11)
> intel_get_transcoder_timings(crtc, pipe_config);
>
> - if (HAS_VRR(dev_priv) && !transcoder_is_dsi(pipe_config->cpu_transcoder))
> - intel_vrr_get_config(pipe_config);
> -
> intel_get_pipe_src_size(crtc, pipe_config);
>
> if (IS_HASWELL(dev_priv)) {
> --
> 2.45.0
>
--
Matt Roper
Graphics Software Engineer
Linux GPU Platform Enablement
Intel Corporation
^ permalink raw reply [flat|nested] 30+ messages in thread* RE: [PATCH 01/12] drm/i915/display/ptl: Fill VRR crtc_state timings before other transcoder timings
2024-10-18 23:43 ` Matt Roper
@ 2024-10-22 4:37 ` Golani, Mitulkumar Ajitkumar
0 siblings, 0 replies; 30+ messages in thread
From: Golani, Mitulkumar Ajitkumar @ 2024-10-22 4:37 UTC (permalink / raw)
To: Roper, Matthew D, Atwood, Matthew S
Cc: intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org,
Nautiyal, Ankit K
> -----Original Message-----
> From: Roper, Matthew D <matthew.d.roper@intel.com>
> Sent: 19 October 2024 05:14
> To: Atwood, Matthew S <matthew.s.atwood@intel.com>
> Cc: intel-gfx@lists.freedesktop.org; intel-xe@lists.freedesktop.org; Golani,
> Mitulkumar Ajitkumar <mitulkumar.ajitkumar.golani@intel.com>; Nautiyal,
> Ankit K <ankit.k.nautiyal@intel.com>
> Subject: Re: [PATCH 01/12] drm/i915/display/ptl: Fill VRR crtc_state timings
> before other transcoder timings
>
> On Fri, Oct 18, 2024 at 01:49:30PM -0700, Matt Atwood wrote:
> > From: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>
> >
> > In progress to make VRR timing generator as the default timing
> > generator, rest other timings will be derived based on vrr.vmin and
> > vrr.vmax. Call
>
> I'm having trouble following what this first sentence is trying to say; I think it
> might be missing some words? Can you reword it to be more clear?
>
> We may want to elaborate more on what "VRR timing generator as the
> default timing generator" means and how/why that's happening.
>
>
> Matt
Hello Matt,
When using VRR timing generator and reading back transcoder timing, purpose is to source correct vtotal value based on vrr panel timings.
That thought put into calling intel_vrr_get_config before intel_get_transcoder_timings. We are planning to add this patch to separate
VRR timing generator series, I will tweak the commit message during that.
- Mitul
>
> > intel_vrr_get_config before intel_get_transcoder_timings to accomodate
> > values getting pre-filled.
> >
> > Signed-off-by: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>
> > Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
> > Signed-off-by: Matt Atwood <matthew.s.atwood@intel.com>
> > ---
> > drivers/gpu/drm/i915/display/intel_display.c | 6 +++---
> > 1 file changed, 3 insertions(+), 3 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/display/intel_display.c
> > b/drivers/gpu/drm/i915/display/intel_display.c
> > index ef1436146325..01466611eebe 100644
> > --- a/drivers/gpu/drm/i915/display/intel_display.c
> > +++ b/drivers/gpu/drm/i915/display/intel_display.c
> > @@ -4134,13 +4134,13 @@ static bool hsw_get_pipe_config(struct
> intel_crtc *crtc,
> > intel_joiner_get_config(pipe_config);
> > intel_dsc_get_config(pipe_config);
> >
> > + if (HAS_VRR(dev_priv) && !transcoder_is_dsi(pipe_config-
> >cpu_transcoder))
> > + intel_vrr_get_config(pipe_config);
> > +
> > if (!transcoder_is_dsi(pipe_config->cpu_transcoder) ||
> > DISPLAY_VER(dev_priv) >= 11)
> > intel_get_transcoder_timings(crtc, pipe_config);
> >
> > - if (HAS_VRR(dev_priv) && !transcoder_is_dsi(pipe_config-
> >cpu_transcoder))
> > - intel_vrr_get_config(pipe_config);
> > -
> > intel_get_pipe_src_size(crtc, pipe_config);
> >
> > if (IS_HASWELL(dev_priv)) {
> > --
> > 2.45.0
> >
>
> --
> Matt Roper
> Graphics Software Engineer
> Linux GPU Platform Enablement
> Intel Corporation
^ permalink raw reply [flat|nested] 30+ messages in thread
* [PATCH 02/12] drm/i915/ptl: Define IS_PANTHERLAKE macro
2024-10-18 20:49 [PATCH 00/12] drm/i915/xe3lpd: ptl display patches Matt Atwood
2024-10-18 20:49 ` [PATCH 01/12] drm/i915/display/ptl: Fill VRR crtc_state timings before other transcoder timings Matt Atwood
@ 2024-10-18 20:49 ` Matt Atwood
2024-10-18 23:45 ` Matt Roper
2024-10-18 20:49 ` [PATCH 03/12] drm/i915/cx0: Extend C10 check to PTL Matt Atwood
` (12 subsequent siblings)
14 siblings, 1 reply; 30+ messages in thread
From: Matt Atwood @ 2024-10-18 20:49 UTC (permalink / raw)
To: intel-gfx, intel-xe; +Cc: Dnyaneshwar Bhadane, Matt Atwood
From: Dnyaneshwar Bhadane <dnyaneshwar.bhadane@intel.com>
Common display code requires IS_PANTHERLAKE macro.
Define the macro and set 0 as PTL is no longer support for i915.
Signed-off-by: Dnyaneshwar Bhadane <dnyaneshwar.bhadane@intel.com>
Signed-off-by: Matt Atwood <matthew.s.atwood@intel.com>
---
drivers/gpu/drm/i915/i915_drv.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index a66e5bb078cf..ca1ab5931e28 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -538,6 +538,7 @@ IS_SUBPLATFORM(const struct drm_i915_private *i915,
*/
#define IS_LUNARLAKE(i915) (0 && i915)
#define IS_BATTLEMAGE(i915) (0 && i915)
+#define IS_PANTHERLAKE(i915) (0 && i915)
#define IS_ARROWLAKE(i915) \
IS_SUBPLATFORM(i915, INTEL_METEORLAKE, INTEL_SUBPLATFORM_ARL)
--
2.45.0
^ permalink raw reply related [flat|nested] 30+ messages in thread* Re: [PATCH 02/12] drm/i915/ptl: Define IS_PANTHERLAKE macro
2024-10-18 20:49 ` [PATCH 02/12] drm/i915/ptl: Define IS_PANTHERLAKE macro Matt Atwood
@ 2024-10-18 23:45 ` Matt Roper
0 siblings, 0 replies; 30+ messages in thread
From: Matt Roper @ 2024-10-18 23:45 UTC (permalink / raw)
To: Matt Atwood; +Cc: intel-gfx, intel-xe, Dnyaneshwar Bhadane
On Fri, Oct 18, 2024 at 01:49:31PM -0700, Matt Atwood wrote:
> From: Dnyaneshwar Bhadane <dnyaneshwar.bhadane@intel.com>
>
> Common display code requires IS_PANTHERLAKE macro.
> Define the macro and set 0 as PTL is no longer support for i915.
>
> Signed-off-by: Dnyaneshwar Bhadane <dnyaneshwar.bhadane@intel.com>
> Signed-off-by: Matt Atwood <matthew.s.atwood@intel.com>
Jani is refactoring this platform identification stuff right now so this
patch might wind up getting dropped if his work lands first, but given
the pre-refactor codebase today,
Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
> ---
> drivers/gpu/drm/i915/i915_drv.h | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index a66e5bb078cf..ca1ab5931e28 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -538,6 +538,7 @@ IS_SUBPLATFORM(const struct drm_i915_private *i915,
> */
> #define IS_LUNARLAKE(i915) (0 && i915)
> #define IS_BATTLEMAGE(i915) (0 && i915)
> +#define IS_PANTHERLAKE(i915) (0 && i915)
>
> #define IS_ARROWLAKE(i915) \
> IS_SUBPLATFORM(i915, INTEL_METEORLAKE, INTEL_SUBPLATFORM_ARL)
> --
> 2.45.0
>
--
Matt Roper
Graphics Software Engineer
Linux GPU Platform Enablement
Intel Corporation
^ permalink raw reply [flat|nested] 30+ messages in thread
* [PATCH 03/12] drm/i915/cx0: Extend C10 check to PTL
2024-10-18 20:49 [PATCH 00/12] drm/i915/xe3lpd: ptl display patches Matt Atwood
2024-10-18 20:49 ` [PATCH 01/12] drm/i915/display/ptl: Fill VRR crtc_state timings before other transcoder timings Matt Atwood
2024-10-18 20:49 ` [PATCH 02/12] drm/i915/ptl: Define IS_PANTHERLAKE macro Matt Atwood
@ 2024-10-18 20:49 ` Matt Atwood
2024-10-21 11:58 ` Gustavo Sousa
2024-10-18 20:49 ` [PATCH 04/12] drm/i915/ptl: Move async flip bit to PLANE_SURF register Matt Atwood
` (11 subsequent siblings)
14 siblings, 1 reply; 30+ messages in thread
From: Matt Atwood @ 2024-10-18 20:49 UTC (permalink / raw)
To: intel-gfx, intel-xe; +Cc: Dnyaneshwar Bhadane, Matt Atwood
From: Dnyaneshwar Bhadane <dnyaneshwar.bhadane@intel.com>
When deciding the type of the phy, Add PTL support to make
sure the correct path is taken for selection of C10 PHY.
Only port A is connected C10 PHY for Pantherlake.
Bspec: 72571
Signed-off-by: Dnyaneshwar Bhadane <dnyaneshwar.bhadane@intel.com>
Signed-off-by: Matt Atwood <matthew.s.atwood@intel.com>
---
drivers/gpu/drm/i915/display/intel_cx0_phy.c | 9 +++++++--
| 1 +
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_cx0_phy.c b/drivers/gpu/drm/i915/display/intel_cx0_phy.c
index 13a99f494680..73a151c81706 100644
--- a/drivers/gpu/drm/i915/display/intel_cx0_phy.c
+++ b/drivers/gpu/drm/i915/display/intel_cx0_phy.c
@@ -34,6 +34,9 @@ bool intel_encoder_is_c10phy(struct intel_encoder *encoder)
struct drm_i915_private *i915 = to_i915(encoder->base.dev);
enum phy phy = intel_encoder_to_phy(encoder);
+ if (IS_PANTHERLAKE(i915) && phy == PHY_A)
+ return true;
+
if ((IS_LUNARLAKE(i915) || IS_METEORLAKE(i915)) && phy < PHY_C)
return true;
@@ -221,7 +224,8 @@ static int __intel_cx0_read_once(struct intel_encoder *encoder,
* down and let the message bus to end up
* in a known state
*/
- intel_cx0_bus_reset(encoder, lane);
+ if (DISPLAY_VER(i915) < 30)
+ intel_cx0_bus_reset(encoder, lane);
return REG_FIELD_GET(XELPDP_PORT_P2M_DATA_MASK, val);
}
@@ -310,7 +314,8 @@ static int __intel_cx0_write_once(struct intel_encoder *encoder,
* down and let the message bus to end up
* in a known state
*/
- intel_cx0_bus_reset(encoder, lane);
+ if (DISPLAY_VER(i915) < 30)
+ intel_cx0_bus_reset(encoder, lane);
return 0;
}
--git a/drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h b/drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h
index b7041b578e5e..bd8c3de57dcd 100644
--- a/drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h
+++ b/drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h
@@ -67,6 +67,7 @@ static inline struct drm_i915_private *to_i915(const struct drm_device *dev)
#define IS_METEORLAKE(dev_priv) IS_PLATFORM(dev_priv, XE_METEORLAKE)
#define IS_LUNARLAKE(dev_priv) IS_PLATFORM(dev_priv, XE_LUNARLAKE)
#define IS_BATTLEMAGE(dev_priv) IS_PLATFORM(dev_priv, XE_BATTLEMAGE)
+#define IS_PANTHERLAKE(dev_priv) IS_PLATFORM(dev_priv, XE_PANTHERLAKE)
#define IS_HASWELL_ULT(dev_priv) (dev_priv && 0)
#define IS_BROADWELL_ULT(dev_priv) (dev_priv && 0)
--
2.45.0
^ permalink raw reply related [flat|nested] 30+ messages in thread* Re: [PATCH 03/12] drm/i915/cx0: Extend C10 check to PTL
2024-10-18 20:49 ` [PATCH 03/12] drm/i915/cx0: Extend C10 check to PTL Matt Atwood
@ 2024-10-21 11:58 ` Gustavo Sousa
2024-10-21 12:02 ` Jani Nikula
0 siblings, 1 reply; 30+ messages in thread
From: Gustavo Sousa @ 2024-10-21 11:58 UTC (permalink / raw)
To: Matt Atwood, intel-gfx, intel-xe; +Cc: Dnyaneshwar Bhadane, Matt Atwood
Quoting Matt Atwood (2024-10-18 17:49:32-03:00)
>From: Dnyaneshwar Bhadane <dnyaneshwar.bhadane@intel.com>
>
>When deciding the type of the phy, Add PTL support to make
s/Add/add/
>sure the correct path is taken for selection of C10 PHY.
>Only port A is connected C10 PHY for Pantherlake.
>
>Bspec: 72571
>Signed-off-by: Dnyaneshwar Bhadane <dnyaneshwar.bhadane@intel.com>
>Signed-off-by: Matt Atwood <matthew.s.atwood@intel.com>
>---
> drivers/gpu/drm/i915/display/intel_cx0_phy.c | 9 +++++++--
> drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h | 1 +
> 2 files changed, 8 insertions(+), 2 deletions(-)
>
>diff --git a/drivers/gpu/drm/i915/display/intel_cx0_phy.c b/drivers/gpu/drm/i915/display/intel_cx0_phy.c
>index 13a99f494680..73a151c81706 100644
>--- a/drivers/gpu/drm/i915/display/intel_cx0_phy.c
>+++ b/drivers/gpu/drm/i915/display/intel_cx0_phy.c
>@@ -34,6 +34,9 @@ bool intel_encoder_is_c10phy(struct intel_encoder *encoder)
> struct drm_i915_private *i915 = to_i915(encoder->base.dev);
> enum phy phy = intel_encoder_to_phy(encoder);
>
>+ if (IS_PANTHERLAKE(i915) && phy == PHY_A)
>+ return true;
>+
> if ((IS_LUNARLAKE(i915) || IS_METEORLAKE(i915)) && phy < PHY_C)
> return true;
>
>@@ -221,7 +224,8 @@ static int __intel_cx0_read_once(struct intel_encoder *encoder,
> * down and let the message bus to end up
> * in a known state
> */
>- intel_cx0_bus_reset(encoder, lane);
>+ if (DISPLAY_VER(i915) < 30)
>+ intel_cx0_bus_reset(encoder, lane);
I think skipping the call to intel_cx0_bus_reset() should be a patch on
its own.
With this patch containing only the change to intel_encoder_is_c10phy(),
Reviewed-by: Gustavo Sousa <gustavo.sousa@intel.com>
--
Gustavo Sousa
>
> return REG_FIELD_GET(XELPDP_PORT_P2M_DATA_MASK, val);
> }
>@@ -310,7 +314,8 @@ static int __intel_cx0_write_once(struct intel_encoder *encoder,
> * down and let the message bus to end up
> * in a known state
> */
>- intel_cx0_bus_reset(encoder, lane);
>+ if (DISPLAY_VER(i915) < 30)
>+ intel_cx0_bus_reset(encoder, lane);
>
> return 0;
> }
>diff --git a/drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h b/drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h
>index b7041b578e5e..bd8c3de57dcd 100644
>--- a/drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h
>+++ b/drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h
>@@ -67,6 +67,7 @@ static inline struct drm_i915_private *to_i915(const struct drm_device *dev)
> #define IS_METEORLAKE(dev_priv) IS_PLATFORM(dev_priv, XE_METEORLAKE)
> #define IS_LUNARLAKE(dev_priv) IS_PLATFORM(dev_priv, XE_LUNARLAKE)
> #define IS_BATTLEMAGE(dev_priv) IS_PLATFORM(dev_priv, XE_BATTLEMAGE)
>+#define IS_PANTHERLAKE(dev_priv) IS_PLATFORM(dev_priv, XE_PANTHERLAKE)
>
> #define IS_HASWELL_ULT(dev_priv) (dev_priv && 0)
> #define IS_BROADWELL_ULT(dev_priv) (dev_priv && 0)
>--
>2.45.0
>
^ permalink raw reply [flat|nested] 30+ messages in thread* Re: [PATCH 03/12] drm/i915/cx0: Extend C10 check to PTL
2024-10-21 11:58 ` Gustavo Sousa
@ 2024-10-21 12:02 ` Jani Nikula
0 siblings, 0 replies; 30+ messages in thread
From: Jani Nikula @ 2024-10-21 12:02 UTC (permalink / raw)
To: Gustavo Sousa, Matt Atwood, intel-gfx, intel-xe
Cc: Dnyaneshwar Bhadane, Matt Atwood
On Mon, 21 Oct 2024, Gustavo Sousa <gustavo.sousa@intel.com> wrote:
> Quoting Matt Atwood (2024-10-18 17:49:32-03:00)
>>From: Dnyaneshwar Bhadane <dnyaneshwar.bhadane@intel.com>
>>
>>When deciding the type of the phy, Add PTL support to make
>
> s/Add/add/
>
>>sure the correct path is taken for selection of C10 PHY.
>>Only port A is connected C10 PHY for Pantherlake.
>>
>>Bspec: 72571
>>Signed-off-by: Dnyaneshwar Bhadane <dnyaneshwar.bhadane@intel.com>
>>Signed-off-by: Matt Atwood <matthew.s.atwood@intel.com>
>>---
>> drivers/gpu/drm/i915/display/intel_cx0_phy.c | 9 +++++++--
>> drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h | 1 +
>> 2 files changed, 8 insertions(+), 2 deletions(-)
>>
>>diff --git a/drivers/gpu/drm/i915/display/intel_cx0_phy.c b/drivers/gpu/drm/i915/display/intel_cx0_phy.c
>>index 13a99f494680..73a151c81706 100644
>>--- a/drivers/gpu/drm/i915/display/intel_cx0_phy.c
>>+++ b/drivers/gpu/drm/i915/display/intel_cx0_phy.c
>>@@ -34,6 +34,9 @@ bool intel_encoder_is_c10phy(struct intel_encoder *encoder)
>> struct drm_i915_private *i915 = to_i915(encoder->base.dev);
>> enum phy phy = intel_encoder_to_phy(encoder);
>>
>>+ if (IS_PANTHERLAKE(i915) && phy == PHY_A)
>>+ return true;
>>+
>> if ((IS_LUNARLAKE(i915) || IS_METEORLAKE(i915)) && phy < PHY_C)
>> return true;
>>
>>@@ -221,7 +224,8 @@ static int __intel_cx0_read_once(struct intel_encoder *encoder,
>> * down and let the message bus to end up
>> * in a known state
>> */
>>- intel_cx0_bus_reset(encoder, lane);
>>+ if (DISPLAY_VER(i915) < 30)
>>+ intel_cx0_bus_reset(encoder, lane);
>
> I think skipping the call to intel_cx0_bus_reset() should be a patch on
> its own.
Moreover, the commit message fails to explain *why* it's skipped.
BR,
Jani.
>
> With this patch containing only the change to intel_encoder_is_c10phy(),
>
> Reviewed-by: Gustavo Sousa <gustavo.sousa@intel.com>
>
> --
> Gustavo Sousa
>
>>
>> return REG_FIELD_GET(XELPDP_PORT_P2M_DATA_MASK, val);
>> }
>>@@ -310,7 +314,8 @@ static int __intel_cx0_write_once(struct intel_encoder *encoder,
>> * down and let the message bus to end up
>> * in a known state
>> */
>>- intel_cx0_bus_reset(encoder, lane);
>>+ if (DISPLAY_VER(i915) < 30)
>>+ intel_cx0_bus_reset(encoder, lane);
>>
>> return 0;
>> }
>>diff --git a/drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h b/drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h
>>index b7041b578e5e..bd8c3de57dcd 100644
>>--- a/drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h
>>+++ b/drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h
>>@@ -67,6 +67,7 @@ static inline struct drm_i915_private *to_i915(const struct drm_device *dev)
>> #define IS_METEORLAKE(dev_priv) IS_PLATFORM(dev_priv, XE_METEORLAKE)
>> #define IS_LUNARLAKE(dev_priv) IS_PLATFORM(dev_priv, XE_LUNARLAKE)
>> #define IS_BATTLEMAGE(dev_priv) IS_PLATFORM(dev_priv, XE_BATTLEMAGE)
>>+#define IS_PANTHERLAKE(dev_priv) IS_PLATFORM(dev_priv, XE_PANTHERLAKE)
>>
>> #define IS_HASWELL_ULT(dev_priv) (dev_priv && 0)
>> #define IS_BROADWELL_ULT(dev_priv) (dev_priv && 0)
>>--
>>2.45.0
>>
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 30+ messages in thread
* [PATCH 04/12] drm/i915/ptl: Move async flip bit to PLANE_SURF register
2024-10-18 20:49 [PATCH 00/12] drm/i915/xe3lpd: ptl display patches Matt Atwood
` (2 preceding siblings ...)
2024-10-18 20:49 ` [PATCH 03/12] drm/i915/cx0: Extend C10 check to PTL Matt Atwood
@ 2024-10-18 20:49 ` Matt Atwood
2024-10-18 23:49 ` Matt Roper
2024-10-18 20:49 ` [PATCH 05/12] drm/i915/xe3: Underrun recovery does not exist post Xe2 Matt Atwood
` (10 subsequent siblings)
14 siblings, 1 reply; 30+ messages in thread
From: Matt Atwood @ 2024-10-18 20:49 UTC (permalink / raw)
To: intel-gfx, intel-xe; +Cc: Dnyaneshwar Bhadane, Matt Atwood
From: Dnyaneshwar Bhadane <dnyaneshwar.bhadane@intel.com>
The async flip moved from PLANE_CTL to PLANE_SURF for PTL.
Bspec: 69853,69878
Signed-off-by: Dnyaneshwar Bhadane <dnyaneshwar.bhadane@intel.com>
Signed-off-by: Matt Atwood <matthew.s.atwood@intel.com>
---
drivers/gpu/drm/i915/display/skl_universal_plane.c | 13 +++++++++----
.../gpu/drm/i915/display/skl_universal_plane_regs.h | 1 +
2 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c b/drivers/gpu/drm/i915/display/skl_universal_plane.c
index a0a7ed01415a..da974f4a25bd 100644
--- a/drivers/gpu/drm/i915/display/skl_universal_plane.c
+++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c
@@ -1567,17 +1567,22 @@ skl_plane_async_flip(struct intel_dsb *dsb,
struct intel_display *display = to_intel_display(plane->base.dev);
enum plane_id plane_id = plane->id;
enum pipe pipe = plane->pipe;
- u32 plane_ctl = plane_state->ctl;
+ u32 plane_ctl = plane_state->ctl, plane_surf;
plane_ctl |= skl_plane_ctl_crtc(crtc_state);
+ plane_surf = skl_plane_surf(plane_state, 0);
- if (async_flip)
- plane_ctl |= PLANE_CTL_ASYNC_FLIP;
+ if (async_flip){
+ if (DISPLAY_VER(display) >= 30)
+ plane_surf |= PLANE_SURF_ASYNC_UPDATE;
+ else
+ plane_ctl |= PLANE_CTL_ASYNC_FLIP;
+ }
intel_de_write_dsb(display, dsb, PLANE_CTL(pipe, plane_id),
plane_ctl);
intel_de_write_dsb(display, dsb, PLANE_SURF(pipe, plane_id),
- skl_plane_surf(plane_state, 0));
+ plane_surf);
}
static bool intel_format_is_p01x(u32 format)
diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane_regs.h b/drivers/gpu/drm/i915/display/skl_universal_plane_regs.h
index 4ddcd7d46bbd..ff31a00d511e 100644
--- a/drivers/gpu/drm/i915/display/skl_universal_plane_regs.h
+++ b/drivers/gpu/drm/i915/display/skl_universal_plane_regs.h
@@ -159,6 +159,7 @@
_PLANE_SURF_2_A, _PLANE_SURF_2_B)
#define PLANE_SURF_ADDR_MASK REG_GENMASK(31, 12)
#define PLANE_SURF_DECRYPT REG_BIT(2)
+#define PLANE_SURF_ASYNC_UPDATE REG_BIT(0)
#define _PLANE_KEYMAX_1_A 0x701a0
#define _PLANE_KEYMAX_2_A 0x702a0
--
2.45.0
^ permalink raw reply related [flat|nested] 30+ messages in thread* Re: [PATCH 04/12] drm/i915/ptl: Move async flip bit to PLANE_SURF register
2024-10-18 20:49 ` [PATCH 04/12] drm/i915/ptl: Move async flip bit to PLANE_SURF register Matt Atwood
@ 2024-10-18 23:49 ` Matt Roper
0 siblings, 0 replies; 30+ messages in thread
From: Matt Roper @ 2024-10-18 23:49 UTC (permalink / raw)
To: Matt Atwood; +Cc: intel-gfx, intel-xe, Dnyaneshwar Bhadane
On Fri, Oct 18, 2024 at 01:49:33PM -0700, Matt Atwood wrote:
> From: Dnyaneshwar Bhadane <dnyaneshwar.bhadane@intel.com>
>
> The async flip moved from PLANE_CTL to PLANE_SURF for PTL.
The subject and commit message should be referring to Xe3_LPD rather
than Panther Lake. This is a change in the display IP and if other
non-PTL platforms eventually re-use this IP, the change will apply to
them as well.
> Bspec: 69853,69878
>
No blank line here. We write bspec references as a git trailer.
Matt
> Signed-off-by: Dnyaneshwar Bhadane <dnyaneshwar.bhadane@intel.com>
> Signed-off-by: Matt Atwood <matthew.s.atwood@intel.com>
> ---
> drivers/gpu/drm/i915/display/skl_universal_plane.c | 13 +++++++++----
> .../gpu/drm/i915/display/skl_universal_plane_regs.h | 1 +
> 2 files changed, 10 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c b/drivers/gpu/drm/i915/display/skl_universal_plane.c
> index a0a7ed01415a..da974f4a25bd 100644
> --- a/drivers/gpu/drm/i915/display/skl_universal_plane.c
> +++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c
> @@ -1567,17 +1567,22 @@ skl_plane_async_flip(struct intel_dsb *dsb,
> struct intel_display *display = to_intel_display(plane->base.dev);
> enum plane_id plane_id = plane->id;
> enum pipe pipe = plane->pipe;
> - u32 plane_ctl = plane_state->ctl;
> + u32 plane_ctl = plane_state->ctl, plane_surf;
>
> plane_ctl |= skl_plane_ctl_crtc(crtc_state);
> + plane_surf = skl_plane_surf(plane_state, 0);
>
> - if (async_flip)
> - plane_ctl |= PLANE_CTL_ASYNC_FLIP;
> + if (async_flip){
> + if (DISPLAY_VER(display) >= 30)
> + plane_surf |= PLANE_SURF_ASYNC_UPDATE;
> + else
> + plane_ctl |= PLANE_CTL_ASYNC_FLIP;
> + }
>
> intel_de_write_dsb(display, dsb, PLANE_CTL(pipe, plane_id),
> plane_ctl);
> intel_de_write_dsb(display, dsb, PLANE_SURF(pipe, plane_id),
> - skl_plane_surf(plane_state, 0));
> + plane_surf);
> }
>
> static bool intel_format_is_p01x(u32 format)
> diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane_regs.h b/drivers/gpu/drm/i915/display/skl_universal_plane_regs.h
> index 4ddcd7d46bbd..ff31a00d511e 100644
> --- a/drivers/gpu/drm/i915/display/skl_universal_plane_regs.h
> +++ b/drivers/gpu/drm/i915/display/skl_universal_plane_regs.h
> @@ -159,6 +159,7 @@
> _PLANE_SURF_2_A, _PLANE_SURF_2_B)
> #define PLANE_SURF_ADDR_MASK REG_GENMASK(31, 12)
> #define PLANE_SURF_DECRYPT REG_BIT(2)
> +#define PLANE_SURF_ASYNC_UPDATE REG_BIT(0)
>
> #define _PLANE_KEYMAX_1_A 0x701a0
> #define _PLANE_KEYMAX_2_A 0x702a0
> --
> 2.45.0
>
--
Matt Roper
Graphics Software Engineer
Linux GPU Platform Enablement
Intel Corporation
^ permalink raw reply [flat|nested] 30+ messages in thread
* [PATCH 05/12] drm/i915/xe3: Underrun recovery does not exist post Xe2
2024-10-18 20:49 [PATCH 00/12] drm/i915/xe3lpd: ptl display patches Matt Atwood
` (3 preceding siblings ...)
2024-10-18 20:49 ` [PATCH 04/12] drm/i915/ptl: Move async flip bit to PLANE_SURF register Matt Atwood
@ 2024-10-18 20:49 ` Matt Atwood
2024-10-18 23:53 ` Matt Roper
2024-10-18 20:49 ` [PATCH 06/12] drm/i915/display/xe3: disable x-tiled framebuffers Matt Atwood
` (9 subsequent siblings)
14 siblings, 1 reply; 30+ messages in thread
From: Matt Atwood @ 2024-10-18 20:49 UTC (permalink / raw)
To: intel-gfx, intel-xe; +Cc: Ravi Kumar Vodapalli, Matt Atwood
From: Ravi Kumar Vodapalli <ravi.kumar.vodapalli@intel.com>
From platforms xe3 Underrun recovery does not exist
BSpec: 68849
Signed-off-by: Ravi Kumar Vodapalli <ravi.kumar.vodapalli@intel.com>
Signed-off-by: Matt Atwood <matthew.s.atwood@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 01466611eebe..dad415650b40 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -861,7 +861,7 @@ static void icl_set_pipe_chicken(const struct intel_crtc_state *crtc_state)
*/
if (IS_DG2(dev_priv))
tmp &= ~UNDERRUN_RECOVERY_ENABLE_DG2;
- else if (DISPLAY_VER(dev_priv) >= 13)
+ else if (IS_DISPLAY_VER(dev_priv, IP_VER(13, 0), IP_VER(20, 0)))
tmp |= UNDERRUN_RECOVERY_DISABLE_ADLP;
/* Wa_14010547955:dg2 */
--
2.45.0
^ permalink raw reply related [flat|nested] 30+ messages in thread* Re: [PATCH 05/12] drm/i915/xe3: Underrun recovery does not exist post Xe2
2024-10-18 20:49 ` [PATCH 05/12] drm/i915/xe3: Underrun recovery does not exist post Xe2 Matt Atwood
@ 2024-10-18 23:53 ` Matt Roper
0 siblings, 0 replies; 30+ messages in thread
From: Matt Roper @ 2024-10-18 23:53 UTC (permalink / raw)
To: Matt Atwood; +Cc: intel-gfx, intel-xe, Ravi Kumar Vodapalli
On Fri, Oct 18, 2024 at 01:49:34PM -0700, Matt Atwood wrote:
> From: Ravi Kumar Vodapalli <ravi.kumar.vodapalli@intel.com>
>
> From platforms xe3 Underrun recovery does not exist
>
> BSpec: 68849
> Signed-off-by: Ravi Kumar Vodapalli <ravi.kumar.vodapalli@intel.com>
> Signed-off-by: Matt Atwood <matthew.s.atwood@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 01466611eebe..dad415650b40 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -861,7 +861,7 @@ static void icl_set_pipe_chicken(const struct intel_crtc_state *crtc_state)
> */
> if (IS_DG2(dev_priv))
> tmp &= ~UNDERRUN_RECOVERY_ENABLE_DG2;
> - else if (DISPLAY_VER(dev_priv) >= 13)
> + else if (IS_DISPLAY_VER(dev_priv, IP_VER(13, 0), IP_VER(20, 0)))
I don't know if we're ready to assume that there won't be any more Xe2
platforms showing up that have their own display ID's in the 20 range.
It might be best to just write this as
else if (DISPLAY_VER(dev_priv) >= 13 &&
DISPLAY_VER(dev_priv) < 30)
so that we won't have to remember to change this is some 21.0 or 20.1 or
whatever shows up.
Matt
> tmp |= UNDERRUN_RECOVERY_DISABLE_ADLP;
>
> /* Wa_14010547955:dg2 */
> --
> 2.45.0
>
--
Matt Roper
Graphics Software Engineer
Linux GPU Platform Enablement
Intel Corporation
^ permalink raw reply [flat|nested] 30+ messages in thread
* [PATCH 06/12] drm/i915/display/xe3: disable x-tiled framebuffers
2024-10-18 20:49 [PATCH 00/12] drm/i915/xe3lpd: ptl display patches Matt Atwood
` (4 preceding siblings ...)
2024-10-18 20:49 ` [PATCH 05/12] drm/i915/xe3: Underrun recovery does not exist post Xe2 Matt Atwood
@ 2024-10-18 20:49 ` Matt Atwood
2024-10-21 12:25 ` Gustavo Sousa
2024-10-18 20:49 ` [PATCH 07/12] drm/i915/xe3lpd: Skip disabling VRR during modeset disable Matt Atwood
` (8 subsequent siblings)
14 siblings, 1 reply; 30+ messages in thread
From: Matt Atwood @ 2024-10-18 20:49 UTC (permalink / raw)
To: intel-gfx, intel-xe; +Cc: Heikkila, Juha-pekka, Heikkila, Matt Atwood
From: "Heikkila, Juha-pekka" <juha-pekka.heikkila@intel.com>
Xe3 has no more support for x-tile on display.
Signed-off-by: Heikkila, Juha-pekka <juha-pekka.heikkila@intel.com>
Signed-off-by: Matt Atwood <matthew.s.atwood@intel.com>
---
drivers/gpu/drm/i915/display/intel_fb.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/i915/display/intel_fb.c b/drivers/gpu/drm/i915/display/intel_fb.c
index a7b4cf8b6d50..2075541bcdf4 100644
--- a/drivers/gpu/drm/i915/display/intel_fb.c
+++ b/drivers/gpu/drm/i915/display/intel_fb.c
@@ -349,7 +349,7 @@ static const struct intel_modifier_desc intel_modifiers[] = {
.plane_caps = INTEL_PLANE_CAP_TILING_Y,
}, {
.modifier = I915_FORMAT_MOD_X_TILED,
- .display_ver = DISPLAY_VER_ALL,
+ .display_ver = { 0, 20 },
.plane_caps = INTEL_PLANE_CAP_TILING_X,
}, {
.modifier = DRM_FORMAT_MOD_LINEAR,
--
2.45.0
^ permalink raw reply related [flat|nested] 30+ messages in thread* Re: [PATCH 06/12] drm/i915/display/xe3: disable x-tiled framebuffers
2024-10-18 20:49 ` [PATCH 06/12] drm/i915/display/xe3: disable x-tiled framebuffers Matt Atwood
@ 2024-10-21 12:25 ` Gustavo Sousa
0 siblings, 0 replies; 30+ messages in thread
From: Gustavo Sousa @ 2024-10-21 12:25 UTC (permalink / raw)
To: Matt Atwood, intel-gfx, intel-xe
Cc: Heikkila, Juha-pekka, Heikkila, Matt Atwood, Matt Roper
Quoting Matt Atwood (2024-10-18 17:49:35-03:00)
>From: "Heikkila, Juha-pekka" <juha-pekka.heikkila@intel.com>
>
>Xe3 has no more support for x-tile on display.
>
>Signed-off-by: Heikkila, Juha-pekka <juha-pekka.heikkila@intel.com>
>Signed-off-by: Matt Atwood <matthew.s.atwood@intel.com>
>---
> drivers/gpu/drm/i915/display/intel_fb.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
>diff --git a/drivers/gpu/drm/i915/display/intel_fb.c b/drivers/gpu/drm/i915/display/intel_fb.c
>index a7b4cf8b6d50..2075541bcdf4 100644
>--- a/drivers/gpu/drm/i915/display/intel_fb.c
>+++ b/drivers/gpu/drm/i915/display/intel_fb.c
>@@ -349,7 +349,7 @@ static const struct intel_modifier_desc intel_modifiers[] = {
> .plane_caps = INTEL_PLANE_CAP_TILING_Y,
> }, {
> .modifier = I915_FORMAT_MOD_X_TILED,
>- .display_ver = DISPLAY_VER_ALL,
>+ .display_ver = { 0, 20 },
Hm... I believe this suffers from a similar issue Matt Roper pointed at
on "[PATCH 05/12] drm/i915/xe3: Underrun recovery does not exist post
Xe2". A quickfix for this would be to use { 0, 29 } here, which would
look weird (as there is no display version 29), but it would be more
future-proof.
As a follow-up series, I believe it would be better to make the
display_ver be exclusive at the end, which would make more sense, as {
ver_a, ver_b } would then mean: this feature is available since version
ver_a and was removed in ver_b. In this example, our display_ver would
become { 0, 30 }.
--
Gustavo Sousa
> .plane_caps = INTEL_PLANE_CAP_TILING_X,
> }, {
> .modifier = DRM_FORMAT_MOD_LINEAR,
>--
>2.45.0
>
^ permalink raw reply [flat|nested] 30+ messages in thread
* [PATCH 07/12] drm/i915/xe3lpd: Skip disabling VRR during modeset disable
2024-10-18 20:49 [PATCH 00/12] drm/i915/xe3lpd: ptl display patches Matt Atwood
` (5 preceding siblings ...)
2024-10-18 20:49 ` [PATCH 06/12] drm/i915/display/xe3: disable x-tiled framebuffers Matt Atwood
@ 2024-10-18 20:49 ` Matt Atwood
2024-10-18 20:49 ` [PATCH 08/12] drm/i915/xe3lpd: Increase resolution for plane to support 6k Matt Atwood
` (7 subsequent siblings)
14 siblings, 0 replies; 30+ messages in thread
From: Matt Atwood @ 2024-10-18 20:49 UTC (permalink / raw)
To: intel-gfx, intel-xe; +Cc: Ravi Kumar Vodapalli, Matt Atwood
From: Ravi Kumar Vodapalli <ravi.kumar.vodapalli@intel.com>
Spec does not request to disable VRR in the modeset disabling
sequence for DP and HDMI for xe3_lpd.
Bspec: 68848
Signed-off-by: Ravi Kumar Vodapalli <ravi.kumar.vodapalli@intel.com>
Signed-off-by: Matt Atwood <matthew.s.atwood@intel.com>
---
drivers/gpu/drm/i915/display/intel_display.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index dad415650b40..90669c7f988b 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -1310,9 +1310,11 @@ static void intel_pre_plane_update(struct intel_atomic_state *state,
intel_atomic_get_new_crtc_state(state, crtc);
enum pipe pipe = crtc->pipe;
- if (intel_crtc_vrr_disabling(state, crtc)) {
- intel_vrr_disable(old_crtc_state);
- intel_crtc_update_active_timings(old_crtc_state, false);
+ if (DISPLAY_VER(dev_priv) < 30) {
+ if (intel_crtc_vrr_disabling(state, crtc)) {
+ intel_vrr_disable(old_crtc_state);
+ intel_crtc_update_active_timings(old_crtc_state, false);
+ }
}
if (audio_disabling(old_crtc_state, new_crtc_state))
--
2.45.0
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH 08/12] drm/i915/xe3lpd: Increase resolution for plane to support 6k
2024-10-18 20:49 [PATCH 00/12] drm/i915/xe3lpd: ptl display patches Matt Atwood
` (6 preceding siblings ...)
2024-10-18 20:49 ` [PATCH 07/12] drm/i915/xe3lpd: Skip disabling VRR during modeset disable Matt Atwood
@ 2024-10-18 20:49 ` Matt Atwood
2024-10-19 7:07 ` Kandpal, Suraj
2024-10-18 20:49 ` [PATCH 09/12] drm/i915/xe3lpd: Increase max_h max_v for PSR Matt Atwood
` (6 subsequent siblings)
14 siblings, 1 reply; 30+ messages in thread
From: Matt Atwood @ 2024-10-18 20:49 UTC (permalink / raw)
To: intel-gfx, intel-xe; +Cc: Suraj Kandpal, Arun R Murthy, Matt Atwood
From: Suraj Kandpal <suraj.kandpal@intel.com>
DISPLAY_VER >= 30 onwards CRTC can now support 6k resolution.
Increase pipe and plane max width and height to reflect this
increase in resolution.
Signed-off-by: Arun R Murthy <arun.r.murthy@intel.com>
Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com>
Signed-off-by: Matt Atwood <matthew.s.atwood@intel.com>
---
drivers/gpu/drm/i915/display/intel_display.c | 5 ++++-
drivers/gpu/drm/i915/display/skl_universal_plane.c | 13 ++++++++++++-
2 files changed, 16 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index 90669c7f988b..72150f257969 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -8452,7 +8452,10 @@ intel_mode_valid_max_plane_size(struct drm_i915_private *dev_priv,
* plane so let's not advertize modes that are
* too big for that.
*/
- if (DISPLAY_VER(dev_priv) >= 11) {
+ if (DISPLAY_VER(dev_priv) >= 30) {
+ plane_width_max = 6144;
+ plane_height_max = 4096;
+ } else if (DISPLAY_VER(dev_priv) >= 11) {
plane_width_max = 5120 * num_joined_pipes;
plane_height_max = 4320;
} else {
diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c b/drivers/gpu/drm/i915/display/skl_universal_plane.c
index da974f4a25bd..bd7786a6161a 100644
--- a/drivers/gpu/drm/i915/display/skl_universal_plane.c
+++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c
@@ -431,6 +431,13 @@ static int icl_plane_min_width(const struct drm_framebuffer *fb,
}
}
+static int xe3_plane_max_width(const struct drm_framebuffer *fb,
+ int color_plane,
+ unsigned int rotation)
+{
+ return 6144;
+}
+
static int icl_hdr_plane_max_width(const struct drm_framebuffer *fb,
int color_plane,
unsigned int rotation)
@@ -2589,7 +2596,11 @@ skl_universal_plane_create(struct drm_i915_private *dev_priv,
intel_fbc_add_plane(skl_plane_fbc(dev_priv, pipe, plane_id), plane);
- if (DISPLAY_VER(dev_priv) >= 11) {
+ if (DISPLAY_VER(dev_priv) >= 30) {
+ plane->max_width = xe3_plane_max_width;
+ plane->max_height = icl_plane_max_height;
+ plane->min_cdclk = icl_plane_min_cdclk;
+ }else if (DISPLAY_VER(dev_priv) >= 11) {
plane->min_width = icl_plane_min_width;
if (icl_is_hdr_plane(dev_priv, plane_id))
plane->max_width = icl_hdr_plane_max_width;
--
2.45.0
^ permalink raw reply related [flat|nested] 30+ messages in thread* RE: [PATCH 08/12] drm/i915/xe3lpd: Increase resolution for plane to support 6k
2024-10-18 20:49 ` [PATCH 08/12] drm/i915/xe3lpd: Increase resolution for plane to support 6k Matt Atwood
@ 2024-10-19 7:07 ` Kandpal, Suraj
0 siblings, 0 replies; 30+ messages in thread
From: Kandpal, Suraj @ 2024-10-19 7:07 UTC (permalink / raw)
To: Atwood, Matthew S, intel-gfx@lists.freedesktop.org,
intel-xe@lists.freedesktop.org
Cc: Murthy, Arun R
> -----Original Message-----
> From: Atwood, Matthew S <matthew.s.atwood@intel.com>
> Sent: Saturday, October 19, 2024 2:20 AM
> To: intel-gfx@lists.freedesktop.org; intel-xe@lists.freedesktop.org
> Cc: Kandpal, Suraj <suraj.kandpal@intel.com>; Murthy, Arun R
> <arun.r.murthy@intel.com>; Atwood, Matthew S
> <matthew.s.atwood@intel.com>
> Subject: [PATCH 08/12] drm/i915/xe3lpd: Increase resolution for plane to
> support 6k
>
> From: Suraj Kandpal <suraj.kandpal@intel.com>
>
> DISPLAY_VER >= 30 onwards CRTC can now support 6k resolution.
> Increase pipe and plane max width and height to reflect this increase in
> resolution.
Hi Matt I have already floated this series upstream maybe we can remove this from
These 4 patches from the series
Regards,
Suraj Kandpal
>
> Signed-off-by: Arun R Murthy <arun.r.murthy@intel.com>
> Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com>
> Signed-off-by: Matt Atwood <matthew.s.atwood@intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_display.c | 5 ++++-
> drivers/gpu/drm/i915/display/skl_universal_plane.c | 13 ++++++++++++-
> 2 files changed, 16 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c
> b/drivers/gpu/drm/i915/display/intel_display.c
> index 90669c7f988b..72150f257969 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -8452,7 +8452,10 @@ intel_mode_valid_max_plane_size(struct
> drm_i915_private *dev_priv,
> * plane so let's not advertize modes that are
> * too big for that.
> */
> - if (DISPLAY_VER(dev_priv) >= 11) {
> + if (DISPLAY_VER(dev_priv) >= 30) {
> + plane_width_max = 6144;
> + plane_height_max = 4096;
> + } else if (DISPLAY_VER(dev_priv) >= 11) {
> plane_width_max = 5120 * num_joined_pipes;
> plane_height_max = 4320;
> } else {
> diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c
> b/drivers/gpu/drm/i915/display/skl_universal_plane.c
> index da974f4a25bd..bd7786a6161a 100644
> --- a/drivers/gpu/drm/i915/display/skl_universal_plane.c
> +++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c
> @@ -431,6 +431,13 @@ static int icl_plane_min_width(const struct
> drm_framebuffer *fb,
> }
> }
>
> +static int xe3_plane_max_width(const struct drm_framebuffer *fb,
> + int color_plane,
> + unsigned int rotation)
> +{
> + return 6144;
> +}
> +
> static int icl_hdr_plane_max_width(const struct drm_framebuffer *fb,
> int color_plane,
> unsigned int rotation)
> @@ -2589,7 +2596,11 @@ skl_universal_plane_create(struct
> drm_i915_private *dev_priv,
>
> intel_fbc_add_plane(skl_plane_fbc(dev_priv, pipe, plane_id), plane);
>
> - if (DISPLAY_VER(dev_priv) >= 11) {
> + if (DISPLAY_VER(dev_priv) >= 30) {
> + plane->max_width = xe3_plane_max_width;
> + plane->max_height = icl_plane_max_height;
> + plane->min_cdclk = icl_plane_min_cdclk;
> + }else if (DISPLAY_VER(dev_priv) >= 11) {
> plane->min_width = icl_plane_min_width;
> if (icl_is_hdr_plane(dev_priv, plane_id))
> plane->max_width = icl_hdr_plane_max_width;
> --
> 2.45.0
^ permalink raw reply [flat|nested] 30+ messages in thread
* [PATCH 09/12] drm/i915/xe3lpd: Increase max_h max_v for PSR
2024-10-18 20:49 [PATCH 00/12] drm/i915/xe3lpd: ptl display patches Matt Atwood
` (7 preceding siblings ...)
2024-10-18 20:49 ` [PATCH 08/12] drm/i915/xe3lpd: Increase resolution for plane to support 6k Matt Atwood
@ 2024-10-18 20:49 ` Matt Atwood
2024-10-18 20:49 ` [PATCH 10/12] drm/i915/xe3lpd: Increase bigjoiner limitations Matt Atwood
` (5 subsequent siblings)
14 siblings, 0 replies; 30+ messages in thread
From: Matt Atwood @ 2024-10-18 20:49 UTC (permalink / raw)
To: intel-gfx, intel-xe; +Cc: Suraj Kandpal, Matt Atwood
From: Suraj Kandpal <suraj.kandpal@intel.com>
Spec states that PSR max active is same as max pipe active values.
Now that each pipe supports 6k resolution increasing max_h and
max_v for PSR too.
Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com>
Signed-off-by: Matt Atwood <matthew.s.atwood@intel.com>
---
drivers/gpu/drm/i915/display/intel_psr.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i915/display/intel_psr.c
index 3b20325b3f6a..16dbc8caef5f 100644
--- a/drivers/gpu/drm/i915/display/intel_psr.c
+++ b/drivers/gpu/drm/i915/display/intel_psr.c
@@ -1451,7 +1451,11 @@ static bool intel_psr2_config_valid(struct intel_dp *intel_dp,
return false;
}
- if (DISPLAY_VER(display) >= 12) {
+ if (DISPLAY_VER(display) >= 30) {
+ psr_max_h = 6144;
+ psr_max_v = 4096;
+ max_bpp = 30;
+ } else if (DISPLAY_VER(display) >= 12) {
psr_max_h = 5120;
psr_max_v = 3200;
max_bpp = 30;
--
2.45.0
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH 10/12] drm/i915/xe3lpd: Increase bigjoiner limitations
2024-10-18 20:49 [PATCH 00/12] drm/i915/xe3lpd: ptl display patches Matt Atwood
` (8 preceding siblings ...)
2024-10-18 20:49 ` [PATCH 09/12] drm/i915/xe3lpd: Increase max_h max_v for PSR Matt Atwood
@ 2024-10-18 20:49 ` Matt Atwood
2024-10-18 20:49 ` [PATCH 11/12] drm/i915/xe3lpd: Prune modes for YUV420 Matt Atwood
` (4 subsequent siblings)
14 siblings, 0 replies; 30+ messages in thread
From: Matt Atwood @ 2024-10-18 20:49 UTC (permalink / raw)
To: intel-gfx, intel-xe; +Cc: Suraj Kandpal, Matt Atwood
From: Suraj Kandpal <suraj.kandpal@intel.com>
With 6k resolution support for a single crtc being added
bigjoiner will only come into picture when hdisplay > 6144
Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com>
Signed-off-by: Matt Atwood <matthew.s.atwood@intel.com>
---
drivers/gpu/drm/i915/display/intel_dp.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
index be21e2743801..0093bd43c712 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -1314,14 +1314,16 @@ bool intel_dp_needs_joiner(struct intel_dp *intel_dp,
int num_joined_pipes)
{
struct drm_i915_private *i915 = dp_to_i915(intel_dp);
+ int hdisplay_limit;
if (!intel_dp_has_joiner(intel_dp))
return false;
+ hdisplay_limit = DISPLAY_VER(i915) >= 30 ? 6144 : 5120;
num_joined_pipes /= 2;
return clock > num_joined_pipes * i915->display.cdclk.max_dotclk_freq ||
- hdisplay > num_joined_pipes * 5120;
+ hdisplay > num_joined_pipes * hdisplay_limit;
}
int intel_dp_num_joined_pipes(struct intel_dp *intel_dp,
--
2.45.0
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH 11/12] drm/i915/xe3lpd: Prune modes for YUV420
2024-10-18 20:49 [PATCH 00/12] drm/i915/xe3lpd: ptl display patches Matt Atwood
` (9 preceding siblings ...)
2024-10-18 20:49 ` [PATCH 10/12] drm/i915/xe3lpd: Increase bigjoiner limitations Matt Atwood
@ 2024-10-18 20:49 ` Matt Atwood
2024-10-18 20:49 ` [PATCH 12/12] drm/i915/xe3lpd: Power request asserting/deasserting Matt Atwood
` (3 subsequent siblings)
14 siblings, 0 replies; 30+ messages in thread
From: Matt Atwood @ 2024-10-18 20:49 UTC (permalink / raw)
To: intel-gfx, intel-xe; +Cc: Suraj Kandpal, Matt Atwood
From: Suraj Kandpal <suraj.kandpal@intel.com>
We only support resolution upto 4k for single pipe when using
YUV420 format so we prune these modes and restrict the plane size
at src.
Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com>
Signed-off-by: Matt Atwood <matthew.s.atwood@intel.com>
---
drivers/gpu/drm/i915/display/intel_dp.c | 11 +++++++++--
drivers/gpu/drm/i915/display/skl_universal_plane.c | 5 ++++-
2 files changed, 13 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
index 0093bd43c712..2a1a86606301 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -1373,6 +1373,7 @@ intel_dp_mode_valid(struct drm_connector *_connector,
{
struct intel_connector *connector = to_intel_connector(_connector);
struct intel_dp *intel_dp = intel_attached_dp(connector);
+ enum intel_output_format sink_format;
struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
const struct drm_display_mode *fixed_mode;
int target_clock = mode->clock;
@@ -1407,6 +1408,13 @@ intel_dp_mode_valid(struct drm_connector *_connector,
mode->hdisplay, target_clock);
max_dotclk *= num_joined_pipes;
+ sink_format = intel_dp_sink_format(connector, mode);
+ if (num_joined_pipes == 1) {
+ if (sink_format == INTEL_OUTPUT_FORMAT_YCBCR420 &&
+ mode->hdisplay > 4096)
+ return MODE_NO_420;
+ }
+
if (target_clock > max_dotclk)
return MODE_CLOCK_HIGH;
@@ -1422,10 +1430,9 @@ intel_dp_mode_valid(struct drm_connector *_connector,
intel_dp_mode_min_output_bpp(connector, mode));
if (intel_dp_has_dsc(connector)) {
- enum intel_output_format sink_format, output_format;
+ enum intel_output_format output_format;
int pipe_bpp;
- sink_format = intel_dp_sink_format(connector, mode);
output_format = intel_dp_output_format(connector, sink_format);
/*
* TBD pass the connector BPC,
diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c b/drivers/gpu/drm/i915/display/skl_universal_plane.c
index bd7786a6161a..99548a357dfe 100644
--- a/drivers/gpu/drm/i915/display/skl_universal_plane.c
+++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c
@@ -435,7 +435,10 @@ static int xe3_plane_max_width(const struct drm_framebuffer *fb,
int color_plane,
unsigned int rotation)
{
- return 6144;
+ if (intel_format_info_is_yuv_semiplanar(fb->format, fb->modifier))
+ return 4096;
+ else
+ return 6144;
}
static int icl_hdr_plane_max_width(const struct drm_framebuffer *fb,
--
2.45.0
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH 12/12] drm/i915/xe3lpd: Power request asserting/deasserting
2024-10-18 20:49 [PATCH 00/12] drm/i915/xe3lpd: ptl display patches Matt Atwood
` (10 preceding siblings ...)
2024-10-18 20:49 ` [PATCH 11/12] drm/i915/xe3lpd: Prune modes for YUV420 Matt Atwood
@ 2024-10-18 20:49 ` Matt Atwood
2024-10-21 12:08 ` Jani Nikula
` (2 more replies)
2024-10-18 21:45 ` ✗ Fi.CI.CHECKPATCH: warning for drm/i915/xe3lpd: ptl display patches Patchwork
` (2 subsequent siblings)
14 siblings, 3 replies; 30+ messages in thread
From: Matt Atwood @ 2024-10-18 20:49 UTC (permalink / raw)
To: intel-gfx, intel-xe; +Cc: Mika Kahola, Matt Atwood
From: Mika Kahola <mika.kahola@intel.com>
There is a HW issue that arises when there are race conditions
between TCSS entering/exiting TC7 or TC10 states while the
driver is asserting/deasserting TCSS power request. As a
workaround, Display driver will implement a mailbox sequence
to ensure that the TCSS is in TC0 when TCSS power request is
asserted/deasserted.
The sequence is the following
1. Read mailbox command status and wait until run/busy bit is
clear
2. Write mailbox data value '1' for power request asserting
and '0' for power request deasserting
3. Write mailbox command run/busy bit and command value with 0x1
4. Read mailbox command and wait until run/busy bit is clear
before continuing power request.
Signed-off-by: Mika Kahola <mika.kahola@intel.com>
Signed-off-by: Matt Atwood <matthew.s.atwood@intel.com>
---
drivers/gpu/drm/i915/display/intel_tc.c | 40 +++++++++++++++++++++++++
drivers/gpu/drm/i915/i915_reg.h | 7 +++++
2 files changed, 47 insertions(+)
diff --git a/drivers/gpu/drm/i915/display/intel_tc.c b/drivers/gpu/drm/i915/display/intel_tc.c
index 6f2ee7dbc43b..7d9f87db381c 100644
--- a/drivers/gpu/drm/i915/display/intel_tc.c
+++ b/drivers/gpu/drm/i915/display/intel_tc.c
@@ -1013,6 +1013,39 @@ xelpdp_tc_phy_wait_for_tcss_power(struct intel_tc_port *tc, bool enabled)
return true;
}
+static bool xelpdp_tc_phy_wait_for_tcss_ready(struct drm_i915_private *i915,
+ bool enable)
+{
+ if (DISPLAY_VER(i915) < 30)
+ return true;
+
+ /* check if mailbox is running busy */
+ if (intel_de_wait_for_clear(i915, TCSS_DISP_MAILBOX_IN_CMD,
+ TCSS_DISP_MAILBOX_IN_CMD_RUN_BUSY, 10)) {
+ drm_dbg_kms(&i915->drm,
+ "timeout waiting for TCSS mailbox run/busy bit to clear\n");
+ return false;
+ }
+
+ if (enable)
+ intel_de_write(i915, TCSS_DISP_MAILBOX_IN_DATA, 1);
+ else
+ intel_de_write(i915, TCSS_DISP_MAILBOX_IN_DATA, 0);
+
+ intel_de_write(i915, TCSS_DISP_MAILBOX_IN_CMD,
+ TCSS_DISP_MAILBOX_IN_CMD_DATA(1));
+
+ /* wait to clear mailbox running busy bit before continuing */
+ if (intel_de_wait_for_clear(i915, TCSS_DISP_MAILBOX_IN_CMD,
+ TCSS_DISP_MAILBOX_IN_CMD_RUN_BUSY, 10)) {
+ drm_dbg_kms(&i915->drm,
+ "timeout waiting for TCSS mailbox run/busy bit to clear\n");
+ return false;
+ }
+
+ return true;
+}
+
static void __xelpdp_tc_phy_enable_tcss_power(struct intel_tc_port *tc, bool enable)
{
struct drm_i915_private *i915 = tc_to_i915(tc);
@@ -1022,6 +1055,13 @@ static void __xelpdp_tc_phy_enable_tcss_power(struct intel_tc_port *tc, bool ena
assert_tc_cold_blocked(tc);
+ /*
+ * Gfx driver workaround for PTL tcss_rxdetect_clkswb_req/ack handshake
+ * violation when pwwreq= 0->1 during TC7/10 entry
+ */
+ drm_WARN_ON(&i915->drm,
+ !xelpdp_tc_phy_wait_for_tcss_ready(i915, enable));
+
val = intel_de_read(i915, reg);
if (enable)
val |= XELPDP_TCSS_POWER_REQUEST;
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index 2743a2dd0a3d..d2775a32bf18 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -4539,6 +4539,13 @@ enum skl_power_gate {
#define TCSS_DDI_STATUS_HPD_LIVE_STATUS_TBT REG_BIT(1)
#define TCSS_DDI_STATUS_HPD_LIVE_STATUS_ALT REG_BIT(0)
+#define TCSS_DISP_MAILBOX_IN_CMD _MMIO(0x161300)
+#define TCSS_DISP_MAILBOX_IN_CMD_RUN_BUSY REG_BIT(31)
+#define TCSS_DISP_MAILBOX_IN_CMD_CMD_MASK REG_GENMASK(7, 0)
+#define TCSS_DISP_MAILBOX_IN_CMD_DATA(x) TCSS_DISP_MAILBOX_IN_CMD_RUN_BUSY | \
+ REG_FIELD_PREP(TCSS_DISP_MAILBOX_IN_CMD_CMD_MASK, (x))
+#define TCSS_DISP_MAILBOX_IN_DATA _MMIO(0x161304)
+
#define PRIMARY_SPI_TRIGGER _MMIO(0x102040)
#define PRIMARY_SPI_ADDRESS _MMIO(0x102080)
#define PRIMARY_SPI_REGIONID _MMIO(0x102084)
--
2.45.0
^ permalink raw reply related [flat|nested] 30+ messages in thread* Re: [PATCH 12/12] drm/i915/xe3lpd: Power request asserting/deasserting
2024-10-18 20:49 ` [PATCH 12/12] drm/i915/xe3lpd: Power request asserting/deasserting Matt Atwood
@ 2024-10-21 12:08 ` Jani Nikula
2024-10-21 12:30 ` Gustavo Sousa
2024-10-23 20:39 ` Gustavo Sousa
2 siblings, 0 replies; 30+ messages in thread
From: Jani Nikula @ 2024-10-21 12:08 UTC (permalink / raw)
To: Matt Atwood, intel-gfx, intel-xe; +Cc: Mika Kahola, Matt Atwood
On Fri, 18 Oct 2024, Matt Atwood <matthew.s.atwood@intel.com> wrote:
> From: Mika Kahola <mika.kahola@intel.com>
>
> There is a HW issue that arises when there are race conditions
> between TCSS entering/exiting TC7 or TC10 states while the
> driver is asserting/deasserting TCSS power request. As a
> workaround, Display driver will implement a mailbox sequence
> to ensure that the TCSS is in TC0 when TCSS power request is
> asserted/deasserted.
>
> The sequence is the following
>
> 1. Read mailbox command status and wait until run/busy bit is
> clear
> 2. Write mailbox data value '1' for power request asserting
> and '0' for power request deasserting
> 3. Write mailbox command run/busy bit and command value with 0x1
> 4. Read mailbox command and wait until run/busy bit is clear
> before continuing power request.
>
> Signed-off-by: Mika Kahola <mika.kahola@intel.com>
> Signed-off-by: Matt Atwood <matthew.s.atwood@intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_tc.c | 40 +++++++++++++++++++++++++
> drivers/gpu/drm/i915/i915_reg.h | 7 +++++
> 2 files changed, 47 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_tc.c b/drivers/gpu/drm/i915/display/intel_tc.c
> index 6f2ee7dbc43b..7d9f87db381c 100644
> --- a/drivers/gpu/drm/i915/display/intel_tc.c
> +++ b/drivers/gpu/drm/i915/display/intel_tc.c
> @@ -1013,6 +1013,39 @@ xelpdp_tc_phy_wait_for_tcss_power(struct intel_tc_port *tc, bool enabled)
> return true;
> }
>
> +static bool xelpdp_tc_phy_wait_for_tcss_ready(struct drm_i915_private *i915,
No new struct drm_i915_private params or variables please.
BR,
Jani.
> + bool enable)
> +{
> + if (DISPLAY_VER(i915) < 30)
> + return true;
> +
> + /* check if mailbox is running busy */
> + if (intel_de_wait_for_clear(i915, TCSS_DISP_MAILBOX_IN_CMD,
> + TCSS_DISP_MAILBOX_IN_CMD_RUN_BUSY, 10)) {
> + drm_dbg_kms(&i915->drm,
> + "timeout waiting for TCSS mailbox run/busy bit to clear\n");
> + return false;
> + }
> +
> + if (enable)
> + intel_de_write(i915, TCSS_DISP_MAILBOX_IN_DATA, 1);
> + else
> + intel_de_write(i915, TCSS_DISP_MAILBOX_IN_DATA, 0);
> +
> + intel_de_write(i915, TCSS_DISP_MAILBOX_IN_CMD,
> + TCSS_DISP_MAILBOX_IN_CMD_DATA(1));
> +
> + /* wait to clear mailbox running busy bit before continuing */
> + if (intel_de_wait_for_clear(i915, TCSS_DISP_MAILBOX_IN_CMD,
> + TCSS_DISP_MAILBOX_IN_CMD_RUN_BUSY, 10)) {
> + drm_dbg_kms(&i915->drm,
> + "timeout waiting for TCSS mailbox run/busy bit to clear\n");
> + return false;
> + }
> +
> + return true;
> +}
> +
> static void __xelpdp_tc_phy_enable_tcss_power(struct intel_tc_port *tc, bool enable)
> {
> struct drm_i915_private *i915 = tc_to_i915(tc);
> @@ -1022,6 +1055,13 @@ static void __xelpdp_tc_phy_enable_tcss_power(struct intel_tc_port *tc, bool ena
>
> assert_tc_cold_blocked(tc);
>
> + /*
> + * Gfx driver workaround for PTL tcss_rxdetect_clkswb_req/ack handshake
> + * violation when pwwreq= 0->1 during TC7/10 entry
> + */
> + drm_WARN_ON(&i915->drm,
> + !xelpdp_tc_phy_wait_for_tcss_ready(i915, enable));
> +
> val = intel_de_read(i915, reg);
> if (enable)
> val |= XELPDP_TCSS_POWER_REQUEST;
> diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
> index 2743a2dd0a3d..d2775a32bf18 100644
> --- a/drivers/gpu/drm/i915/i915_reg.h
> +++ b/drivers/gpu/drm/i915/i915_reg.h
> @@ -4539,6 +4539,13 @@ enum skl_power_gate {
> #define TCSS_DDI_STATUS_HPD_LIVE_STATUS_TBT REG_BIT(1)
> #define TCSS_DDI_STATUS_HPD_LIVE_STATUS_ALT REG_BIT(0)
>
> +#define TCSS_DISP_MAILBOX_IN_CMD _MMIO(0x161300)
> +#define TCSS_DISP_MAILBOX_IN_CMD_RUN_BUSY REG_BIT(31)
> +#define TCSS_DISP_MAILBOX_IN_CMD_CMD_MASK REG_GENMASK(7, 0)
> +#define TCSS_DISP_MAILBOX_IN_CMD_DATA(x) TCSS_DISP_MAILBOX_IN_CMD_RUN_BUSY | \
> + REG_FIELD_PREP(TCSS_DISP_MAILBOX_IN_CMD_CMD_MASK, (x))
> +#define TCSS_DISP_MAILBOX_IN_DATA _MMIO(0x161304)
> +
> #define PRIMARY_SPI_TRIGGER _MMIO(0x102040)
> #define PRIMARY_SPI_ADDRESS _MMIO(0x102080)
> #define PRIMARY_SPI_REGIONID _MMIO(0x102084)
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 30+ messages in thread* Re: [PATCH 12/12] drm/i915/xe3lpd: Power request asserting/deasserting
2024-10-18 20:49 ` [PATCH 12/12] drm/i915/xe3lpd: Power request asserting/deasserting Matt Atwood
2024-10-21 12:08 ` Jani Nikula
@ 2024-10-21 12:30 ` Gustavo Sousa
2024-10-21 13:03 ` Kahola, Mika
2024-10-23 20:39 ` Gustavo Sousa
2 siblings, 1 reply; 30+ messages in thread
From: Gustavo Sousa @ 2024-10-21 12:30 UTC (permalink / raw)
To: Matt Atwood, intel-gfx, intel-xe; +Cc: Mika Kahola, Matt Atwood
Quoting Matt Atwood (2024-10-18 17:49:41-03:00)
>From: Mika Kahola <mika.kahola@intel.com>
>
>There is a HW issue that arises when there are race conditions
>between TCSS entering/exiting TC7 or TC10 states while the
>driver is asserting/deasserting TCSS power request. As a
>workaround, Display driver will implement a mailbox sequence
>to ensure that the TCSS is in TC0 when TCSS power request is
>asserted/deasserted.
>
>The sequence is the following
>
>1. Read mailbox command status and wait until run/busy bit is
> clear
>2. Write mailbox data value '1' for power request asserting
> and '0' for power request deasserting
>3. Write mailbox command run/busy bit and command value with 0x1
>4. Read mailbox command and wait until run/busy bit is clear
> before continuing power request.
Is there a WA lineage number we can refer to for this?
--
Gustavo Sousa
>
>Signed-off-by: Mika Kahola <mika.kahola@intel.com>
>Signed-off-by: Matt Atwood <matthew.s.atwood@intel.com>
>---
> drivers/gpu/drm/i915/display/intel_tc.c | 40 +++++++++++++++++++++++++
> drivers/gpu/drm/i915/i915_reg.h | 7 +++++
> 2 files changed, 47 insertions(+)
>
>diff --git a/drivers/gpu/drm/i915/display/intel_tc.c b/drivers/gpu/drm/i915/display/intel_tc.c
>index 6f2ee7dbc43b..7d9f87db381c 100644
>--- a/drivers/gpu/drm/i915/display/intel_tc.c
>+++ b/drivers/gpu/drm/i915/display/intel_tc.c
>@@ -1013,6 +1013,39 @@ xelpdp_tc_phy_wait_for_tcss_power(struct intel_tc_port *tc, bool enabled)
> return true;
> }
>
>+static bool xelpdp_tc_phy_wait_for_tcss_ready(struct drm_i915_private *i915,
>+ bool enable)
>+{
>+ if (DISPLAY_VER(i915) < 30)
>+ return true;
>+
>+ /* check if mailbox is running busy */
>+ if (intel_de_wait_for_clear(i915, TCSS_DISP_MAILBOX_IN_CMD,
>+ TCSS_DISP_MAILBOX_IN_CMD_RUN_BUSY, 10)) {
>+ drm_dbg_kms(&i915->drm,
>+ "timeout waiting for TCSS mailbox run/busy bit to clear\n");
>+ return false;
>+ }
>+
>+ if (enable)
>+ intel_de_write(i915, TCSS_DISP_MAILBOX_IN_DATA, 1);
>+ else
>+ intel_de_write(i915, TCSS_DISP_MAILBOX_IN_DATA, 0);
>+
>+ intel_de_write(i915, TCSS_DISP_MAILBOX_IN_CMD,
>+ TCSS_DISP_MAILBOX_IN_CMD_DATA(1));
>+
>+ /* wait to clear mailbox running busy bit before continuing */
>+ if (intel_de_wait_for_clear(i915, TCSS_DISP_MAILBOX_IN_CMD,
>+ TCSS_DISP_MAILBOX_IN_CMD_RUN_BUSY, 10)) {
>+ drm_dbg_kms(&i915->drm,
>+ "timeout waiting for TCSS mailbox run/busy bit to clear\n");
>+ return false;
>+ }
>+
>+ return true;
>+}
>+
> static void __xelpdp_tc_phy_enable_tcss_power(struct intel_tc_port *tc, bool enable)
> {
> struct drm_i915_private *i915 = tc_to_i915(tc);
>@@ -1022,6 +1055,13 @@ static void __xelpdp_tc_phy_enable_tcss_power(struct intel_tc_port *tc, bool ena
>
> assert_tc_cold_blocked(tc);
>
>+ /*
>+ * Gfx driver workaround for PTL tcss_rxdetect_clkswb_req/ack handshake
>+ * violation when pwwreq= 0->1 during TC7/10 entry
>+ */
>+ drm_WARN_ON(&i915->drm,
>+ !xelpdp_tc_phy_wait_for_tcss_ready(i915, enable));
>+
> val = intel_de_read(i915, reg);
> if (enable)
> val |= XELPDP_TCSS_POWER_REQUEST;
>diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
>index 2743a2dd0a3d..d2775a32bf18 100644
>--- a/drivers/gpu/drm/i915/i915_reg.h
>+++ b/drivers/gpu/drm/i915/i915_reg.h
>@@ -4539,6 +4539,13 @@ enum skl_power_gate {
> #define TCSS_DDI_STATUS_HPD_LIVE_STATUS_TBT REG_BIT(1)
> #define TCSS_DDI_STATUS_HPD_LIVE_STATUS_ALT REG_BIT(0)
>
>+#define TCSS_DISP_MAILBOX_IN_CMD _MMIO(0x161300)
>+#define TCSS_DISP_MAILBOX_IN_CMD_RUN_BUSY REG_BIT(31)
>+#define TCSS_DISP_MAILBOX_IN_CMD_CMD_MASK REG_GENMASK(7, 0)
>+#define TCSS_DISP_MAILBOX_IN_CMD_DATA(x) TCSS_DISP_MAILBOX_IN_CMD_RUN_BUSY | \
>+ REG_FIELD_PREP(TCSS_DISP_MAILBOX_IN_CMD_CMD_MASK, (x))
>+#define TCSS_DISP_MAILBOX_IN_DATA _MMIO(0x161304)
>+
> #define PRIMARY_SPI_TRIGGER _MMIO(0x102040)
> #define PRIMARY_SPI_ADDRESS _MMIO(0x102080)
> #define PRIMARY_SPI_REGIONID _MMIO(0x102084)
>--
>2.45.0
>
^ permalink raw reply [flat|nested] 30+ messages in thread* RE: [PATCH 12/12] drm/i915/xe3lpd: Power request asserting/deasserting
2024-10-21 12:30 ` Gustavo Sousa
@ 2024-10-21 13:03 ` Kahola, Mika
0 siblings, 0 replies; 30+ messages in thread
From: Kahola, Mika @ 2024-10-21 13:03 UTC (permalink / raw)
To: Sousa, Gustavo, Atwood, Matthew S,
intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org
Cc: Atwood, Matthew S
> -----Original Message-----
> From: Sousa, Gustavo <gustavo.sousa@intel.com>
> Sent: Monday, 21 October 2024 15.31
> To: Atwood, Matthew S <matthew.s.atwood@intel.com>; intel-
> gfx@lists.freedesktop.org; intel-xe@lists.freedesktop.org
> Cc: Kahola, Mika <mika.kahola@intel.com>; Atwood, Matthew S
> <matthew.s.atwood@intel.com>
> Subject: Re: [PATCH 12/12] drm/i915/xe3lpd: Power request
> asserting/deasserting
>
> Quoting Matt Atwood (2024-10-18 17:49:41-03:00)
> >From: Mika Kahola <mika.kahola@intel.com>
> >
> >There is a HW issue that arises when there are race conditions between
> >TCSS entering/exiting TC7 or TC10 states while the driver is
> >asserting/deasserting TCSS power request. As a workaround, Display
> >driver will implement a mailbox sequence to ensure that the TCSS is in
> >TC0 when TCSS power request is asserted/deasserted.
> >
> >The sequence is the following
> >
> >1. Read mailbox command status and wait until run/busy bit is
> > clear
> >2. Write mailbox data value '1' for power request asserting
> > and '0' for power request deasserting 3. Write mailbox command
> >run/busy bit and command value with 0x1 4. Read mailbox command and
> >wait until run/busy bit is clear
> > before continuing power request.
>
> Is there a WA lineage number we can refer to for this?
Unfortunately, there isn't any official WA number for this. This is somewhat unofficially proposed fix.
-Mika-
>
> --
> Gustavo Sousa
>
> >
> >Signed-off-by: Mika Kahola <mika.kahola@intel.com>
> >Signed-off-by: Matt Atwood <matthew.s.atwood@intel.com>
> >---
> > drivers/gpu/drm/i915/display/intel_tc.c | 40 +++++++++++++++++++++++++
> > drivers/gpu/drm/i915/i915_reg.h | 7 +++++
> > 2 files changed, 47 insertions(+)
> >
> >diff --git a/drivers/gpu/drm/i915/display/intel_tc.c
> >b/drivers/gpu/drm/i915/display/intel_tc.c
> >index 6f2ee7dbc43b..7d9f87db381c 100644
> >--- a/drivers/gpu/drm/i915/display/intel_tc.c
> >+++ b/drivers/gpu/drm/i915/display/intel_tc.c
> >@@ -1013,6 +1013,39 @@ xelpdp_tc_phy_wait_for_tcss_power(struct
> intel_tc_port *tc, bool enabled)
> > return true;
> > }
> >
> >+static bool xelpdp_tc_phy_wait_for_tcss_ready(struct drm_i915_private *i915,
> >+ bool enable) {
> >+ if (DISPLAY_VER(i915) < 30)
> >+ return true;
> >+
> >+ /* check if mailbox is running busy */
> >+ if (intel_de_wait_for_clear(i915, TCSS_DISP_MAILBOX_IN_CMD,
> >+ TCSS_DISP_MAILBOX_IN_CMD_RUN_BUSY, 10)) {
> >+ drm_dbg_kms(&i915->drm,
> >+ "timeout waiting for TCSS mailbox run/busy bit to clear\n");
> >+ return false;
> >+ }
> >+
> >+ if (enable)
> >+ intel_de_write(i915, TCSS_DISP_MAILBOX_IN_DATA, 1);
> >+ else
> >+ intel_de_write(i915, TCSS_DISP_MAILBOX_IN_DATA, 0);
> >+
> >+ intel_de_write(i915, TCSS_DISP_MAILBOX_IN_CMD,
> >+ TCSS_DISP_MAILBOX_IN_CMD_DATA(1));
> >+
> >+ /* wait to clear mailbox running busy bit before continuing */
> >+ if (intel_de_wait_for_clear(i915, TCSS_DISP_MAILBOX_IN_CMD,
> >+ TCSS_DISP_MAILBOX_IN_CMD_RUN_BUSY, 10)) {
> >+ drm_dbg_kms(&i915->drm,
> >+ "timeout waiting for TCSS mailbox run/busy bit to clear\n");
> >+ return false;
> >+ }
> >+
> >+ return true;
> >+}
> >+
> > static void __xelpdp_tc_phy_enable_tcss_power(struct intel_tc_port
> >*tc, bool enable) {
> > struct drm_i915_private *i915 = tc_to_i915(tc); @@ -1022,6
> >+1055,13 @@ static void __xelpdp_tc_phy_enable_tcss_power(struct
> >intel_tc_port *tc, bool ena
> >
> > assert_tc_cold_blocked(tc);
> >
> >+ /*
> >+ * Gfx driver workaround for PTL tcss_rxdetect_clkswb_req/ack handshake
> >+ * violation when pwwreq= 0->1 during TC7/10 entry
> >+ */
> >+ drm_WARN_ON(&i915->drm,
> >+ !xelpdp_tc_phy_wait_for_tcss_ready(i915, enable));
> >+
> > val = intel_de_read(i915, reg);
> > if (enable)
> > val |= XELPDP_TCSS_POWER_REQUEST; diff --git
> >a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
> >index 2743a2dd0a3d..d2775a32bf18 100644
> >--- a/drivers/gpu/drm/i915/i915_reg.h
> >+++ b/drivers/gpu/drm/i915/i915_reg.h
> >@@ -4539,6 +4539,13 @@ enum skl_power_gate {
> > #define TCSS_DDI_STATUS_HPD_LIVE_STATUS_TBT REG_BIT(1)
> > #define TCSS_DDI_STATUS_HPD_LIVE_STATUS_ALT REG_BIT(0)
> >
> >+#define TCSS_DISP_MAILBOX_IN_CMD _MMIO(0x161300)
> >+#define TCSS_DISP_MAILBOX_IN_CMD_RUN_BUSY REG_BIT(31)
> >+#define TCSS_DISP_MAILBOX_IN_CMD_CMD_MASK REG_GENMASK(7, 0)
> >+#define TCSS_DISP_MAILBOX_IN_CMD_DATA(x)
> TCSS_DISP_MAILBOX_IN_CMD_RUN_BUSY | \
> >+
> REG_FIELD_PREP(TCSS_DISP_MAILBOX_IN_CMD_CMD_MASK, (x))
> >+#define TCSS_DISP_MAILBOX_IN_DATA _MMIO(0x161304)
> >+
> > #define PRIMARY_SPI_TRIGGER _MMIO(0x102040)
> > #define PRIMARY_SPI_ADDRESS _MMIO(0x102080)
> > #define PRIMARY_SPI_REGIONID _MMIO(0x102084)
> >--
> >2.45.0
> >
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH 12/12] drm/i915/xe3lpd: Power request asserting/deasserting
2024-10-18 20:49 ` [PATCH 12/12] drm/i915/xe3lpd: Power request asserting/deasserting Matt Atwood
2024-10-21 12:08 ` Jani Nikula
2024-10-21 12:30 ` Gustavo Sousa
@ 2024-10-23 20:39 ` Gustavo Sousa
2024-10-28 9:11 ` Kahola, Mika
2 siblings, 1 reply; 30+ messages in thread
From: Gustavo Sousa @ 2024-10-23 20:39 UTC (permalink / raw)
To: Matt Atwood, intel-gfx, intel-xe; +Cc: Mika Kahola, Matt Atwood, Clint Taylor
Quoting Matt Atwood (2024-10-18 17:49:41-03:00)
>From: Mika Kahola <mika.kahola@intel.com>
>
>There is a HW issue that arises when there are race conditions
>between TCSS entering/exiting TC7 or TC10 states while the
>driver is asserting/deasserting TCSS power request. As a
>workaround, Display driver will implement a mailbox sequence
>to ensure that the TCSS is in TC0 when TCSS power request is
>asserted/deasserted.
>
>The sequence is the following
>
>1. Read mailbox command status and wait until run/busy bit is
> clear
>2. Write mailbox data value '1' for power request asserting
> and '0' for power request deasserting
>3. Write mailbox command run/busy bit and command value with 0x1
>4. Read mailbox command and wait until run/busy bit is clear
> before continuing power request.
>
>Signed-off-by: Mika Kahola <mika.kahola@intel.com>
>Signed-off-by: Matt Atwood <matthew.s.atwood@intel.com>
>---
> drivers/gpu/drm/i915/display/intel_tc.c | 40 +++++++++++++++++++++++++
> drivers/gpu/drm/i915/i915_reg.h | 7 +++++
> 2 files changed, 47 insertions(+)
>
>diff --git a/drivers/gpu/drm/i915/display/intel_tc.c b/drivers/gpu/drm/i915/display/intel_tc.c
>index 6f2ee7dbc43b..7d9f87db381c 100644
>--- a/drivers/gpu/drm/i915/display/intel_tc.c
>+++ b/drivers/gpu/drm/i915/display/intel_tc.c
>@@ -1013,6 +1013,39 @@ xelpdp_tc_phy_wait_for_tcss_power(struct intel_tc_port *tc, bool enabled)
> return true;
> }
>
>+static bool xelpdp_tc_phy_wait_for_tcss_ready(struct drm_i915_private *i915,
I think xelpdp_ is not right here as this does not apply to Xe_LPD+. I
think we could simply use the workaround lineage number for the name of
this function. Something like wa_14020908590().
>+ bool enable)
>+{
>+ if (DISPLAY_VER(i915) < 30)
The description of the internal ticket that resulted in this workaround
makes me wonder if this is actually an issue associated to the SoC
instead of display or PICA IP. However the ticket metadata indicates the
PICA IP as the one affected. It would be good to confirm the correct
association here.
In any case, this seems not really related to the display IP, so
checking DISPLAY_VER(i915) seems not very precise here.
If it turns out that this is a SoC-related issue, it would be better to
check if the platform is PTL.
Now, if this is indeed an issue associated to the PICA IP, then I see
the following alternatives:
- add an earlier patch to detect the PICA IP and add that info to
intel_display_runtime_info. Then, here we use that info in the
condition for this workaround;
- at least add a comment here that we are checking the display version
because we do not have PICA IP detection in the driver yet. In this
case.
I tend to think that checking version equality would make more sense
(assuming the issue would not be seen in a future platform).
>+ return true;
>+
>+ /* check if mailbox is running busy */
>+ if (intel_de_wait_for_clear(i915, TCSS_DISP_MAILBOX_IN_CMD,
>+ TCSS_DISP_MAILBOX_IN_CMD_RUN_BUSY, 10)) {
>+ drm_dbg_kms(&i915->drm,
>+ "timeout waiting for TCSS mailbox run/busy bit to clear\n");
>+ return false;
>+ }
>+
>+ if (enable)
>+ intel_de_write(i915, TCSS_DISP_MAILBOX_IN_DATA, 1);
>+ else
>+ intel_de_write(i915, TCSS_DISP_MAILBOX_IN_DATA, 0);
>+
>+ intel_de_write(i915, TCSS_DISP_MAILBOX_IN_CMD,
>+ TCSS_DISP_MAILBOX_IN_CMD_DATA(1));
Nitpick: I would prefer a more explicit version of this. Something like:
intel_de_write(i915, TCSS_DISP_MAILBOX_IN_CMD,
TCSS_DISP_MAILBOX_IN_CMD_RUN_BUSY |
TCSS_DISP_MAILBOX_IN_CMD_CMD(0x1));
With the current version, I had to go and check that
TCSS_DISP_MAILBOX_IN_CMD_DATA() also includes the run/busy bit.
>+
>+ /* wait to clear mailbox running busy bit before continuing */
>+ if (intel_de_wait_for_clear(i915, TCSS_DISP_MAILBOX_IN_CMD,
>+ TCSS_DISP_MAILBOX_IN_CMD_RUN_BUSY, 10)) {
>+ drm_dbg_kms(&i915->drm,
>+ "timeout waiting for TCSS mailbox run/busy bit to clear\n");
I think would be good to have different timeout messages so that it is
easy to differentiate whether we timed out while waiting for our turn to
use the mailbox or while waiting for our command to be handled.
>+ return false;
>+ }
>+
>+ return true;
>+}
>+
> static void __xelpdp_tc_phy_enable_tcss_power(struct intel_tc_port *tc, bool enable)
> {
> struct drm_i915_private *i915 = tc_to_i915(tc);
>@@ -1022,6 +1055,13 @@ static void __xelpdp_tc_phy_enable_tcss_power(struct intel_tc_port *tc, bool ena
>
> assert_tc_cold_blocked(tc);
>
>+ /*
>+ * Gfx driver workaround for PTL tcss_rxdetect_clkswb_req/ack handshake
>+ * violation when pwwreq= 0->1 during TC7/10 entry
>+ */
>+ drm_WARN_ON(&i915->drm,
>+ !xelpdp_tc_phy_wait_for_tcss_ready(i915, enable));
>+
> val = intel_de_read(i915, reg);
> if (enable)
> val |= XELPDP_TCSS_POWER_REQUEST;
>diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
>index 2743a2dd0a3d..d2775a32bf18 100644
>--- a/drivers/gpu/drm/i915/i915_reg.h
>+++ b/drivers/gpu/drm/i915/i915_reg.h
Maybe intel_cx0_phy_regs.h would be a better home for the mailbox
registers, since it is where XELPDP_PORT_BUF_CTL1 and
XELPDP_TCSS_POWER_{REQUEST,STATE} are defined?
Not the perfect place, but at least we would not add new definitions to
i915_reg.h and add to the work of separating display code from i915.
>@@ -4539,6 +4539,13 @@ enum skl_power_gate {
> #define TCSS_DDI_STATUS_HPD_LIVE_STATUS_TBT REG_BIT(1)
> #define TCSS_DDI_STATUS_HPD_LIVE_STATUS_ALT REG_BIT(0)
>
>+#define TCSS_DISP_MAILBOX_IN_CMD _MMIO(0x161300)
>+#define TCSS_DISP_MAILBOX_IN_CMD_RUN_BUSY REG_BIT(31)
>+#define TCSS_DISP_MAILBOX_IN_CMD_CMD_MASK REG_GENMASK(7, 0)
>+#define TCSS_DISP_MAILBOX_IN_CMD_DATA(x) TCSS_DISP_MAILBOX_IN_CMD_RUN_BUSY | \
>+ REG_FIELD_PREP(TCSS_DISP_MAILBOX_IN_CMD_CMD_MASK, (x))
Missing a blank line here.
--
Gustavo Sousa
>+#define TCSS_DISP_MAILBOX_IN_DATA _MMIO(0x161304)
>+
> #define PRIMARY_SPI_TRIGGER _MMIO(0x102040)
> #define PRIMARY_SPI_ADDRESS _MMIO(0x102080)
> #define PRIMARY_SPI_REGIONID _MMIO(0x102084)
>--
>2.45.0
>
^ permalink raw reply [flat|nested] 30+ messages in thread* RE: [PATCH 12/12] drm/i915/xe3lpd: Power request asserting/deasserting
2024-10-23 20:39 ` Gustavo Sousa
@ 2024-10-28 9:11 ` Kahola, Mika
0 siblings, 0 replies; 30+ messages in thread
From: Kahola, Mika @ 2024-10-28 9:11 UTC (permalink / raw)
To: Sousa, Gustavo, Atwood, Matthew S,
intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org
Cc: Atwood, Matthew S, Taylor, Clinton A
> -----Original Message-----
> From: Sousa, Gustavo <gustavo.sousa@intel.com>
> Sent: Wednesday, 23 October 2024 23.40
> To: Atwood, Matthew S <matthew.s.atwood@intel.com>; intel-
> gfx@lists.freedesktop.org; intel-xe@lists.freedesktop.org
> Cc: Kahola, Mika <mika.kahola@intel.com>; Atwood, Matthew S
> <matthew.s.atwood@intel.com>; Taylor, Clinton A <clinton.a.taylor@intel.com>
> Subject: Re: [PATCH 12/12] drm/i915/xe3lpd: Power request
> asserting/deasserting
>
> Quoting Matt Atwood (2024-10-18 17:49:41-03:00)
> >From: Mika Kahola <mika.kahola@intel.com>
> >
> >There is a HW issue that arises when there are race conditions between
> >TCSS entering/exiting TC7 or TC10 states while the driver is
> >asserting/deasserting TCSS power request. As a workaround, Display
> >driver will implement a mailbox sequence to ensure that the TCSS is in
> >TC0 when TCSS power request is asserted/deasserted.
> >
> >The sequence is the following
> >
> >1. Read mailbox command status and wait until run/busy bit is
> > clear
> >2. Write mailbox data value '1' for power request asserting
> > and '0' for power request deasserting 3. Write mailbox command
> >run/busy bit and command value with 0x1 4. Read mailbox command and
> >wait until run/busy bit is clear
> > before continuing power request.
> >
> >Signed-off-by: Mika Kahola <mika.kahola@intel.com>
> >Signed-off-by: Matt Atwood <matthew.s.atwood@intel.com>
> >---
> > drivers/gpu/drm/i915/display/intel_tc.c | 40 +++++++++++++++++++++++++
> > drivers/gpu/drm/i915/i915_reg.h | 7 +++++
> > 2 files changed, 47 insertions(+)
> >
> >diff --git a/drivers/gpu/drm/i915/display/intel_tc.c
> >b/drivers/gpu/drm/i915/display/intel_tc.c
> >index 6f2ee7dbc43b..7d9f87db381c 100644
> >--- a/drivers/gpu/drm/i915/display/intel_tc.c
> >+++ b/drivers/gpu/drm/i915/display/intel_tc.c
> >@@ -1013,6 +1013,39 @@ xelpdp_tc_phy_wait_for_tcss_power(struct
> intel_tc_port *tc, bool enabled)
> > return true;
> > }
> >
> >+static bool xelpdp_tc_phy_wait_for_tcss_ready(struct drm_i915_private
> >+*i915,
>
> I think xelpdp_ is not right here as this does not apply to Xe_LPD+. I think we
> could simply use the workaround lineage number for the name of this function.
> Something like wa_14020908590().
I couldn't find any workarounds with this 14020908590 number. Maybe we could rename the function wa_tcss_power_assert()?
>
> >+ bool enable) {
> >+ if (DISPLAY_VER(i915) < 30)
>
> The description of the internal ticket that resulted in this workaround makes me
> wonder if this is actually an issue associated to the SoC instead of display or PICA
> IP. However the ticket metadata indicates the PICA IP as the one affected. It
> would be good to confirm the correct association here.
>
> In any case, this seems not really related to the display IP, so checking
> DISPLAY_VER(i915) seems not very precise here.
>
> If it turns out that this is a SoC-related issue, it would be better to check if the
> platform is PTL.
>
> Now, if this is indeed an issue associated to the PICA IP, then I see the following
> alternatives:
>
> - add an earlier patch to detect the PICA IP and add that info to
> intel_display_runtime_info. Then, here we use that info in the
> condition for this workaround;
>
> - at least add a comment here that we are checking the display version
> because we do not have PICA IP detection in the driver yet. In this
> case.
>
> I tend to think that checking version equality would make more sense (assuming
> the issue would not be seen in a future platform).
I'm assuming this is more related to PICA IP than platform but I cannot confirm that yet. In the meantime, I could add a comment and check display version only for the PTL platform.
>
> >+ return true;
> >+
> >+ /* check if mailbox is running busy */
> >+ if (intel_de_wait_for_clear(i915, TCSS_DISP_MAILBOX_IN_CMD,
> >+ TCSS_DISP_MAILBOX_IN_CMD_RUN_BUSY, 10)) {
> >+ drm_dbg_kms(&i915->drm,
> >+ "timeout waiting for TCSS mailbox run/busy bit to clear\n");
> >+ return false;
> >+ }
> >+
> >+ if (enable)
> >+ intel_de_write(i915, TCSS_DISP_MAILBOX_IN_DATA, 1);
> >+ else
> >+ intel_de_write(i915, TCSS_DISP_MAILBOX_IN_DATA, 0);
> >+
> >+ intel_de_write(i915, TCSS_DISP_MAILBOX_IN_CMD,
> >+ TCSS_DISP_MAILBOX_IN_CMD_DATA(1));
>
> Nitpick: I would prefer a more explicit version of this. Something like:
>
> intel_de_write(i915, TCSS_DISP_MAILBOX_IN_CMD,
> TCSS_DISP_MAILBOX_IN_CMD_RUN_BUSY |
> TCSS_DISP_MAILBOX_IN_CMD_CMD(0x1));
>
> With the current version, I had to go and check that
> TCSS_DISP_MAILBOX_IN_CMD_DATA() also includes the run/busy bit.
>
> >+
> >+ /* wait to clear mailbox running busy bit before continuing */
> >+ if (intel_de_wait_for_clear(i915, TCSS_DISP_MAILBOX_IN_CMD,
> >+ TCSS_DISP_MAILBOX_IN_CMD_RUN_BUSY, 10)) {
> >+ drm_dbg_kms(&i915->drm,
> >+ "timeout waiting for TCSS mailbox run/busy
> >+ bit to clear\n");
>
> I think would be good to have different timeout messages so that it is easy to
> differentiate whether we timed out while waiting for our turn to use the mailbox
> or while waiting for our command to be handled.
I'll rephrase the wording here.
>
> >+ return false;
> >+ }
> >+
> >+ return true;
> >+}
> >+
> > static void __xelpdp_tc_phy_enable_tcss_power(struct intel_tc_port
> >*tc, bool enable) {
> > struct drm_i915_private *i915 = tc_to_i915(tc); @@ -1022,6
> >+1055,13 @@ static void __xelpdp_tc_phy_enable_tcss_power(struct
> >intel_tc_port *tc, bool ena
> >
> > assert_tc_cold_blocked(tc);
> >
> >+ /*
> >+ * Gfx driver workaround for PTL tcss_rxdetect_clkswb_req/ack handshake
> >+ * violation when pwwreq= 0->1 during TC7/10 entry
> >+ */
> >+ drm_WARN_ON(&i915->drm,
> >+ !xelpdp_tc_phy_wait_for_tcss_ready(i915, enable));
> >+
> > val = intel_de_read(i915, reg);
> > if (enable)
> > val |= XELPDP_TCSS_POWER_REQUEST; diff --git
> >a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
> >index 2743a2dd0a3d..d2775a32bf18 100644
> >--- a/drivers/gpu/drm/i915/i915_reg.h
> >+++ b/drivers/gpu/drm/i915/i915_reg.h
>
> Maybe intel_cx0_phy_regs.h would be a better home for the mailbox registers,
> since it is where XELPDP_PORT_BUF_CTL1 and
> XELPDP_TCSS_POWER_{REQUEST,STATE} are defined?
>
> Not the perfect place, but at least we would not add new definitions to
> i915_reg.h and add to the work of separating display code from i915.
Ok, I will move these defs to intel_cx0_phy_regs.h
>
> >@@ -4539,6 +4539,13 @@ enum skl_power_gate {
> > #define TCSS_DDI_STATUS_HPD_LIVE_STATUS_TBT REG_BIT(1)
> > #define TCSS_DDI_STATUS_HPD_LIVE_STATUS_ALT REG_BIT(0)
> >
> >+#define TCSS_DISP_MAILBOX_IN_CMD _MMIO(0x161300)
> >+#define TCSS_DISP_MAILBOX_IN_CMD_RUN_BUSY REG_BIT(31)
> >+#define TCSS_DISP_MAILBOX_IN_CMD_CMD_MASK REG_GENMASK(7, 0)
> >+#define TCSS_DISP_MAILBOX_IN_CMD_DATA(x)
> TCSS_DISP_MAILBOX_IN_CMD_RUN_BUSY | \
> >+
> >+REG_FIELD_PREP(TCSS_DISP_MAILBOX_IN_CMD_CMD_MASK, (x))
>
> Missing a blank line here.
Ok
I will make few adjustments to the patch. Thanks for the comments and a review!
-Mika-
>
> --
> Gustavo Sousa
>
> >+#define TCSS_DISP_MAILBOX_IN_DATA _MMIO(0x161304)
> >+
> > #define PRIMARY_SPI_TRIGGER _MMIO(0x102040)
> > #define PRIMARY_SPI_ADDRESS _MMIO(0x102080)
> > #define PRIMARY_SPI_REGIONID _MMIO(0x102084)
> >--
> >2.45.0
> >
^ permalink raw reply [flat|nested] 30+ messages in thread
* ✗ Fi.CI.CHECKPATCH: warning for drm/i915/xe3lpd: ptl display patches
2024-10-18 20:49 [PATCH 00/12] drm/i915/xe3lpd: ptl display patches Matt Atwood
` (11 preceding siblings ...)
2024-10-18 20:49 ` [PATCH 12/12] drm/i915/xe3lpd: Power request asserting/deasserting Matt Atwood
@ 2024-10-18 21:45 ` Patchwork
2024-10-18 21:45 ` ✗ Fi.CI.SPARSE: " Patchwork
2024-10-18 21:45 ` ✗ Fi.CI.BAT: failure " Patchwork
14 siblings, 0 replies; 30+ messages in thread
From: Patchwork @ 2024-10-18 21:45 UTC (permalink / raw)
To: Matt Atwood; +Cc: intel-gfx
== Series Details ==
Series: drm/i915/xe3lpd: ptl display patches
URL : https://patchwork.freedesktop.org/series/140196/
State : warning
== Summary ==
Error: dim checkpatch failed
a321afa49956 drm/i915/display/ptl: Fill VRR crtc_state timings before other transcoder timings
-:9: WARNING:TYPO_SPELLING: 'accomodate' may be misspelled - perhaps 'accommodate'?
#9:
intel_vrr_get_config before intel_get_transcoder_timings to accomodate
^^^^^^^^^^
total: 0 errors, 1 warnings, 0 checks, 16 lines checked
d3fd7e371877 drm/i915/ptl: Define IS_PANTHERLAKE macro
-:20: CHECK:MACRO_ARG_PRECEDENCE: Macro argument 'i915' may be better as '(i915)' to avoid precedence issues
#20: FILE: drivers/gpu/drm/i915/i915_drv.h:541:
+#define IS_PANTHERLAKE(i915) (0 && i915)
total: 0 errors, 0 warnings, 1 checks, 7 lines checked
6d14fe71ffed drm/i915/cx0: Extend C10 check to PTL
8a555aa21f54 drm/i915/ptl: Move async flip bit to PLANE_SURF register
-:28: ERROR:SPACING: space required before the open brace '{'
#28: FILE: drivers/gpu/drm/i915/display/skl_universal_plane.c:1575:
+ if (async_flip){
-:30: ERROR:CODE_INDENT: code indent should use tabs where possible
#30: FILE: drivers/gpu/drm/i915/display/skl_universal_plane.c:1577:
+^I plane_surf |= PLANE_SURF_ASYNC_UPDATE;$
total: 2 errors, 0 warnings, 0 checks, 33 lines checked
a563b1c6d331 drm/i915/xe3: Underrun recovery does not exist post Xe2
69b06eae4f5a drm/i915/display/xe3: disable x-tiled framebuffers
7b2c449c876d drm/i915/xe3lpd: Skip disabling VRR during modeset disable
de1b3b01e104 drm/i915/xe3lpd: Increase resolution for plane to support 6k
-:39: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#39: FILE: drivers/gpu/drm/i915/display/skl_universal_plane.c:435:
+static int xe3_plane_max_width(const struct drm_framebuffer *fb,
+ int color_plane,
-:57: ERROR:SPACING: space required after that close brace '}'
#57: FILE: drivers/gpu/drm/i915/display/skl_universal_plane.c:2603:
+ }else if (DISPLAY_VER(dev_priv) >= 11) {
total: 1 errors, 0 warnings, 1 checks, 36 lines checked
a2d680a52386 drm/i915/xe3lpd: Increase max_h max_v for PSR
b8d95e27cc30 drm/i915/xe3lpd: Increase bigjoiner limitations
1fa2d15ed3be drm/i915/xe3lpd: Prune modes for YUV420
-:6: WARNING:TYPO_SPELLING: 'upto' may be misspelled - perhaps 'up to'?
#6:
We only support resolution upto 4k for single pipe when using
^^^^
total: 0 errors, 1 warnings, 0 checks, 42 lines checked
dcd252e08107 drm/i915/xe3lpd: Power request asserting/deasserting
-:95: ERROR:COMPLEX_MACRO: Macros with complex values should be enclosed in parentheses
#95: FILE: drivers/gpu/drm/i915/i915_reg.h:4543:
+#define TCSS_DISP_MAILBOX_IN_CMD_DATA(x) TCSS_DISP_MAILBOX_IN_CMD_RUN_BUSY | \
+ REG_FIELD_PREP(TCSS_DISP_MAILBOX_IN_CMD_CMD_MASK, (x))
-:96: WARNING:LONG_LINE: line length of 102 exceeds 100 columns
#96: FILE: drivers/gpu/drm/i915/i915_reg.h:4544:
+ REG_FIELD_PREP(TCSS_DISP_MAILBOX_IN_CMD_CMD_MASK, (x))
total: 1 errors, 1 warnings, 0 checks, 65 lines checked
^ permalink raw reply [flat|nested] 30+ messages in thread* ✗ Fi.CI.SPARSE: warning for drm/i915/xe3lpd: ptl display patches
2024-10-18 20:49 [PATCH 00/12] drm/i915/xe3lpd: ptl display patches Matt Atwood
` (12 preceding siblings ...)
2024-10-18 21:45 ` ✗ Fi.CI.CHECKPATCH: warning for drm/i915/xe3lpd: ptl display patches Patchwork
@ 2024-10-18 21:45 ` Patchwork
2024-10-18 21:45 ` ✗ Fi.CI.BAT: failure " Patchwork
14 siblings, 0 replies; 30+ messages in thread
From: Patchwork @ 2024-10-18 21:45 UTC (permalink / raw)
To: Matt Atwood; +Cc: intel-gfx
== Series Details ==
Series: drm/i915/xe3lpd: ptl display patches
URL : https://patchwork.freedesktop.org/series/140196/
State : warning
== Summary ==
Error: dim sparse failed
Sparse version: v0.6.2
Fast mode used, each commit won't be checked separately.
^ permalink raw reply [flat|nested] 30+ messages in thread* ✗ Fi.CI.BAT: failure for drm/i915/xe3lpd: ptl display patches
2024-10-18 20:49 [PATCH 00/12] drm/i915/xe3lpd: ptl display patches Matt Atwood
` (13 preceding siblings ...)
2024-10-18 21:45 ` ✗ Fi.CI.SPARSE: " Patchwork
@ 2024-10-18 21:45 ` Patchwork
14 siblings, 0 replies; 30+ messages in thread
From: Patchwork @ 2024-10-18 21:45 UTC (permalink / raw)
To: Matt Atwood; +Cc: intel-gfx
[-- Attachment #1: Type: text/plain, Size: 8144 bytes --]
== Series Details ==
Series: drm/i915/xe3lpd: ptl display patches
URL : https://patchwork.freedesktop.org/series/140196/
State : failure
== Summary ==
CI Bug Log - changes from CI_DRM_15562 -> Patchwork_140196v1
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with Patchwork_140196v1 absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in Patchwork_140196v1, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them
to document this new failure mode, which will reduce false positives in CI.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140196v1/index.html
Participating hosts (41 -> 40)
------------------------------
Missing (1): fi-snb-2520m
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in Patchwork_140196v1:
### IGT changes ###
#### Possible regressions ####
* igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12:
- bat-twl-2: [PASS][1] -> [DMESG-WARN][2] +1 other test dmesg-warn
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15562/bat-twl-2/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140196v1/bat-twl-2/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12.html
- bat-adlp-6: [PASS][3] -> [DMESG-WARN][4] +3 other tests dmesg-warn
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15562/bat-adlp-6/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140196v1/bat-adlp-6/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12.html
* igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12@pipe-c-edp-1:
- bat-twl-1: [PASS][5] -> [DMESG-WARN][6] +1 other test dmesg-warn
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15562/bat-twl-1/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12@pipe-c-edp-1.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140196v1/bat-twl-1/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12@pipe-c-edp-1.html
* igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12@pipe-d-edp-1:
- bat-mtlp-8: [PASS][7] -> [DMESG-WARN][8] +35 other tests dmesg-warn
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15562/bat-mtlp-8/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12@pipe-d-edp-1.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140196v1/bat-mtlp-8/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12@pipe-d-edp-1.html
- bat-arls-2: [PASS][9] -> [DMESG-WARN][10] +4 other tests dmesg-warn
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15562/bat-arls-2/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12@pipe-d-edp-1.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140196v1/bat-arls-2/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12@pipe-d-edp-1.html
* igt@kms_pipe_crc_basic@compare-crc-sanitycheck-xr24@pipe-a-dp-1:
- bat-adlp-9: [PASS][11] -> [DMESG-WARN][12] +28 other tests dmesg-warn
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15562/bat-adlp-9/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-xr24@pipe-a-dp-1.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140196v1/bat-adlp-9/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-xr24@pipe-a-dp-1.html
* igt@kms_pipe_crc_basic@hang-read-crc@pipe-b-hdmi-a-2:
- bat-arls-1: [PASS][13] -> [DMESG-WARN][14] +42 other tests dmesg-warn
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15562/bat-arls-1/igt@kms_pipe_crc_basic@hang-read-crc@pipe-b-hdmi-a-2.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140196v1/bat-arls-1/igt@kms_pipe_crc_basic@hang-read-crc@pipe-b-hdmi-a-2.html
#### Suppressed ####
The following results come from untrusted machines, tests, or statuses.
They do not affect the overall result.
* igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12@pipe-d-edp-1:
- {bat-arlh-3}: [PASS][15] -> [DMESG-WARN][16] +2 other tests dmesg-warn
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15562/bat-arlh-3/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12@pipe-d-edp-1.html
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140196v1/bat-arlh-3/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12@pipe-d-edp-1.html
Known issues
------------
Here are the changes found in Patchwork_140196v1 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@i915_selftest@live:
- bat-mtlp-8: [PASS][17] -> [ABORT][18] ([i915#12216]) +1 other test abort
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15562/bat-mtlp-8/igt@i915_selftest@live.html
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140196v1/bat-mtlp-8/igt@i915_selftest@live.html
* igt@kms_chamelium_edid@hdmi-edid-read:
- bat-dg2-13: [PASS][19] -> [DMESG-WARN][20] ([i915#12253])
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15562/bat-dg2-13/igt@kms_chamelium_edid@hdmi-edid-read.html
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140196v1/bat-dg2-13/igt@kms_chamelium_edid@hdmi-edid-read.html
* igt@kms_pipe_crc_basic@compare-crc-sanitycheck-xr24:
- bat-arls-1: [PASS][21] -> [DMESG-WARN][22] ([i915#1982])
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15562/bat-arls-1/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-xr24.html
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140196v1/bat-arls-1/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-xr24.html
#### Possible fixes ####
* igt@i915_selftest@live:
- bat-dg2-8: [DMESG-FAIL][23] ([i915#12133] / [i915#9500]) -> [PASS][24]
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15562/bat-dg2-8/igt@i915_selftest@live.html
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140196v1/bat-dg2-8/igt@i915_selftest@live.html
- {bat-arlh-3}: [ABORT][25] ([i915#12133]) -> [PASS][26]
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15562/bat-arlh-3/igt@i915_selftest@live.html
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140196v1/bat-arlh-3/igt@i915_selftest@live.html
* igt@i915_selftest@live@workarounds:
- {bat-arlh-3}: [ABORT][27] ([i915#12061]) -> [PASS][28]
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15562/bat-arlh-3/igt@i915_selftest@live@workarounds.html
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140196v1/bat-arlh-3/igt@i915_selftest@live@workarounds.html
- bat-dg2-8: [DMESG-FAIL][29] ([i915#9500]) -> [PASS][30]
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15562/bat-dg2-8/igt@i915_selftest@live@workarounds.html
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140196v1/bat-dg2-8/igt@i915_selftest@live@workarounds.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[i915#12061]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12061
[i915#12133]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12133
[i915#12216]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12216
[i915#12253]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12253
[i915#1982]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1982
[i915#9500]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9500
Build changes
-------------
* Linux: CI_DRM_15562 -> Patchwork_140196v1
CI-20190529: 20190529
CI_DRM_15562: fe768c9d3f0cfbe30a1dddf3ae2319d1e04a4403 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_8080: 20fcbc59241a16c84d12f4f6ba390fb46fd65a36 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Patchwork_140196v1: fe768c9d3f0cfbe30a1dddf3ae2319d1e04a4403 @ git://anongit.freedesktop.org/gfx-ci/linux
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140196v1/index.html
[-- Attachment #2: Type: text/html, Size: 9218 bytes --]
^ permalink raw reply [flat|nested] 30+ messages in thread