Re: [Intel-gfx] [PATCH v2 1/3] drm/i915: Reorder hpd init vs. display resume

2020-10-08 Thread Ville Syrjälä
On Wed, Oct 07, 2020 at 06:15:47PM -0400, Lyude Paul wrote:
> On Wed, 2020-10-07 at 22:22 +0300, Ville Syrjala wrote:
> > From: Ville Syrjälä 
> > 
> > Currently we call .hpd_irq_setup() directly just before display
> > resume, and follow it with another call via intel_hpd_init()
> > just afterwards. Assuming the hpd pins are marked as enabled
> > during the open-coded call these two things do exactly the
> > same thing (ie. enable HPD interrupts). Which even makes sense
> > since we definitely need working HPD interrupts for MST sideband
> > during the display resume.
> > 
> > So let's nuke the open-coded call and move the intel_hpd_init()
> > call earlier. However we need to leave the poll_init_work stuff
> > behind after the display resume as that will trigger display
> > detection while we're resuming. We don't want that trampling over
> > the display resume process. To make this a bit more symmetric
> > we turn this into a intel_hpd_poll_{enable,disable}() pair.
> > So we end up with the following transformation:
> > intel_hpd_poll_init() -> intel_hpd_poll_enable()
> > lone intel_hpd_init() -> intel_hpd_init()+intel_hpd_poll_disable()
> > .hpd_irq_setup()+resume+intel_hpd_init() ->
> > intel_hpd_init()+resume+intel_hpd_poll_disable()
> > 
> > If we really would like to prevent all *long* HPD processing during
> > display resume we'd need some kind of software mechanism to simply
> > ignore all long HPDs. Currently we appear to have that just for
> > fbdev via ifbdev->hpd_suspended. Since we aren't exploding left and
> > right all the time I guess that's mostly sufficient.
> > 
> > For a bit of history on this, we first got a mechanism to block
> > hotplug processing during suspend in commit 15239099d7a7 ("drm/i915:
> > enable irqs earlier when resuming") on account of moving the irq enable
> > earlier. This then got removed in commit 50c3dc970a09 ("drm/fb-helper:
> > Fix hpd vs. initial config races") because the fdev initial config
> > got pushed to a later point. The second ad-hoc hpd_irq_setup() for
> > resume was added in commit 0e32b39ceed6 ("drm/i915: add DP 1.2 MST
> > support (v0.7)") to be able to do MST sideband during the resume.
> > And finally we got a partial resurrection of the hpd blocking
> > mechanism in commit e8a8fedd57fd ("drm/i915: Block fbdev HPD
> > processing during suspend"), but this time it only prevent fbdev
> > from handling hpd while resuming.
> > 
> > v2: Leave the poll_init_work behind
> > 
> > Cc: Lyude Paul 
> > Signed-off-by: Ville Syrjälä 
> > ---
> >  drivers/gpu/drm/i915/display/intel_display.c  |  9 ++--
> >  .../drm/i915/display/intel_display_power.c|  3 +-
> >  drivers/gpu/drm/i915/display/intel_hotplug.c  | 42 ++-
> >  drivers/gpu/drm/i915/display/intel_hotplug.h  |  3 +-
> >  drivers/gpu/drm/i915/i915_drv.c   | 23 --
> >  5 files changed, 46 insertions(+), 34 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/display/intel_display.c
> > b/drivers/gpu/drm/i915/display/intel_display.c
> > index 907e1d155443..0d5607ae97c4 100644
> > --- a/drivers/gpu/drm/i915/display/intel_display.c
> > +++ b/drivers/gpu/drm/i915/display/intel_display.c
> > @@ -5036,18 +5036,15 @@ void intel_finish_reset(struct drm_i915_private
> > *dev_priv)
> > intel_pps_unlock_regs_wa(dev_priv);
> > intel_modeset_init_hw(dev_priv);
> > intel_init_clock_gating(dev_priv);
> > -
> > -   spin_lock_irq(&dev_priv->irq_lock);
> > -   if (dev_priv->display.hpd_irq_setup)
> > -   dev_priv->display.hpd_irq_setup(dev_priv);
> > -   spin_unlock_irq(&dev_priv->irq_lock);
> > +   intel_hpd_init(dev_priv);
> > +   intel_hpd_poll_disable(dev_priv);
> >  
> > ret = __intel_display_resume(dev, state, ctx);
> > if (ret)
> > drm_err(&dev_priv->drm,
> > "Restoring old state failed with %i\n", ret);
> >  
> > -   intel_hpd_init(dev_priv);
> > +   intel_hpd_poll_disable(dev_priv);
> 
> Looks like you're calling intel_hpd_poll_disable() twice here, is this
> intentional?

No, just a failure to follow my own rules. Thanks for spotting it.

-- 
Ville Syrjälä
Intel
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH 03/20] drm/i915: Add PORT_TCn aliases to enum port

2020-10-08 Thread Ville Syrjälä
On Wed, Oct 07, 2020 at 03:28:48PM -0700, Lucas De Marchi wrote:
> On Tue, Oct 06, 2020 at 05:33:32PM +0300, Ville Syrjälä wrote:
> >diff --git a/drivers/gpu/drm/i915/display/intel_display.h 
> >b/drivers/gpu/drm/i915/display/intel_display.h
> >index 8c93253cbd95..a39be3c9e0cf 100644
> >--- a/drivers/gpu/drm/i915/display/intel_display.h
> >+++ b/drivers/gpu/drm/i915/display/intel_display.h
> >@@ -207,6 +207,14 @@ enum port {
> > PORT_H,
> > PORT_I,
> >
> >+/* tgl+ */
> >+PORT_TC1 = PORT_D,
> 
> ICL also uses TC ports but there PORT_TC1 would be PORT_C. Just ignore
> that and only add the aliases for tgl+ or should we also add for ICL to
> avoid confusion?

The spec still uses the DDI C-F names on icl for the TC DDIs.
My idea here is to match the spec terminology.

However, it's going to get annoying in the future because some
of the TC DDIs revert back to alphabetic names in the future,
and in a way that doesn't match the original alphabetic names.
Not quite sure how to deal with that. Probably more aliases,
but this time with a platform specific suffix :(

> 
> Lucas De Marchi
> 
> >+PORT_TC2,
> >+PORT_TC3,
> >+PORT_TC4,
> >+PORT_TC5,
> >+PORT_TC6,
> >+
> > I915_MAX_PORTS
> > };
> >
> >-- 
> >2.26.2
> >
> >___
> >Intel-gfx mailing list
> >Intel-gfx@lists.freedesktop.org
> >https://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Ville Syrjälä
Intel
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH 05/20] drm/i915: Introduce AUX_CH_USBCn

2020-10-08 Thread Ville Syrjälä
On Wed, Oct 07, 2020 at 03:51:11PM -0700, Lucas De Marchi wrote:
> On Tue, Oct 06, 2020 at 05:33:34PM +0300, Ville Syrjälä wrote:
> >From: Ville Syrjälä 
> >
> >Just like with the DDIs tgl+ renamed the AUX CHs to reflect
> >the type of the DDI. Let's add the aliasing enum values for
> >the type-C AUX CHs.
> >
> >Signed-off-by: Ville Syrjälä 
> >---
> > drivers/gpu/drm/i915/display/intel_display.h |  8 +++
> > drivers/gpu/drm/i915/display/intel_dp.c  | 53 ++--
> > 2 files changed, 58 insertions(+), 3 deletions(-)
> >
> >diff --git a/drivers/gpu/drm/i915/display/intel_display.h 
> >b/drivers/gpu/drm/i915/display/intel_display.h
> >index a39be3c9e0cf..cba876721ea0 100644
> >--- a/drivers/gpu/drm/i915/display/intel_display.h
> >+++ b/drivers/gpu/drm/i915/display/intel_display.h
> >@@ -290,6 +290,14 @@ enum aux_ch {
> > AUX_CH_G,
> > AUX_CH_H,
> > AUX_CH_I,
> >+
> >+/* tgl+ */
> >+AUX_CH_USBC1 = AUX_CH_D,
> >+AUX_CH_USBC2,
> >+AUX_CH_USBC3,
> >+AUX_CH_USBC4,
> >+AUX_CH_USBC5,
> >+AUX_CH_USBC6,
> > };
> >
> > #define aux_ch_name(a) ((a) + 'A')
> >diff --git a/drivers/gpu/drm/i915/display/intel_dp.c 
> >b/drivers/gpu/drm/i915/display/intel_dp.c
> >index 239016dcd544..a73c354c920e 100644
> >--- a/drivers/gpu/drm/i915/display/intel_dp.c
> >+++ b/drivers/gpu/drm/i915/display/intel_dp.c
> >@@ -1792,7 +1792,6 @@ static i915_reg_t skl_aux_ctl_reg(struct intel_dp 
> >*intel_dp)
> > case AUX_CH_D:
> > case AUX_CH_E:
> > case AUX_CH_F:
> >-case AUX_CH_G:
> > return DP_AUX_CH_CTL(aux_ch);
> > default:
> > MISSING_CASE(aux_ch);
> >@@ -1813,7 +1812,52 @@ static i915_reg_t skl_aux_data_reg(struct intel_dp 
> >*intel_dp, int index)
> > case AUX_CH_D:
> > case AUX_CH_E:
> > case AUX_CH_F:
> >-case AUX_CH_G:
> >+return DP_AUX_CH_DATA(aux_ch, index);
> >+default:
> >+MISSING_CASE(aux_ch);
> >+return DP_AUX_CH_DATA(AUX_CH_A, index);
> >+}
> >+}
> >+
> >+static i915_reg_t tgl_aux_ctl_reg(struct intel_dp *intel_dp)
> >+{
> >+struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
> >+struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp);
> >+enum aux_ch aux_ch = dig_port->aux_ch;
> >+
> >+switch (aux_ch) {
> >+case AUX_CH_A:
> >+case AUX_CH_B:
> >+case AUX_CH_C:
> >+case AUX_CH_USBC1:
> >+case AUX_CH_USBC2:
> >+case AUX_CH_USBC3:
> >+case AUX_CH_USBC4:
> >+case AUX_CH_USBC5:
> >+case AUX_CH_USBC6:
> >+return DP_AUX_CH_CTL(aux_ch);
> >+default:
> >+MISSING_CASE(aux_ch);
> >+return DP_AUX_CH_CTL(AUX_CH_A);
> >+}
> >+}
> >+
> >+static i915_reg_t tgl_aux_data_reg(struct intel_dp *intel_dp, int index)
> >+{
> >+struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
> >+struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp);
> >+enum aux_ch aux_ch = dig_port->aux_ch;
> >+
> >+switch (aux_ch) {
> >+case AUX_CH_A:
> >+case AUX_CH_B:
> >+case AUX_CH_C:
> >+case AUX_CH_USBC1:
> >+case AUX_CH_USBC2:
> >+case AUX_CH_USBC3:
> >+case AUX_CH_USBC4:
> >+case AUX_CH_USBC5:
> >+case AUX_CH_USBC6:
> > return DP_AUX_CH_DATA(aux_ch, index);
> > default:
> > MISSING_CASE(aux_ch);
> >@@ -1834,7 +1878,10 @@ intel_dp_aux_init(struct intel_dp *intel_dp)
> > struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp);
> > struct intel_encoder *encoder = &dig_port->base;
> >
> >-if (INTEL_GEN(dev_priv) >= 9) {
> >+if (INTEL_GEN(dev_priv) >= 12) {
> >+intel_dp->aux_ch_ctl_reg = tgl_aux_ctl_reg;
> 
> why is this even a function pointer rather than just the reg? AFAICS it
> only depends on dig_port->aux_ch that is initialized in intel_ddi_init()

Just for consistency with .aux_ch_data_reg() I guess. Can't remember
a more specific reason at least.

> 
> but could be orthogonal to the change here.
> 
> 
> Reviewed-by: Lucas De Marchi 
> 
> Lucas De Marchi
> 
> >+intel_dp->aux_ch_data_reg = tgl_aux_data_reg;
> >+} else if (INTEL_GEN(dev_priv) >= 9) {
> > intel_dp->aux_ch_ctl_reg = skl_aux_ctl_reg;
> > intel_dp->aux_ch_data_reg = skl_aux_data_reg;
> > } else if (HAS_PCH_SPLIT(dev_priv)) {
> >-- 
> >2.26.2
> >
> >___
> >Intel-gfx mailing list
> >Intel-gfx@lists.freedesktop.org
> >https://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Ville Syrjälä
Intel
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH 07/20] drm/i915: Use AUX_CH_USBCn for the RKL VBT AUX CH setup

2020-10-08 Thread Ville Syrjälä
On Wed, Oct 07, 2020 at 04:11:45PM -0700, Lucas De Marchi wrote:
> On Tue, Oct 06, 2020 at 05:33:36PM +0300, Ville Syrjälä wrote:
> >From: Ville Syrjälä 
> >
> >As with the VBT DVO port, RKL uses PHY based mapping for the
> >VBT AUX CH. Adjust the code to use the new AUX_USBCn names
> >and add a comment to explain the situation.
> >
> >Signed-off-by: Ville Syrjälä 
> >---
> > drivers/gpu/drm/i915/display/intel_bios.c | 8 ++--
> > 1 file changed, 6 insertions(+), 2 deletions(-)
> >
> >diff --git a/drivers/gpu/drm/i915/display/intel_bios.c 
> >b/drivers/gpu/drm/i915/display/intel_bios.c
> >index 179029c3d3d5..77c86f51c36d 100644
> >--- a/drivers/gpu/drm/i915/display/intel_bios.c
> >+++ b/drivers/gpu/drm/i915/display/intel_bios.c
> >@@ -2636,10 +2636,14 @@ enum aux_ch intel_bios_port_aux_ch(struct 
> >drm_i915_private *dev_priv,
> > aux_ch = AUX_CH_B;
> > break;
> > case DP_AUX_C:
> >-aux_ch = IS_ROCKETLAKE(dev_priv) ? AUX_CH_D : AUX_CH_C;
> >+/*
> >+ * RKL VBT uses PHY based mapping. Combo PHYs A,B,C,D
> >+ * map to DDI A,B,TC1,TC2 respectively.
> 
> This will conflict with DG1 that was just merged and use the same
> mapping as RKL. Change here LGTM.

Aye. I'm still pondering how to make this VBT port stuf not
suck so badly. I guess some kind of platform dependent
i915->VBT enum mapping function(s) could work, but not sure.

> 
> Reviewed-by: Lucas De Marchi 
> 
> Lucas De Marchi
> 
> >+ */
> >+aux_ch = IS_ROCKETLAKE(dev_priv) ? AUX_CH_USBC1 : AUX_CH_C;
> > break;
> > case DP_AUX_D:
> >-aux_ch = IS_ROCKETLAKE(dev_priv) ? AUX_CH_E : AUX_CH_D;
> >+aux_ch = IS_ROCKETLAKE(dev_priv) ? AUX_CH_USBC2 : AUX_CH_D;
> > break;
> > case DP_AUX_E:
> > aux_ch = AUX_CH_E;
> >-- 
> >2.26.2
> >
> >___
> >Intel-gfx mailing list
> >Intel-gfx@lists.freedesktop.org
> >https://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Ville Syrjälä
Intel
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH 05/20] drm/i915: Introduce AUX_CH_USBCn

2020-10-08 Thread Lucas De Marchi

On Thu, Oct 08, 2020 at 11:40:28AM +0300, Ville Syrjälä wrote:

On Wed, Oct 07, 2020 at 03:51:11PM -0700, Lucas De Marchi wrote:

On Tue, Oct 06, 2020 at 05:33:34PM +0300, Ville Syrjälä wrote:
>From: Ville Syrjälä 
>
>Just like with the DDIs tgl+ renamed the AUX CHs to reflect
>the type of the DDI. Let's add the aliasing enum values for
>the type-C AUX CHs.
>
>Signed-off-by: Ville Syrjälä 
>---
> drivers/gpu/drm/i915/display/intel_display.h |  8 +++
> drivers/gpu/drm/i915/display/intel_dp.c  | 53 ++--
> 2 files changed, 58 insertions(+), 3 deletions(-)
>
>diff --git a/drivers/gpu/drm/i915/display/intel_display.h 
b/drivers/gpu/drm/i915/display/intel_display.h
>index a39be3c9e0cf..cba876721ea0 100644
>--- a/drivers/gpu/drm/i915/display/intel_display.h
>+++ b/drivers/gpu/drm/i915/display/intel_display.h
>@@ -290,6 +290,14 @@ enum aux_ch {
>AUX_CH_G,
>AUX_CH_H,
>AUX_CH_I,
>+
>+   /* tgl+ */
>+   AUX_CH_USBC1 = AUX_CH_D,
>+   AUX_CH_USBC2,
>+   AUX_CH_USBC3,
>+   AUX_CH_USBC4,
>+   AUX_CH_USBC5,
>+   AUX_CH_USBC6,
> };
>
> #define aux_ch_name(a) ((a) + 'A')
>diff --git a/drivers/gpu/drm/i915/display/intel_dp.c 
b/drivers/gpu/drm/i915/display/intel_dp.c
>index 239016dcd544..a73c354c920e 100644
>--- a/drivers/gpu/drm/i915/display/intel_dp.c
>+++ b/drivers/gpu/drm/i915/display/intel_dp.c
>@@ -1792,7 +1792,6 @@ static i915_reg_t skl_aux_ctl_reg(struct intel_dp 
*intel_dp)
>case AUX_CH_D:
>case AUX_CH_E:
>case AUX_CH_F:
>-   case AUX_CH_G:
>return DP_AUX_CH_CTL(aux_ch);
>default:
>MISSING_CASE(aux_ch);
>@@ -1813,7 +1812,52 @@ static i915_reg_t skl_aux_data_reg(struct intel_dp 
*intel_dp, int index)
>case AUX_CH_D:
>case AUX_CH_E:
>case AUX_CH_F:
>-   case AUX_CH_G:
>+   return DP_AUX_CH_DATA(aux_ch, index);
>+   default:
>+   MISSING_CASE(aux_ch);
>+   return DP_AUX_CH_DATA(AUX_CH_A, index);
>+   }
>+}
>+
>+static i915_reg_t tgl_aux_ctl_reg(struct intel_dp *intel_dp)
>+{
>+   struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
>+   struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp);
>+   enum aux_ch aux_ch = dig_port->aux_ch;
>+
>+   switch (aux_ch) {
>+   case AUX_CH_A:
>+   case AUX_CH_B:
>+   case AUX_CH_C:
>+   case AUX_CH_USBC1:
>+   case AUX_CH_USBC2:
>+   case AUX_CH_USBC3:
>+   case AUX_CH_USBC4:
>+   case AUX_CH_USBC5:
>+   case AUX_CH_USBC6:
>+   return DP_AUX_CH_CTL(aux_ch);
>+   default:
>+   MISSING_CASE(aux_ch);
>+   return DP_AUX_CH_CTL(AUX_CH_A);
>+   }
>+}
>+
>+static i915_reg_t tgl_aux_data_reg(struct intel_dp *intel_dp, int index)
>+{
>+   struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
>+   struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp);
>+   enum aux_ch aux_ch = dig_port->aux_ch;
>+
>+   switch (aux_ch) {
>+   case AUX_CH_A:
>+   case AUX_CH_B:
>+   case AUX_CH_C:
>+   case AUX_CH_USBC1:
>+   case AUX_CH_USBC2:
>+   case AUX_CH_USBC3:
>+   case AUX_CH_USBC4:
>+   case AUX_CH_USBC5:
>+   case AUX_CH_USBC6:
>return DP_AUX_CH_DATA(aux_ch, index);
>default:
>MISSING_CASE(aux_ch);
>@@ -1834,7 +1878,10 @@ intel_dp_aux_init(struct intel_dp *intel_dp)
>struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp);
>struct intel_encoder *encoder = &dig_port->base;
>
>-   if (INTEL_GEN(dev_priv) >= 9) {
>+   if (INTEL_GEN(dev_priv) >= 12) {
>+   intel_dp->aux_ch_ctl_reg = tgl_aux_ctl_reg;

why is this even a function pointer rather than just the reg? AFAICS it
only depends on dig_port->aux_ch that is initialized in intel_ddi_init()


Just for consistency with .aux_ch_data_reg() I guess. Can't remember
a more specific reason at least.


even that may be overkill since all the users just use index to
do `+ index * 4`

Lucas De Marchi





but could be orthogonal to the change here.


Reviewed-by: Lucas De Marchi 

Lucas De Marchi

>+   intel_dp->aux_ch_data_reg = tgl_aux_data_reg;
>+   } else if (INTEL_GEN(dev_priv) >= 9) {
>intel_dp->aux_ch_ctl_reg = skl_aux_ctl_reg;
>intel_dp->aux_ch_data_reg = skl_aux_data_reg;
>} else if (HAS_PCH_SPLIT(dev_priv)) {
>--
>2.26.2
>
>___
>Intel-gfx mailing list
>Intel-gfx@lists.freedesktop.org
>https://lists.freedesktop.org/mailman/listinfo/intel-gfx


--
Ville Syrjälä
Intel

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH] drm/fb-helper: Add locking to sysrq handling

2020-10-08 Thread Thomas Zimmermann
Hi

Am 07.10.20 um 15:30 schrieb Daniel Vetter:
> We didn't take the kernel_fb_helper_lock mutex, which protects that
> code. While at it, simplify the code
> - inline the function (originally shared with kgdb I think)
> - drop the error tracking and all the complications
> - drop the pointless early out, it served nothing
> 
> Signed-off-by: Daniel Vetter 
> Cc: Maarten Lankhorst 
> Cc: Maxime Ripard 
> Cc: Thomas Zimmermann 
> Cc: David Airlie 
> Cc: Daniel Vetter 
> ---
>  drivers/gpu/drm/drm_fb_helper.c | 26 +-
>  1 file changed, 5 insertions(+), 21 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
> index 8697554ccd41..c2f72bb6afb1 100644
> --- a/drivers/gpu/drm/drm_fb_helper.c
> +++ b/drivers/gpu/drm/drm_fb_helper.c
> @@ -281,18 +281,12 @@ int drm_fb_helper_restore_fbdev_mode_unlocked(struct 
> drm_fb_helper *fb_helper)
>  EXPORT_SYMBOL(drm_fb_helper_restore_fbdev_mode_unlocked);
>  
>  #ifdef CONFIG_MAGIC_SYSRQ
> -/*
> - * restore fbcon display for all kms driver's using this helper, used for 
> sysrq
> - * and panic handling.
> - */
> -static bool drm_fb_helper_force_kernel_mode(void)
> +/* emergency restore, don't bother with error reporting */
> +static void drm_fb_helper_restore_work_fn(struct work_struct *ignored)
>  {
> - bool ret, error = false;
>   struct drm_fb_helper *helper;
>  
> - if (list_empty(&kernel_fb_helper_list))
> - return false;
> -
> + mutex_lock(&kernel_fb_helper_lock);
>   list_for_each_entry(helper, &kernel_fb_helper_list, kernel_fb_list) {
>   struct drm_device *dev = helper->dev;
>  
> @@ -300,22 +294,12 @@ static bool drm_fb_helper_force_kernel_mode(void)
>   continue;
>  
>   mutex_lock(&helper->lock);
> - ret = drm_client_modeset_commit_locked(&helper->client);
> - if (ret)
> - error = true;
> + drm_client_modeset_commit_locked(&helper->client);
>   mutex_unlock(&helper->lock);
>   }
> - return error;
> + mutex_unlock(&kernel_fb_helper_lock);
>  }
>  
> -static void drm_fb_helper_restore_work_fn(struct work_struct *ignored)
> -{
> - bool ret;
> -
> - ret = drm_fb_helper_force_kernel_mode();
> - if (ret == true)
> - DRM_ERROR("Failed to restore crtc configuration\n");

Is there a specific reason for removing that warning? Even if it doesn't
show up on screen, is it not helpful in the kernel's log?

In any case, the rest looks good.

Acked-by: Thomas Zimmermann 

Best regards
Thomas

> -}
>  static DECLARE_WORK(drm_fb_helper_restore_work, 
> drm_fb_helper_restore_work_fn);
>  
>  static void drm_fb_helper_sysrq(int dummy1)
> 

-- 
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Maxfeldstr. 5, 90409 Nürnberg, Germany
(HRB 36809, AG Nürnberg)
Geschäftsführer: Felix Imendörffer



signature.asc
Description: OpenPGP digital signature
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH] drm/fb-helper: Add locking to sysrq handling

2020-10-08 Thread Daniel Vetter
On Thu, Oct 8, 2020 at 11:22 AM Thomas Zimmermann  wrote:
>
> Hi
>
> Am 07.10.20 um 15:30 schrieb Daniel Vetter:
> > We didn't take the kernel_fb_helper_lock mutex, which protects that
> > code. While at it, simplify the code
> > - inline the function (originally shared with kgdb I think)
> > - drop the error tracking and all the complications
> > - drop the pointless early out, it served nothing
> >
> > Signed-off-by: Daniel Vetter 
> > Cc: Maarten Lankhorst 
> > Cc: Maxime Ripard 
> > Cc: Thomas Zimmermann 
> > Cc: David Airlie 
> > Cc: Daniel Vetter 
> > ---
> >  drivers/gpu/drm/drm_fb_helper.c | 26 +-
> >  1 file changed, 5 insertions(+), 21 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/drm_fb_helper.c 
> > b/drivers/gpu/drm/drm_fb_helper.c
> > index 8697554ccd41..c2f72bb6afb1 100644
> > --- a/drivers/gpu/drm/drm_fb_helper.c
> > +++ b/drivers/gpu/drm/drm_fb_helper.c
> > @@ -281,18 +281,12 @@ int drm_fb_helper_restore_fbdev_mode_unlocked(struct 
> > drm_fb_helper *fb_helper)
> >  EXPORT_SYMBOL(drm_fb_helper_restore_fbdev_mode_unlocked);
> >
> >  #ifdef CONFIG_MAGIC_SYSRQ
> > -/*
> > - * restore fbcon display for all kms driver's using this helper, used for 
> > sysrq
> > - * and panic handling.
> > - */
> > -static bool drm_fb_helper_force_kernel_mode(void)
> > +/* emergency restore, don't bother with error reporting */
> > +static void drm_fb_helper_restore_work_fn(struct work_struct *ignored)
> >  {
> > - bool ret, error = false;
> >   struct drm_fb_helper *helper;
> >
> > - if (list_empty(&kernel_fb_helper_list))
> > - return false;
> > -
> > + mutex_lock(&kernel_fb_helper_lock);
> >   list_for_each_entry(helper, &kernel_fb_helper_list, kernel_fb_list) {
> >   struct drm_device *dev = helper->dev;
> >
> > @@ -300,22 +294,12 @@ static bool drm_fb_helper_force_kernel_mode(void)
> >   continue;
> >
> >   mutex_lock(&helper->lock);
> > - ret = drm_client_modeset_commit_locked(&helper->client);
> > - if (ret)
> > - error = true;
> > + drm_client_modeset_commit_locked(&helper->client);
> >   mutex_unlock(&helper->lock);
> >   }
> > - return error;
> > + mutex_unlock(&kernel_fb_helper_lock);
> >  }
> >
> > -static void drm_fb_helper_restore_work_fn(struct work_struct *ignored)
> > -{
> > - bool ret;
> > -
> > - ret = drm_fb_helper_force_kernel_mode();
> > - if (ret == true)
> > - DRM_ERROR("Failed to restore crtc configuration\n");
>
> Is there a specific reason for removing that warning? Even if it doesn't
> show up on screen, is it not helpful in the kernel's log?

I just found it really unhelpful, if you're trying to force-show
fbcon, what's the point if it doesn't work out? The user will notice.
Also, if we're really in a dire situation where you want this, in my
experience there's a bunch of random other reasons why this can fail,
mostly when the work we have to schedule for locking reasons never
runs. So it's also unreliable.

> In any case, the rest looks good.
>
> Acked-by: Thomas Zimmermann 

Thanks for taking a look, I'll apply it.
-Daniel

>
> Best regards
> Thomas
>
> > -}
> >  static DECLARE_WORK(drm_fb_helper_restore_work, 
> > drm_fb_helper_restore_work_fn);
> >
> >  static void drm_fb_helper_sysrq(int dummy1)
> >
>
> --
> Thomas Zimmermann
> Graphics Driver Developer
> SUSE Software Solutions Germany GmbH
> Maxfeldstr. 5, 90409 Nürnberg, Germany
> (HRB 36809, AG Nürnberg)
> Geschäftsführer: Felix Imendörffer
>


-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH 2/2] drm/atomic: debug output for EBUSY

2020-10-08 Thread Daniel Vetter
On Tue, Sep 29, 2020 at 04:48:39PM +0100, Daniel Stone wrote:
> Hi,
> 
> On Fri, 25 Sep 2020 at 09:46, Daniel Vetter  wrote:
> > Hopefully we'll have the drm crash recorder RSN, but meanwhile
> > compositors would like to know a bit better why they get an EBUSY.
> 
> Thanks a lot, this is super helpful! Both patches are:
> Reviewed-by: Daniel Stone 

Ok, both patches queued up for 5.11, let's see what gives :-)
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH v2] drm/i915: Exclude low pages (128KiB) of stolen from use

2020-10-08 Thread Chris Wilson
The GPU is trashing the low pages of its reserved memory upon reset. If
we are using this memory for ringbuffers, then we will dutiful resubmit
the trashed rings after the reset causing further resets, and worse. We
must exclude this range from our own use. The value of 128KiB was found
by empirical measurement on gen9.

Signed-off-by: Chris Wilson 
Cc: sta...@vger.kernel.org
---
v2 comes with a selftest to see how widespread the issue is
---
 drivers/gpu/drm/i915/Kconfig.debug |   1 +
 drivers/gpu/drm/i915/gem/i915_gem_stolen.c |   5 +-
 drivers/gpu/drm/i915/gt/selftest_reset.c   | 141 +
 3 files changed, 145 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/Kconfig.debug 
b/drivers/gpu/drm/i915/Kconfig.debug
index 206882e154bc..0fb7fd0ef717 100644
--- a/drivers/gpu/drm/i915/Kconfig.debug
+++ b/drivers/gpu/drm/i915/Kconfig.debug
@@ -162,6 +162,7 @@ config DRM_I915_SELFTEST
select DRM_EXPORT_FOR_TESTS if m
select FAULT_INJECTION
select PRIME_NUMBERS
+   select CRC32
help
  Choose this option to allow the driver to perform selftests upon
  loading; also requires the i915.selftest=1 module parameter. To
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_stolen.c 
b/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
index 0be5e8683337..c0cc2a972a11 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
@@ -53,8 +53,9 @@ int i915_gem_stolen_insert_node(struct drm_i915_private *i915,
struct drm_mm_node *node, u64 size,
unsigned alignment)
 {
-   return i915_gem_stolen_insert_node_in_range(i915, node, size,
-   alignment, 0, U64_MAX);
+   return i915_gem_stolen_insert_node_in_range(i915, node,
+   size, alignment,
+   SZ_128K, U64_MAX);
 }
 
 void i915_gem_stolen_remove_node(struct drm_i915_private *i915,
diff --git a/drivers/gpu/drm/i915/gt/selftest_reset.c 
b/drivers/gpu/drm/i915/gt/selftest_reset.c
index 35406ecdf0b2..f73f132e57c4 100644
--- a/drivers/gpu/drm/i915/gt/selftest_reset.c
+++ b/drivers/gpu/drm/i915/gt/selftest_reset.c
@@ -3,9 +3,149 @@
  * Copyright © 2018 Intel Corporation
  */
 
+#include 
+
+#include "i915_memcpy.h"
 #include "i915_selftest.h"
 #include "selftests/igt_reset.h"
 #include "selftests/igt_atomic.h"
+#include "selftests/igt_spinner.h"
+
+static int igt_reset_stolen(void *arg)
+{
+   struct intel_gt *gt = arg;
+   struct i915_ggtt *ggtt = >->i915->ggtt;
+   struct resource *dsm = >->i915->dsm;
+   resource_size_t num_pages, page, max, count;
+   struct intel_engine_cs *engine;
+   intel_wakeref_t wakeref;
+   enum intel_engine_id id;
+   struct igt_spinner spin;
+   u32 seed, *crc;
+   void *tmp;
+   int err;
+
+   if (!drm_mm_node_allocated(&ggtt->error_capture))
+   return 0;
+
+   num_pages = resource_size(dsm) >> PAGE_SHIFT;
+   if (!num_pages)
+   return 0;
+
+   crc = kmalloc_array(num_pages, sizeof(u32), GFP_KERNEL);
+   if (!crc)
+   return -ENOMEM;
+
+   tmp = kmalloc(PAGE_SIZE, GFP_KERNEL);
+   if (!tmp) {
+   err = -ENOMEM;
+   goto err_crc;
+   }
+
+   igt_global_reset_lock(gt);
+   wakeref = intel_runtime_pm_get(gt->uncore->rpm);
+
+   err = igt_spinner_init(&spin, gt);
+   if (err)
+   goto err_lock;
+
+   for_each_engine(engine, gt, id) {
+   struct i915_request *rq;
+
+   intel_engine_pm_get(engine);
+
+   rq = igt_spinner_create_request(&spin,
+   engine->kernel_context,
+   MI_ARB_CHECK);
+   i915_request_add(rq);
+
+   intel_engine_pm_put(engine);
+   }
+
+   seed = 0;
+   for (page = 0; page < num_pages; page++) {
+   dma_addr_t dma;
+   void __iomem *s;
+   void *in;
+
+   dma = (dma_addr_t)dsm->start + (page << PAGE_SHIFT);
+
+   ggtt->vm.insert_page(&ggtt->vm, dma,
+ggtt->error_capture.start,
+I915_CACHE_NONE, 0);
+   mb();
+
+   s = io_mapping_map_wc(&ggtt->iomap,
+ ggtt->error_capture.start,
+ PAGE_SIZE);
+
+   in = s;
+   if (i915_memcpy_from_wc(tmp, s, PAGE_SIZE))
+   in = tmp;
+   seed = crc32_le(seed, in, PAGE_SIZE);
+
+   io_mapping_unmap(s);
+
+   crc[page] = seed;
+   }
+   mb();
+   ggtt->vm.clear_range(&ggtt->vm, ggtt->error_capture.start, PAGE_SIZE);
+
+   intel_gt_re

Re: [Intel-gfx] [PATCH v2] drm/i915: Exclude low pages (128KiB) of stolen from use

2020-10-08 Thread Ville Syrjälä
On Thu, Oct 08, 2020 at 10:54:36AM +0100, Chris Wilson wrote:
> The GPU is trashing the low pages of its reserved memory upon reset. If
> we are using this memory for ringbuffers, then we will dutiful resubmit
> the trashed rings after the reset causing further resets, and worse. We
> must exclude this range from our own use. The value of 128KiB was found
> by empirical measurement on gen9.
> 
> Signed-off-by: Chris Wilson 
> Cc: sta...@vger.kernel.org
> ---
> v2 comes with a selftest to see how widespread the issue is

Do we need something to make sure FBC isn't scribbling into
stolen during the test?

> ---
>  drivers/gpu/drm/i915/Kconfig.debug |   1 +
>  drivers/gpu/drm/i915/gem/i915_gem_stolen.c |   5 +-
>  drivers/gpu/drm/i915/gt/selftest_reset.c   | 141 +
>  3 files changed, 145 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/Kconfig.debug 
> b/drivers/gpu/drm/i915/Kconfig.debug
> index 206882e154bc..0fb7fd0ef717 100644
> --- a/drivers/gpu/drm/i915/Kconfig.debug
> +++ b/drivers/gpu/drm/i915/Kconfig.debug
> @@ -162,6 +162,7 @@ config DRM_I915_SELFTEST
>   select DRM_EXPORT_FOR_TESTS if m
>   select FAULT_INJECTION
>   select PRIME_NUMBERS
> + select CRC32
>   help
> Choose this option to allow the driver to perform selftests upon
> loading; also requires the i915.selftest=1 module parameter. To
> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_stolen.c 
> b/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
> index 0be5e8683337..c0cc2a972a11 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
> @@ -53,8 +53,9 @@ int i915_gem_stolen_insert_node(struct drm_i915_private 
> *i915,
>   struct drm_mm_node *node, u64 size,
>   unsigned alignment)
>  {
> - return i915_gem_stolen_insert_node_in_range(i915, node, size,
> - alignment, 0, U64_MAX);
> + return i915_gem_stolen_insert_node_in_range(i915, node,
> + size, alignment,
> + SZ_128K, U64_MAX);
>  }
>  
>  void i915_gem_stolen_remove_node(struct drm_i915_private *i915,
> diff --git a/drivers/gpu/drm/i915/gt/selftest_reset.c 
> b/drivers/gpu/drm/i915/gt/selftest_reset.c
> index 35406ecdf0b2..f73f132e57c4 100644
> --- a/drivers/gpu/drm/i915/gt/selftest_reset.c
> +++ b/drivers/gpu/drm/i915/gt/selftest_reset.c
> @@ -3,9 +3,149 @@
>   * Copyright © 2018 Intel Corporation
>   */
>  
> +#include 
> +
> +#include "i915_memcpy.h"
>  #include "i915_selftest.h"
>  #include "selftests/igt_reset.h"
>  #include "selftests/igt_atomic.h"
> +#include "selftests/igt_spinner.h"
> +
> +static int igt_reset_stolen(void *arg)
> +{
> + struct intel_gt *gt = arg;
> + struct i915_ggtt *ggtt = >->i915->ggtt;
> + struct resource *dsm = >->i915->dsm;
> + resource_size_t num_pages, page, max, count;
> + struct intel_engine_cs *engine;
> + intel_wakeref_t wakeref;
> + enum intel_engine_id id;
> + struct igt_spinner spin;
> + u32 seed, *crc;
> + void *tmp;
> + int err;
> +
> + if (!drm_mm_node_allocated(&ggtt->error_capture))
> + return 0;
> +
> + num_pages = resource_size(dsm) >> PAGE_SHIFT;
> + if (!num_pages)
> + return 0;
> +
> + crc = kmalloc_array(num_pages, sizeof(u32), GFP_KERNEL);
> + if (!crc)
> + return -ENOMEM;
> +
> + tmp = kmalloc(PAGE_SIZE, GFP_KERNEL);
> + if (!tmp) {
> + err = -ENOMEM;
> + goto err_crc;
> + }
> +
> + igt_global_reset_lock(gt);
> + wakeref = intel_runtime_pm_get(gt->uncore->rpm);
> +
> + err = igt_spinner_init(&spin, gt);
> + if (err)
> + goto err_lock;
> +
> + for_each_engine(engine, gt, id) {
> + struct i915_request *rq;
> +
> + intel_engine_pm_get(engine);
> +
> + rq = igt_spinner_create_request(&spin,
> + engine->kernel_context,
> + MI_ARB_CHECK);
> + i915_request_add(rq);
> +
> + intel_engine_pm_put(engine);
> + }
> +
> + seed = 0;
> + for (page = 0; page < num_pages; page++) {
> + dma_addr_t dma;
> + void __iomem *s;
> + void *in;
> +
> + dma = (dma_addr_t)dsm->start + (page << PAGE_SHIFT);
> +
> + ggtt->vm.insert_page(&ggtt->vm, dma,
> +  ggtt->error_capture.start,
> +  I915_CACHE_NONE, 0);
> + mb();
> +
> + s = io_mapping_map_wc(&ggtt->iomap,
> +   ggtt->error_capture.start,
> +   PAGE_SIZE);
> +
> + in = s;
> + if (i915_memcpy_from_wc(tmp, s, PAGE_SIZE))
> + 

Re: [Intel-gfx] [PATCH v2] drm/i915: Exclude low pages (128KiB) of stolen from use

2020-10-08 Thread Chris Wilson
Quoting Ville Syrjälä (2020-10-08 11:04:22)
> On Thu, Oct 08, 2020 at 10:54:36AM +0100, Chris Wilson wrote:
> > The GPU is trashing the low pages of its reserved memory upon reset. If
> > we are using this memory for ringbuffers, then we will dutiful resubmit
> > the trashed rings after the reset causing further resets, and worse. We
> > must exclude this range from our own use. The value of 128KiB was found
> > by empirical measurement on gen9.
> > 
> > Signed-off-by: Chris Wilson 
> > Cc: sta...@vger.kernel.org
> > ---
> > v2 comes with a selftest to see how widespread the issue is
> 
> Do we need something to make sure FBC isn't scribbling into
> stolen during the test?

igt runs the tests with disable_display=1, that is still being honoured
right?

I did think about looking up the address to see if the drm_mm_node is in
use to try and filter out such users. For starters, I just want to
confirm that CI is seeing what I'm seeing.
-Chris
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH 2/3] drm/i915: Skip aux plane stuff when there is no aux plane

2020-10-08 Thread Ville Syrjala
From: Ville Syrjälä 

when the hardware isn't going to use the aux plane there's no
real point in dealing with the relevant hardware restrictions.
So let's just skip all that when not necessary.

We can now also remove the offset=~0xfff behaviour for unused
color planes. Let's just zero out everyting so as to not leave
stale garbage behind to confuse people debugging the code.

Signed-off-by: Ville Syrjälä 
---
 drivers/gpu/drm/i915/display/intel_display.c | 14 +-
 drivers/gpu/drm/i915/display/intel_sprite.c  |  6 +++---
 2 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display.c 
b/drivers/gpu/drm/i915/display/intel_display.c
index 44fd7059838f..34ba34f84b2a 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -2001,13 +2001,17 @@ static int ccs_to_main_plane(const struct 
drm_framebuffer *fb, int ccs_plane)
return ccs_plane - fb->format->num_planes / 2;
 }
 
-/* Return either the main plane's CCS or - if not a CCS FB - UV plane */
 int intel_main_to_aux_plane(const struct drm_framebuffer *fb, int main_plane)
 {
+   struct drm_i915_private *i915 = to_i915(fb->dev);
+
if (is_ccs_modifier(fb->modifier))
return main_to_ccs_plane(fb, main_plane);
-
-   return 1;
+   else if (INTEL_GEN(i915) < 11 &&
+intel_format_info_is_yuv_semiplanar(fb->format, fb->modifier))
+   return 1;
+   else
+   return 0;
 }
 
 bool
@@ -3933,7 +3937,7 @@ static int skl_check_main_surface(struct 
intel_plane_state *plane_state)
 * main surface offset, and it must be non-negative. Make
 * sure that is what we will get.
 */
-   if (offset > aux_offset)
+   if (aux_plane && offset > aux_offset)
offset = intel_plane_adjust_aligned_offset(&x, &y, plane_state, 
0,
   offset, aux_offset & 
~(alignment - 1));
 
@@ -4131,7 +4135,7 @@ int skl_check_plane_surface(struct intel_plane_state 
*plane_state)
}
 
for (i = fb->format->num_planes; i < 
ARRAY_SIZE(plane_state->color_plane); i++) {
-   plane_state->color_plane[i].offset = ~0xfff;
+   plane_state->color_plane[i].offset = 0;
plane_state->color_plane[i].x = 0;
plane_state->color_plane[i].y = 0;
}
diff --git a/drivers/gpu/drm/i915/display/intel_sprite.c 
b/drivers/gpu/drm/i915/display/intel_sprite.c
index 2da11ab6343c..bf8c82a2b213 100644
--- a/drivers/gpu/drm/i915/display/intel_sprite.c
+++ b/drivers/gpu/drm/i915/display/intel_sprite.c
@@ -656,7 +656,6 @@ skl_program_plane(struct intel_plane *plane,
const struct drm_framebuffer *fb = plane_state->hw.fb;
int aux_plane = intel_main_to_aux_plane(fb, color_plane);
u32 aux_dist = plane_state->color_plane[aux_plane].offset - surf_addr;
-   u32 aux_stride = skl_plane_stride(plane_state, aux_plane);
int crtc_x = plane_state->uapi.dst.x1;
int crtc_y = plane_state->uapi.dst.y1;
u32 x = plane_state->color_plane[color_plane].x;
@@ -691,6 +690,9 @@ skl_program_plane(struct intel_plane *plane,
crtc_y = 0;
}
 
+   if (INTEL_GEN(dev_priv) < 12 && aux_plane)
+   aux_dist |= skl_plane_stride(plane_state, aux_plane);
+
spin_lock_irqsave(&dev_priv->uncore.lock, irqflags);
 
intel_de_write_fw(dev_priv, PLANE_STRIDE(pipe, plane_id), stride);
@@ -699,8 +701,6 @@ skl_program_plane(struct intel_plane *plane,
intel_de_write_fw(dev_priv, PLANE_SIZE(pipe, plane_id),
  (src_h << 16) | src_w);
 
-   if (INTEL_GEN(dev_priv) < 12)
-   aux_dist |= aux_stride;
intel_de_write_fw(dev_priv, PLANE_AUX_DIST(pipe, plane_id), aux_dist);
 
if (icl_is_hdr_plane(dev_priv, plane_id))
-- 
2.26.2

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH 3/3] drm/i915: s/int/u32/ for aux_offset/alignment

2020-10-08 Thread Ville Syrjala
From: Ville Syrjälä 

ggtt offsets/alignments are u32 everywhere else. Don't use
a signed int for them here.

Signed-off-by: Ville Syrjälä 
---
 drivers/gpu/drm/i915/display/intel_display.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display.c 
b/drivers/gpu/drm/i915/display/intel_display.c
index 34ba34f84b2a..fe482ca721f8 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -4026,8 +4026,8 @@ static int skl_check_nv12_aux_surface(struct 
intel_plane_state *plane_state)
 
if (is_ccs_modifier(fb->modifier)) {
int ccs_plane = main_to_ccs_plane(fb, uv_plane);
-   int aux_offset = plane_state->color_plane[ccs_plane].offset;
-   int alignment = intel_surf_alignment(fb, uv_plane);
+   u32 aux_offset = plane_state->color_plane[ccs_plane].offset;
+   u32 alignment = intel_surf_alignment(fb, uv_plane);
 
if (offset > aux_offset)
offset = intel_plane_adjust_aligned_offset(&x, &y,
-- 
2.26.2

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH 1/3] drm/i915: Set all unused color plane offsets to ~0xfff again

2020-10-08 Thread Ville Syrjala
From: Ville Syrjälä 

When the number of potential color planes grew to 4 we stopped
setting all unused color plane offsets to ~0xfff. The code
still tries to do this, but actually does nothing since the
loop limits are bogus.

skl_check_main_surface() actually depends on this ~0xfff
behaviour as it will make sure to move the main surface
offset below the aux surface offset because the hardware
AUX_DIST must be a non-negative value [1], and for simplicity
it doesn't bother checking if the AUX plane is actually
needed or not. So currently it may end up shuffling the
main surface around based on some stale leftover AUX offset.

The skl+ plane code also just blindly calculates the AUX_DIST
whether or not the AUX plane is actually needed by the hw or
not, and that too will now potentially use some stale AUX
surface offset in the calculation. Would seem nicer to
guarantee a consistent non-negative AUX_DIST always.

So bring back the original ~0xfff offset behaviour for
unused color planes. Though it doesn't seem super likely
that this inconsistency would cause any real issues.

Cc: Dhinakaran Pandiyan 
Cc: Lucas De Marchi 
Cc: Imre Deak 
Cc: Radhakrishna Sripada 
Fixes: 2dfbf9d2873a ("drm/i915/tgl: Gen-12 display can decompress surfaces 
compressed by the media engine")
Signed-off-by: Ville Syrjälä 
---
 drivers/gpu/drm/i915/display/intel_display.c | 17 +
 1 file changed, 5 insertions(+), 12 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display.c 
b/drivers/gpu/drm/i915/display/intel_display.c
index 907e1d155443..44fd7059838f 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -4104,8 +4104,7 @@ static int skl_check_ccs_aux_surface(struct 
intel_plane_state *plane_state)
 int skl_check_plane_surface(struct intel_plane_state *plane_state)
 {
const struct drm_framebuffer *fb = plane_state->hw.fb;
-   int ret;
-   bool needs_aux = false;
+   int ret, i;
 
ret = intel_plane_compute_gtt(plane_state);
if (ret)
@@ -4119,7 +4118,6 @@ int skl_check_plane_surface(struct intel_plane_state 
*plane_state)
 * it.
 */
if (is_ccs_modifier(fb->modifier)) {
-   needs_aux = true;
ret = skl_check_ccs_aux_surface(plane_state);
if (ret)
return ret;
@@ -4127,20 +4125,15 @@ int skl_check_plane_surface(struct intel_plane_state 
*plane_state)
 
if (intel_format_info_is_yuv_semiplanar(fb->format,
fb->modifier)) {
-   needs_aux = true;
ret = skl_check_nv12_aux_surface(plane_state);
if (ret)
return ret;
}
 
-   if (!needs_aux) {
-   int i;
-
-   for (i = 1; i < fb->format->num_planes; i++) {
-   plane_state->color_plane[i].offset = ~0xfff;
-   plane_state->color_plane[i].x = 0;
-   plane_state->color_plane[i].y = 0;
-   }
+   for (i = fb->format->num_planes; i < 
ARRAY_SIZE(plane_state->color_plane); i++) {
+   plane_state->color_plane[i].offset = ~0xfff;
+   plane_state->color_plane[i].x = 0;
+   plane_state->color_plane[i].y = 0;
}
 
ret = skl_check_main_surface(plane_state);
-- 
2.26.2

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH v2] drm/i915: Exclude low pages (128KiB) of stolen from use

2020-10-08 Thread Ville Syrjälä
On Thu, Oct 08, 2020 at 11:12:37AM +0100, Chris Wilson wrote:
> Quoting Ville Syrjälä (2020-10-08 11:04:22)
> > On Thu, Oct 08, 2020 at 10:54:36AM +0100, Chris Wilson wrote:
> > > The GPU is trashing the low pages of its reserved memory upon reset. If
> > > we are using this memory for ringbuffers, then we will dutiful resubmit
> > > the trashed rings after the reset causing further resets, and worse. We
> > > must exclude this range from our own use. The value of 128KiB was found
> > > by empirical measurement on gen9.
> > > 
> > > Signed-off-by: Chris Wilson 
> > > Cc: sta...@vger.kernel.org
> > > ---
> > > v2 comes with a selftest to see how widespread the issue is
> > 
> > Do we need something to make sure FBC isn't scribbling into
> > stolen during the test?
> 
> igt runs the tests with disable_display=1, that is still being honoured
> right?

It just marks all connectors as disconnected now. If coming straight
from boot presumaly whatever the BIOS lit up could still be on at that
point. Though I guess we would have typically done a module reload
for this? rmmod should shut things down IIRC. Also wouldn't think the
BIOS would even enables FBC.

> 
> I did think about looking up the address to see if the drm_mm_node is in
> use to try and filter out such users. For starters, I just want to
> confirm that CI is seeing what I'm seeing.
> -Chris

-- 
Ville Syrjälä
Intel
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH] drm/i915/gem: Poison stolen pages before use

2020-10-08 Thread Chris Wilson
When allocating objects from stolen, memset() the backing store to
POISON_INUSE (0x5a) to help identify any uninitialised use of a stolen
object.

Signed-off-by: Chris Wilson 
---
 drivers/gpu/drm/i915/gem/i915_gem_stolen.c | 33 ++
 1 file changed, 33 insertions(+)

diff --git a/drivers/gpu/drm/i915/gem/i915_gem_stolen.c 
b/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
index 0be5e8683337..4c2869c0a802 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
@@ -572,6 +572,38 @@ static const struct drm_i915_gem_object_ops 
i915_gem_object_stolen_ops = {
.release = i915_gem_object_release_stolen,
 };
 
+static void dbg_poison(struct drm_i915_gem_object *obj)
+{
+#if IS_ENABLED(CONFIG_DRM_I915_DEBUG_GEM)
+   struct drm_i915_private *i915 = to_i915(obj->base.dev);
+   struct i915_ggtt *ggtt = &i915->ggtt;
+   struct sgt_iter iter;
+   dma_addr_t addr;
+
+   if (!drm_mm_node_allocated(&ggtt->error_capture))
+   return;
+
+   mutex_lock(&ggtt->error_mutex);
+   for_each_sgt_daddr(addr, iter, obj->mm.pages) {
+   void __iomem *s;
+
+   ggtt->vm.insert_page(&ggtt->vm, addr,
+ggtt->error_capture.start,
+I915_CACHE_NONE, 0);
+   mb();
+
+   s = io_mapping_map_wc(&ggtt->iomap,
+ ggtt->error_capture.start,
+ PAGE_SIZE);
+   memset(s, POISON_INUSE, PAGE_SIZE);
+   io_mapping_unmap(s);
+   }
+   mb();
+   ggtt->vm.clear_range(&ggtt->vm, ggtt->error_capture.start, PAGE_SIZE);
+   mutex_unlock(&ggtt->error_mutex);
+#endif
+}
+
 static struct drm_i915_gem_object *
 __i915_gem_object_create_stolen(struct intel_memory_region *mem,
struct drm_mm_node *stolen)
@@ -598,6 +630,7 @@ __i915_gem_object_create_stolen(struct intel_memory_region 
*mem,
goto cleanup;
 
i915_gem_object_init_memory_region(obj, mem, 0);
+   dbg_poison(obj);
 
return obj;
 
-- 
2.20.1

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [v7 01/10] drm/i915/display: Add HDR Capability detection for LSPCON

2020-10-08 Thread Ville Syrjälä
On Tue, Oct 06, 2020 at 06:36:45PM +0530, Uma Shankar wrote:
> LSPCON firmware exposes HDR capability through LPCON_CAPABILITIES
> DPCD register. LSPCON implementations capable of supporting
> HDR set HDR_CAPABILITY bit in LSPCON_CAPABILITIES to 1. This patch
> reads the same, detects the HDR capability and adds this to
> intel_lspcon struct.
> 
> v2: Addressed Jani Nikula's review comment and fixed the HDR
> capability detection logic
> 
> Signed-off-by: Uma Shankar 
> ---
>  .../drm/i915/display/intel_display_types.h|  1 +
>  drivers/gpu/drm/i915/display/intel_lspcon.c   | 30 +++
>  2 files changed, 31 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h 
> b/drivers/gpu/drm/i915/display/intel_display_types.h
> index d5dc18cb8c39..fb8cfc0981d6 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_types.h
> +++ b/drivers/gpu/drm/i915/display/intel_display_types.h
> @@ -1398,6 +1398,7 @@ struct intel_lspcon {
>   bool active;
>   enum drm_lspcon_mode mode;
>   enum lspcon_vendor vendor;
> + bool hdr_supported;
>  };
>  
>  struct intel_digital_port {
> diff --git a/drivers/gpu/drm/i915/display/intel_lspcon.c 
> b/drivers/gpu/drm/i915/display/intel_lspcon.c
> index ee95fc353a56..f92962195698 100644
> --- a/drivers/gpu/drm/i915/display/intel_lspcon.c
> +++ b/drivers/gpu/drm/i915/display/intel_lspcon.c
> @@ -35,6 +35,8 @@
>  #define LSPCON_VENDOR_PARADE_OUI 0x001CF8
>  #define LSPCON_VENDOR_MCA_OUI 0x0060AD
>  
> +#define DPCD_MCA_LSPCON_HDR_STATUS   0x70003
> +
>  /* AUX addresses to write MCA AVI IF */
>  #define LSPCON_MCA_AVI_IF_WRITE_OFFSET 0x5C0
>  #define LSPCON_MCA_AVI_IF_CTRL 0x5DF
> @@ -104,6 +106,32 @@ static bool lspcon_detect_vendor(struct intel_lspcon 
> *lspcon)
>   return true;
>  }
>  
> +static void lspcon_detect_hdr_capability(struct intel_lspcon *lspcon)
> +{
> + struct intel_digital_port *intel_dig_port =
> + container_of(lspcon, struct intel_digital_port, lspcon);

s/intel_dig_port/dig_port/ to conform with
commit 7801f3b792b0 ("drm/i915/display: prefer dig_port to reference 
intel_digital_port")

> + struct drm_device *dev = intel_dig_port->base.base.dev;
> + struct intel_dp *dp = lspcon_to_intel_dp(lspcon);
> + u8 hdr_caps;
> + int ret;
> +
> + /* Enable HDR for MCA based LSPCON devices */
> + if (lspcon->vendor == LSPCON_VENDOR_MCA)
> + ret = drm_dp_dpcd_read(&dp->aux, DPCD_MCA_LSPCON_HDR_STATUS,
> +&hdr_caps, 1);
> + else
> + return;
> +
> + if (ret < 0) {
> + drm_dbg_kms(dev, "hdr capability detection failed\n");
> + lspcon->hdr_supported = false;
> + return;
> + } else if (hdr_caps & 0x1) {
> + drm_dbg_kms(dev, "lspcon capable of HDR\n");
> + lspcon->hdr_supported = true;
> + }
> +}
> +
>  static enum drm_lspcon_mode lspcon_get_current_mode(struct intel_lspcon 
> *lspcon)
>  {
>   enum drm_lspcon_mode current_mode;
> @@ -554,6 +582,8 @@ static bool lspcon_init(struct intel_digital_port 
> *dig_port)
>   return false;
>   }
>  
> + lspcon_detect_hdr_capability(lspcon);
> +

This is now too late since we do this after registering the connector.
Need to move this to the init stage, but lspcon detection requires hpd
detection logic to be enabled, so once I get the hpd init order sorted
we need to do this after intel_hpd_init() but before the connector
is registered. Hmm, maybe we can actually do it from connector's
.late_register() hook?

>   connector->ycbcr_420_allowed = true;
>   lspcon->active = true;
>   DRM_DEBUG_KMS("Success: LSPCON init\n");
> -- 
> 2.26.2

-- 
Ville Syrjälä
Intel
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH v5 3/3] drm/i915/display: Program PSR2 selective fetch registers

2020-10-08 Thread Mun, Gwan-gyeong
Looks good to me.

Reviewed-by: Gwan-gyeong Mun 

On Wed, 2020-10-07 at 12:52 -0700, José Roberto de Souza wrote:
> Another step towards PSR2 selective fetch, here programming plane
> selective fetch registers and MAN_TRK_CTL enabling selective fetch
> but
> for now it is fetching the whole area of the planes.
> The damaged area calculation will come as next and final step.
> 
> v2:
> - removed warn on when no plane is visible in state
> - removed calculations using plane damaged area in
> intel_psr2_program_plane_sel_fetch()
> 
> v3:
> - do not shift 16 positions the plane dst coordinates, only src is
> shifted
> 
> v4:
> - only setting PLANE_SEL_FETCH_CTL_ENABLE and MCURSOR_MODE in
> PLANE_SEL_FETCH_CTL
> 
> v5:
> - not masking bits for cursor
> 
> BSpec: 55229
> Cc: Gwan-gyeong Mun 
> Cc: Ville Syrjälä 
> Signed-off-by: José Roberto de Souza 
> ---
>  drivers/gpu/drm/i915/display/intel_display.c |  10 +-
>  drivers/gpu/drm/i915/display/intel_psr.c | 117
> ++-
>  drivers/gpu/drm/i915/display/intel_psr.h |  10 +-
>  drivers/gpu/drm/i915/display/intel_sprite.c  |   3 +
>  4 files changed, 131 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c
> b/drivers/gpu/drm/i915/display/intel_display.c
> index 907e1d155443..8b80e03694e2 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -11872,6 +11872,9 @@ static void i9xx_update_cursor(struct
> intel_plane *plane,
>   if (INTEL_GEN(dev_priv) >= 9)
>   skl_write_cursor_wm(plane, crtc_state);
>  
> + if (!needs_modeset(crtc_state))
> + intel_psr2_program_plane_sel_fetch(plane, crtc_state,
> plane_state, 0);
> +
>   if (plane->cursor.base != base ||
>   plane->cursor.size != fbc_ctl ||
>   plane->cursor.cntl != cntl) {
> @@ -12883,8 +12886,11 @@ static int intel_crtc_atomic_check(struct
> intel_atomic_state *state,
>  
>   }
>  
> - if (!mode_changed)
> - intel_psr2_sel_fetch_update(state, crtc);
> + if (!mode_changed) {
> + ret = intel_psr2_sel_fetch_update(state, crtc);
> + if (ret)
> + return ret;
> + }
>  
>   return 0;
>  }
> diff --git a/drivers/gpu/drm/i915/display/intel_psr.c
> b/drivers/gpu/drm/i915/display/intel_psr.c
> index 02f74b0ddec1..a591a475f148 100644
> --- a/drivers/gpu/drm/i915/display/intel_psr.c
> +++ b/drivers/gpu/drm/i915/display/intel_psr.c
> @@ -1166,6 +1166,38 @@ static void psr_force_hw_tracking_exit(struct
> drm_i915_private *dev_priv)
>   intel_psr_exit(dev_priv);
>  }
>  
> +void intel_psr2_program_plane_sel_fetch(struct intel_plane *plane,
> + const struct intel_crtc_state
> *crtc_state,
> + const struct intel_plane_state
> *plane_state,
> + int color_plane)
> +{
> + struct drm_i915_private *dev_priv = to_i915(plane->base.dev);
> + enum pipe pipe = plane->pipe;
> + u32 val;
> +
> + if (!crtc_state->enable_psr2_sel_fetch)
> + return;
> +
> + val = plane_state ? plane_state->ctl : 0;
> + val &= plane->id == PLANE_CURSOR ? val :
> PLANE_SEL_FETCH_CTL_ENABLE;
> + intel_de_write_fw(dev_priv, PLANE_SEL_FETCH_CTL(pipe, plane-
> >id), val);
> + if (!val || plane->id == PLANE_CURSOR)
> + return;
> +
> + val = plane_state->uapi.dst.y1 << 16 | plane_state-
> >uapi.dst.x1;
> + intel_de_write_fw(dev_priv, PLANE_SEL_FETCH_POS(pipe, plane-
> >id), val);
> +
> + val = plane_state->color_plane[color_plane].y << 16;
> + val |= plane_state->color_plane[color_plane].x;
> + intel_de_write_fw(dev_priv, PLANE_SEL_FETCH_OFFSET(pipe, plane-
> >id),
> +   val);
> +
> + /* Sizes are 0 based */
> + val = ((drm_rect_height(&plane_state->uapi.src) >> 16) - 1) <<
> 16;
> + val |= (drm_rect_width(&plane_state->uapi.src) >> 16) - 1;
> + intel_de_write_fw(dev_priv, PLANE_SEL_FETCH_SIZE(pipe, plane-
> >id), val);
> +}
> +
>  void intel_psr2_program_trans_man_trk_ctl(const struct
> intel_crtc_state *crtc_state)
>  {
>   struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
> @@ -1180,16 +1212,91 @@ void
> intel_psr2_program_trans_man_trk_ctl(const struct intel_crtc_state
> *crtc_st
>  crtc_state->psr2_man_track_ctl);
>  }
>  
> -void intel_psr2_sel_fetch_update(struct intel_atomic_state *state,
> -  struct intel_crtc *crtc)
> +static void psr2_man_trk_ctl_calc(struct intel_crtc_state
> *crtc_state,
> +   struct drm_rect *clip, bool
> full_update)
> +{
> + u32 val = PSR2_MAN_TRK_CTL_ENABLE;
> +
> + if (full_update) {
> + val |= PSR2_MAN_TRK_CTL_SF_SINGLE_FULL_FRAME;
> + goto exit;
> + }
> +
> + if (clip->y1 == -1)
> + goto exit;
> +
> + val |= PSR

[Intel-gfx] ✗ Fi.CI.SPARSE: warning for rm/i915: Add support for LTTPR non-transparent link training mode

2020-10-08 Thread Patchwork
== Series Details ==

Series: rm/i915: Add support for LTTPR non-transparent link training mode
URL   : https://patchwork.freedesktop.org/series/82449/
State : warning

== Summary ==

$ dim sparse --fast origin/drm-tip
Sparse version: v0.6.2
Fast mode used, each commit won't be checked separately.
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:1019:47:expected unsigned int 
[addressable] [usertype] ulClockParams
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:1019:47:got restricted __le32 
[usertype]
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:1019:47: warning: incorrect type 
in assignment (different base types)
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:1028:50: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:1029:49: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:1037:47: warning: too many 
warnings
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:184:44: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:283:14: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:320:14: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:323:14: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:326:14: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:329:18: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:330:26: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:338:30: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:340:38: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:342:30: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:346:30: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:348:30: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:353:33: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:367:43: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:369:38: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:374:67: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:375:53: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:378:66: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:389:80: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:395:57: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:402:69: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:403:53: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:406:66: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:414:66: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:423:69: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:424:69: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:473:30: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:476:45: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:477:45: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:484:54: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:52:28: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:531:35: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:53:29: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:533:25: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:54:26: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:55:27: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:56:25: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:57:26: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:577:21: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:581:25: warning: cast to 
restricted __le32
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:58:25: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:583:21: warning: cast to 
restricted __le32
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:586:25: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:590:25: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:59:26: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:598:21: warning: c

Re: [Intel-gfx] [v7 04/10] drm/i915/display: Enable BT2020 for HDR on LSPCON devices

2020-10-08 Thread Ville Syrjälä
On Tue, Oct 06, 2020 at 06:36:48PM +0530, Uma Shankar wrote:
> Enable Colorspace as BT2020 if driving HDR content.Sending Colorimetry
> data for HDR using AVI infoframe. LSPCON firmware expects this and though
> SOC drives DP, for HDMI panel AVI infoframe is sent to the LSPCON device
> which transfers the same to HDMI sink.
> 
> v2: Dropped state managed in drm core as per Jani Nikula's suggestion.
> 
> v3: Aligned colorimetry handling for lspcon as per compute_avi_infoframes,
> as suggested by Ville.
> 
> Signed-off-by: Uma Shankar 
> ---
>  drivers/gpu/drm/i915/display/intel_lspcon.c | 25 -
>  1 file changed, 19 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_lspcon.c 
> b/drivers/gpu/drm/i915/display/intel_lspcon.c
> index 440d2b3c2212..9ffa36797daf 100644
> --- a/drivers/gpu/drm/i915/display/intel_lspcon.c
> +++ b/drivers/gpu/drm/i915/display/intel_lspcon.c
> @@ -534,12 +534,25 @@ void lspcon_set_infoframes(struct intel_encoder 
> *encoder,
>   frame.avi.colorspace = HDMI_COLORSPACE_RGB;
>   }
>  
> - drm_hdmi_avi_infoframe_quant_range(&frame.avi,
> -conn_state->connector,
> -adjusted_mode,
> -crtc_state->limited_color_range ?
> -HDMI_QUANTIZATION_RANGE_LIMITED :
> -HDMI_QUANTIZATION_RANGE_FULL);
> + drm_hdmi_avi_infoframe_colorspace(&frame.avi, conn_state);

That seems to be a missing part from
commit 9d1bb6f0222c ("drm/i915/dp: Attach colorspace property")

Also looks like
commit 2f146b78d5a9 ("drm/i915: Attach colorspace property and enable modeset")
added a bogus lspcon check into intel_hdmi_add_properties(). That should
be nuked.

Hmm. This whole thing seems like a total snafu. Since we use
AVI IF for lspcon it should follow the HDMI colorimetry stuff, but
now it uses some kind of mix of both HDMI and DP. We need to sort this
out somehow...

> +
> + /* nonsense combination */
> + drm_WARN_ON(encoder->base.dev, crtc_state->limited_color_range &&
> + crtc_state->output_format != INTEL_OUTPUT_FORMAT_RGB);
> +
> + if (crtc_state->output_format == INTEL_OUTPUT_FORMAT_RGB) {
> + drm_hdmi_avi_infoframe_quant_range(&frame.avi,
> +conn_state->connector,
> +adjusted_mode,
> +
> crtc_state->limited_color_range ?
> +
> HDMI_QUANTIZATION_RANGE_LIMITED :
> +
> HDMI_QUANTIZATION_RANGE_FULL);
> + } else {
> + frame.avi.quantization_range = HDMI_QUANTIZATION_RANGE_DEFAULT;
> + frame.avi.ycc_quantization_range = 
> HDMI_YCC_QUANTIZATION_RANGE_LIMITED;
> + }

This part looks OK.

> +
> + drm_hdmi_avi_infoframe_content_type(&frame.avi, conn_state);

I don't think we have that property attached to the connector.
Probably want a separte patch to add both the prop and this thing.

>  
>   ret = hdmi_infoframe_pack(&frame, buf, sizeof(buf));
>   if (ret < 0) {
> -- 
> 2.26.2

-- 
Ville Syrjälä
Intel
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [v7 01/10] drm/i915/display: Add HDR Capability detection for LSPCON

2020-10-08 Thread Shankar, Uma


> -Original Message-
> From: Ville Syrjälä 
> Sent: Thursday, October 8, 2020 4:25 PM
> To: Shankar, Uma 
> Cc: intel-gfx@lists.freedesktop.org
> Subject: Re: [v7 01/10] drm/i915/display: Add HDR Capability detection for
> LSPCON
> 
> On Tue, Oct 06, 2020 at 06:36:45PM +0530, Uma Shankar wrote:
> > LSPCON firmware exposes HDR capability through LPCON_CAPABILITIES DPCD
> > register. LSPCON implementations capable of supporting HDR set
> > HDR_CAPABILITY bit in LSPCON_CAPABILITIES to 1. This patch reads the
> > same, detects the HDR capability and adds this to intel_lspcon struct.
> >
> > v2: Addressed Jani Nikula's review comment and fixed the HDR
> > capability detection logic
> >
> > Signed-off-by: Uma Shankar 
> > ---
> >  .../drm/i915/display/intel_display_types.h|  1 +
> >  drivers/gpu/drm/i915/display/intel_lspcon.c   | 30 +++
> >  2 files changed, 31 insertions(+)
> >
> > diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h
> > b/drivers/gpu/drm/i915/display/intel_display_types.h
> > index d5dc18cb8c39..fb8cfc0981d6 100644
> > --- a/drivers/gpu/drm/i915/display/intel_display_types.h
> > +++ b/drivers/gpu/drm/i915/display/intel_display_types.h
> > @@ -1398,6 +1398,7 @@ struct intel_lspcon {
> > bool active;
> > enum drm_lspcon_mode mode;
> > enum lspcon_vendor vendor;
> > +   bool hdr_supported;
> >  };
> >
> >  struct intel_digital_port {
> > diff --git a/drivers/gpu/drm/i915/display/intel_lspcon.c
> > b/drivers/gpu/drm/i915/display/intel_lspcon.c
> > index ee95fc353a56..f92962195698 100644
> > --- a/drivers/gpu/drm/i915/display/intel_lspcon.c
> > +++ b/drivers/gpu/drm/i915/display/intel_lspcon.c
> > @@ -35,6 +35,8 @@
> >  #define LSPCON_VENDOR_PARADE_OUI 0x001CF8  #define
> > LSPCON_VENDOR_MCA_OUI 0x0060AD
> >
> > +#define DPCD_MCA_LSPCON_HDR_STATUS 0x70003
> > +
> >  /* AUX addresses to write MCA AVI IF */  #define
> > LSPCON_MCA_AVI_IF_WRITE_OFFSET 0x5C0  #define
> LSPCON_MCA_AVI_IF_CTRL
> > 0x5DF @@ -104,6 +106,32 @@ static bool lspcon_detect_vendor(struct
> > intel_lspcon *lspcon)
> > return true;
> >  }
> >
> > +static void lspcon_detect_hdr_capability(struct intel_lspcon *lspcon)
> > +{
> > +   struct intel_digital_port *intel_dig_port =
> > +   container_of(lspcon, struct intel_digital_port, lspcon);
> 
> s/intel_dig_port/dig_port/ to conform with commit 7801f3b792b0
> ("drm/i915/display: prefer dig_port to reference intel_digital_port")
> 
> > +   struct drm_device *dev = intel_dig_port->base.base.dev;
> > +   struct intel_dp *dp = lspcon_to_intel_dp(lspcon);
> > +   u8 hdr_caps;
> > +   int ret;
> > +
> > +   /* Enable HDR for MCA based LSPCON devices */
> > +   if (lspcon->vendor == LSPCON_VENDOR_MCA)
> > +   ret = drm_dp_dpcd_read(&dp->aux,
> DPCD_MCA_LSPCON_HDR_STATUS,
> > +  &hdr_caps, 1);
> > +   else
> > +   return;
> > +
> > +   if (ret < 0) {
> > +   drm_dbg_kms(dev, "hdr capability detection failed\n");
> > +   lspcon->hdr_supported = false;
> > +   return;
> > +   } else if (hdr_caps & 0x1) {
> > +   drm_dbg_kms(dev, "lspcon capable of HDR\n");
> > +   lspcon->hdr_supported = true;
> > +   }
> > +}
> > +
> >  static enum drm_lspcon_mode lspcon_get_current_mode(struct
> > intel_lspcon *lspcon)  {
> > enum drm_lspcon_mode current_mode;
> > @@ -554,6 +582,8 @@ static bool lspcon_init(struct intel_digital_port
> *dig_port)
> > return false;
> > }
> >
> > +   lspcon_detect_hdr_capability(lspcon);
> > +
> 
> This is now too late since we do this after registering the connector.
> Need to move this to the init stage, but lspcon detection requires hpd 
> detection
> logic to be enabled, so once I get the hpd init order sorted we need to do 
> this
> after intel_hpd_init() but before the connector is registered. Hmm, maybe we
> can actually do it from connector's
> .late_register() hook?

I am actually calling it from ddi_init itself in patch 3 assuming its just the 
one hardware which is
having issues (not sure if this a limitation for LSPCON generically). So if 
detection is successful
register HDR else let it not get enabled. It doesn't sound good though but was 
not getting any better
ideas ☹.

I think late_register may work out for us.

Regards,
Uma Shankar

> 
> > connector->ycbcr_420_allowed = true;
> > lspcon->active = true;
> > DRM_DEBUG_KMS("Success: LSPCON init\n");
> > --
> > 2.26.2
> 
> --
> Ville Syrjälä
> Intel
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✓ Fi.CI.BAT: success for rm/i915: Add support for LTTPR non-transparent link training mode

2020-10-08 Thread Patchwork
== Series Details ==

Series: rm/i915: Add support for LTTPR non-transparent link training mode
URL   : https://patchwork.freedesktop.org/series/82449/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_9111 -> Patchwork_18649


Summary
---

  **SUCCESS**

  No regressions found.

  External URL: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18649/index.html

Known issues


  Here are the changes found in Patchwork_18649 that come from known issues:

### IGT changes ###

 Issues hit 

  * igt@kms_cursor_legacy@basic-flip-after-cursor-legacy:
- fi-icl-u2:  [PASS][1] -> [DMESG-WARN][2] ([i915#1982])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9111/fi-icl-u2/igt@kms_cursor_leg...@basic-flip-after-cursor-legacy.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18649/fi-icl-u2/igt@kms_cursor_leg...@basic-flip-after-cursor-legacy.html

  
 Possible fixes 

  * igt@i915_module_load@reload:
- {fi-tgl-dsi}:   [DMESG-WARN][3] ([i915#1982] / [k.org#205379]) -> 
[PASS][4]
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9111/fi-tgl-dsi/igt@i915_module_l...@reload.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18649/fi-tgl-dsi/igt@i915_module_l...@reload.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
- {fi-kbl-7560u}: [DMESG-WARN][5] ([i915#1982]) -> [PASS][6]
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9111/fi-kbl-7560u/igt@kms_cursor_leg...@basic-busy-flip-before-cursor-atomic.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18649/fi-kbl-7560u/igt@kms_cursor_leg...@basic-busy-flip-before-cursor-atomic.html

  
  {name}: This element is suppressed. This means it is ignored when computing
  the status of the difference (SUCCESS, WARNING, or FAILURE).

  [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
  [k.org#205379]: https://bugzilla.kernel.org/show_bug.cgi?id=205379


Participating hosts (15 -> 12)
--

  Missing(3): fi-byt-clapper fi-byt-squawks fi-bsw-cyan 


Build changes
-

  * Linux: CI_DRM_9111 -> Patchwork_18649

  CI-20190529: 20190529
  CI_DRM_9111: 4ebfe1a6dfa98f91aeec86210071e9d9034ffbef @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5804: a15f8da169c7ab32db77aca7ae2b26c616c9edef @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_18649: ee8d45620ced3e902c213edf318978000d9aaff2 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

ee8d45620ced drm/i915: Switch to LTTPR non-transparent mode link training
7ec77b9c6f99 drm/i915: Switch to LTTPR transparent mode link training
ca33f1b792a8 drm/dp: Add LTTPR helpers
c4ae6b256abb drm/i915: Factor out a helper to disable the DPCD training pattern
fa491d23f8b9 drm/i915: Simplify the link training functions
bb57cb8f0950 drm/i915: Fix DP link training pattern mask

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18649/index.html
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [v2,1/3] drm/i915: Reorder hpd init vs. display resume (rev2)

2020-10-08 Thread Patchwork
== Series Details ==

Series: series starting with [v2,1/3] drm/i915: Reorder hpd init vs. display 
resume (rev2)
URL   : https://patchwork.freedesktop.org/series/82417/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
9bfa4d97c74e drm/i915: Reorder hpd init vs. display resume
-:26: WARNING:COMMIT_LOG_LONG_LINE: Possible unwrapped commit description 
(prefer a maximum 75 chars per line)
#26: 
.hpd_irq_setup()+resume+intel_hpd_init() -> 
intel_hpd_init()+resume+intel_hpd_poll_disable()

-:166: WARNING:TYPO_SPELLING: 'seperate' may be misspelled - perhaps 'separate'?
#166: FILE: drivers/gpu/drm/i915/display/intel_hotplug.c:693:
+ * dev->mode_config.mutex, we do the actual hotplug enabling in a seperate

total: 0 errors, 2 warnings, 0 checks, 168 lines checked
f5532005bb88 drm/i915: Do drm_mode_config_reset() after HPD init
2bcc60547bc5 drm/i915: Refactor .hpd_irq_setup() calls a bit


___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [v2,1/3] drm/i915: Reorder hpd init vs. display resume (rev2)

2020-10-08 Thread Patchwork
== Series Details ==

Series: series starting with [v2,1/3] drm/i915: Reorder hpd init vs. display 
resume (rev2)
URL   : https://patchwork.freedesktop.org/series/82417/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_9111 -> Patchwork_18650


Summary
---

  **SUCCESS**

  No regressions found.

  External URL: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18650/index.html

Known issues


  Here are the changes found in Patchwork_18650 that come from known issues:

### IGT changes ###

 Issues hit 

  * igt@kms_flip@basic-flip-vs-wf_vblank@c-edp1:
- fi-icl-u2:  [PASS][1] -> [DMESG-WARN][2] ([i915#1982]) +1 similar 
issue
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9111/fi-icl-u2/igt@kms_flip@basic-flip-vs-wf_vbl...@c-edp1.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18650/fi-icl-u2/igt@kms_flip@basic-flip-vs-wf_vbl...@c-edp1.html

  
 Possible fixes 

  * igt@i915_module_load@reload:
- {fi-tgl-dsi}:   [DMESG-WARN][3] ([i915#1982] / [k.org#205379]) -> 
[PASS][4]
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9111/fi-tgl-dsi/igt@i915_module_l...@reload.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18650/fi-tgl-dsi/igt@i915_module_l...@reload.html

  * igt@i915_pm_rpm@basic-pci-d3-state:
- fi-bsw-kefka:   [DMESG-WARN][5] ([i915#1982]) -> [PASS][6]
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9111/fi-bsw-kefka/igt@i915_pm_...@basic-pci-d3-state.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18650/fi-bsw-kefka/igt@i915_pm_...@basic-pci-d3-state.html

  
  {name}: This element is suppressed. This means it is ignored when computing
  the status of the difference (SUCCESS, WARNING, or FAILURE).

  [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
  [k.org#205379]: https://bugzilla.kernel.org/show_bug.cgi?id=205379


Participating hosts (15 -> 12)
--

  Missing(3): fi-byt-clapper fi-byt-squawks fi-bsw-cyan 


Build changes
-

  * Linux: CI_DRM_9111 -> Patchwork_18650

  CI-20190529: 20190529
  CI_DRM_9111: 4ebfe1a6dfa98f91aeec86210071e9d9034ffbef @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5804: a15f8da169c7ab32db77aca7ae2b26c616c9edef @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_18650: 2bcc60547bc5b60392c3d6040c702e4fa5363c76 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

2bcc60547bc5 drm/i915: Refactor .hpd_irq_setup() calls a bit
f5532005bb88 drm/i915: Do drm_mode_config_reset() after HPD init
9bfa4d97c74e drm/i915: Reorder hpd init vs. display resume

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18650/index.html
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH v3] drm/i915: Exclude low pages (128KiB) of stolen from use

2020-10-08 Thread Chris Wilson
The GPU is trashing the low pages of its reserved memory upon reset. If
we are using this memory for ringbuffers, then we will dutiful resubmit
the trashed rings after the reset causing further resets, and worse. We
must exclude this range from our own use. The value of 128KiB was found
by empirical measurement (and included as a selftest) on gen9.

Signed-off-by: Chris Wilson 
Cc: sta...@vger.kernel.org
---
 drivers/gpu/drm/i915/Kconfig.debug |   1 +
 drivers/gpu/drm/i915/gem/i915_gem_stolen.c |   6 +-
 drivers/gpu/drm/i915/gem/i915_gem_stolen.h |   2 +
 drivers/gpu/drm/i915/gt/selftest_reset.c   | 192 +
 4 files changed, 199 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/Kconfig.debug 
b/drivers/gpu/drm/i915/Kconfig.debug
index 206882e154bc..0fb7fd0ef717 100644
--- a/drivers/gpu/drm/i915/Kconfig.debug
+++ b/drivers/gpu/drm/i915/Kconfig.debug
@@ -162,6 +162,7 @@ config DRM_I915_SELFTEST
select DRM_EXPORT_FOR_TESTS if m
select FAULT_INJECTION
select PRIME_NUMBERS
+   select CRC32
help
  Choose this option to allow the driver to perform selftests upon
  loading; also requires the i915.selftest=1 module parameter. To
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_stolen.c 
b/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
index 4c2869c0a802..637738609d33 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
@@ -53,8 +53,10 @@ int i915_gem_stolen_insert_node(struct drm_i915_private 
*i915,
struct drm_mm_node *node, u64 size,
unsigned alignment)
 {
-   return i915_gem_stolen_insert_node_in_range(i915, node, size,
-   alignment, 0, U64_MAX);
+   return i915_gem_stolen_insert_node_in_range(i915, node,
+   size, alignment,
+   I915_GEM_STOLEN_BIAS,
+   U64_MAX);
 }
 
 void i915_gem_stolen_remove_node(struct drm_i915_private *i915,
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_stolen.h 
b/drivers/gpu/drm/i915/gem/i915_gem_stolen.h
index e15c0adad8af..61e028063f9f 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_stolen.h
+++ b/drivers/gpu/drm/i915/gem/i915_gem_stolen.h
@@ -30,4 +30,6 @@ i915_gem_object_create_stolen_for_preallocated(struct 
drm_i915_private *dev_priv
   resource_size_t stolen_offset,
   resource_size_t size);
 
+#define I915_GEM_STOLEN_BIAS SZ_128K
+
 #endif /* __I915_GEM_STOLEN_H__ */
diff --git a/drivers/gpu/drm/i915/gt/selftest_reset.c 
b/drivers/gpu/drm/i915/gt/selftest_reset.c
index 35406ecdf0b2..cf2b2078ca20 100644
--- a/drivers/gpu/drm/i915/gt/selftest_reset.c
+++ b/drivers/gpu/drm/i915/gt/selftest_reset.c
@@ -3,9 +3,199 @@
  * Copyright © 2018 Intel Corporation
  */
 
+#include 
+
+#include "gem/i915_gem_stolen.h"
+
+#include "i915_memcpy.h"
 #include "i915_selftest.h"
 #include "selftests/igt_reset.h"
 #include "selftests/igt_atomic.h"
+#include "selftests/igt_spinner.h"
+
+static int
+__igt_reset_stolen(struct intel_gt *gt,
+  intel_engine_mask_t mask,
+  const char *msg)
+{
+   struct i915_ggtt *ggtt = >->i915->ggtt;
+   const struct resource *dsm = >->i915->dsm;
+   resource_size_t num_pages, page, max, count;
+   struct intel_engine_cs *engine;
+   intel_wakeref_t wakeref;
+   enum intel_engine_id id;
+   struct igt_spinner spin;
+   void *tmp;
+   u32 *crc;
+   int err;
+
+   if (!drm_mm_node_allocated(&ggtt->error_capture))
+   return 0;
+
+   num_pages = resource_size(dsm) >> PAGE_SHIFT;
+   if (!num_pages)
+   return 0;
+
+   crc = kmalloc_array(num_pages, sizeof(u32), GFP_KERNEL);
+   if (!crc)
+   return -ENOMEM;
+
+   tmp = kmalloc(PAGE_SIZE, GFP_KERNEL);
+   if (!tmp) {
+   err = -ENOMEM;
+   goto err_crc;
+   }
+
+   igt_global_reset_lock(gt);
+   wakeref = intel_runtime_pm_get(gt->uncore->rpm);
+
+   err = igt_spinner_init(&spin, gt);
+   if (err)
+   goto err_lock;
+
+   for_each_engine(engine, gt, id) {
+   struct intel_context *ce;
+   struct i915_request *rq;
+
+   if (!(mask & engine->mask))
+   continue;
+
+   ce = intel_context_create(engine);
+   if (IS_ERR(ce)) {
+   err = PTR_ERR(ce);
+   goto err_spin;
+   }
+   rq = igt_spinner_create_request(&spin, ce, 0xc3c3c3c3);
+   intel_context_put(ce);
+   if (IS_ERR(rq)) {
+   err = PTR_ERR(rq);
+   goto err_spin;
+   }
+

[Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [v5,1/3] drm/i915/display: Ignore IGNORE_PSR2_HW_TRACKING for platforms without sel fetch

2020-10-08 Thread Patchwork
== Series Details ==

Series: series starting with [v5,1/3] drm/i915/display: Ignore 
IGNORE_PSR2_HW_TRACKING for platforms without sel fetch
URL   : https://patchwork.freedesktop.org/series/82453/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_9111 -> Patchwork_18651


Summary
---

  **SUCCESS**

  No regressions found.

  External URL: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18651/index.html

Known issues


  Here are the changes found in Patchwork_18651 that come from known issues:

### IGT changes ###

 Issues hit 

  * igt@kms_cursor_legacy@basic-flip-before-cursor-atomic:
- fi-icl-u2:  [PASS][1] -> [DMESG-WARN][2] ([i915#1982]) +1 similar 
issue
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9111/fi-icl-u2/igt@kms_cursor_leg...@basic-flip-before-cursor-atomic.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18651/fi-icl-u2/igt@kms_cursor_leg...@basic-flip-before-cursor-atomic.html

  
 Possible fixes 

  * igt@i915_module_load@reload:
- {fi-tgl-dsi}:   [DMESG-WARN][3] ([i915#1982] / [k.org#205379]) -> 
[PASS][4]
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9111/fi-tgl-dsi/igt@i915_module_l...@reload.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18651/fi-tgl-dsi/igt@i915_module_l...@reload.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
- fi-bsw-kefka:   [DMESG-WARN][5] ([i915#1982]) -> [PASS][6]
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9111/fi-bsw-kefka/igt@kms_cursor_leg...@basic-busy-flip-before-cursor-atomic.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18651/fi-bsw-kefka/igt@kms_cursor_leg...@basic-busy-flip-before-cursor-atomic.html
- {fi-kbl-7560u}: [DMESG-WARN][7] ([i915#1982]) -> [PASS][8]
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9111/fi-kbl-7560u/igt@kms_cursor_leg...@basic-busy-flip-before-cursor-atomic.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18651/fi-kbl-7560u/igt@kms_cursor_leg...@basic-busy-flip-before-cursor-atomic.html

  
  {name}: This element is suppressed. This means it is ignored when computing
  the status of the difference (SUCCESS, WARNING, or FAILURE).

  [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
  [i915#2411]: https://gitlab.freedesktop.org/drm/intel/issues/2411
  [k.org#205379]: https://bugzilla.kernel.org/show_bug.cgi?id=205379


Participating hosts (15 -> 12)
--

  Missing(3): fi-byt-clapper fi-byt-squawks fi-bsw-cyan 


Build changes
-

  * Linux: CI_DRM_9111 -> Patchwork_18651

  CI-20190529: 20190529
  CI_DRM_9111: 4ebfe1a6dfa98f91aeec86210071e9d9034ffbef @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5804: a15f8da169c7ab32db77aca7ae2b26c616c9edef @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_18651: 6f7010709e3f520533f76630867209ab0ce47831 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

6f7010709e3f drm/i915/display: Program PSR2 selective fetch registers
24a43e1b58bc drm/i915/display: Check PSR parameter and flag only in state 
compute phase
68815aafbaa6 drm/i915/display: Ignore IGNORE_PSR2_HW_TRACKING for platforms 
without sel fetch

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18651/index.html
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [1/3] drm/i915: Set all unused color plane offsets to ~0xfff again

2020-10-08 Thread Patchwork
== Series Details ==

Series: series starting with [1/3] drm/i915: Set all unused color plane offsets 
to ~0xfff again
URL   : https://patchwork.freedesktop.org/series/82462/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_9111 -> Patchwork_18652


Summary
---

  **SUCCESS**

  No regressions found.

  External URL: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18652/index.html

Known issues


  Here are the changes found in Patchwork_18652 that come from known issues:

### IGT changes ###

 Possible fixes 

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
- fi-bsw-kefka:   [DMESG-WARN][1] ([i915#1982]) -> [PASS][2]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9111/fi-bsw-kefka/igt@kms_cursor_leg...@basic-busy-flip-before-cursor-atomic.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18652/fi-bsw-kefka/igt@kms_cursor_leg...@basic-busy-flip-before-cursor-atomic.html
- {fi-kbl-7560u}: [DMESG-WARN][3] ([i915#1982]) -> [PASS][4]
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9111/fi-kbl-7560u/igt@kms_cursor_leg...@basic-busy-flip-before-cursor-atomic.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18652/fi-kbl-7560u/igt@kms_cursor_leg...@basic-busy-flip-before-cursor-atomic.html

  
  {name}: This element is suppressed. This means it is ignored when computing
  the status of the difference (SUCCESS, WARNING, or FAILURE).

  [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
  [i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402


Participating hosts (15 -> 12)
--

  Missing(3): fi-byt-clapper fi-byt-squawks fi-bsw-cyan 


Build changes
-

  * Linux: CI_DRM_9111 -> Patchwork_18652

  CI-20190529: 20190529
  CI_DRM_9111: 4ebfe1a6dfa98f91aeec86210071e9d9034ffbef @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5804: a15f8da169c7ab32db77aca7ae2b26c616c9edef @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_18652: de26426f487aea9dfa38be2d572d0adc801bcb8b @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

de26426f487a drm/i915: s/int/u32/ for aux_offset/alignment
4130378fe0f9 drm/i915: Skip aux plane stuff when there is no aux plane
65786c29a840 drm/i915: Set all unused color plane offsets to ~0xfff again

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18652/index.html
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH] drm/i915/gem: Poison stolen pages before use

2020-10-08 Thread Mika Kuoppala
Chris Wilson  writes:

> When allocating objects from stolen, memset() the backing store to
> POISON_INUSE (0x5a) to help identify any uninitialised use of a stolen
> object.
>
> Signed-off-by: Chris Wilson 

Reviewed-by: Mika Kuoppala 

> ---
>  drivers/gpu/drm/i915/gem/i915_gem_stolen.c | 33 ++
>  1 file changed, 33 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_stolen.c 
> b/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
> index 0be5e8683337..4c2869c0a802 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
> @@ -572,6 +572,38 @@ static const struct drm_i915_gem_object_ops 
> i915_gem_object_stolen_ops = {
>   .release = i915_gem_object_release_stolen,
>  };
>  
> +static void dbg_poison(struct drm_i915_gem_object *obj)
> +{
> +#if IS_ENABLED(CONFIG_DRM_I915_DEBUG_GEM)
> + struct drm_i915_private *i915 = to_i915(obj->base.dev);
> + struct i915_ggtt *ggtt = &i915->ggtt;
> + struct sgt_iter iter;
> + dma_addr_t addr;
> +
> + if (!drm_mm_node_allocated(&ggtt->error_capture))
> + return;
> +
> + mutex_lock(&ggtt->error_mutex);
> + for_each_sgt_daddr(addr, iter, obj->mm.pages) {
> + void __iomem *s;
> +
> + ggtt->vm.insert_page(&ggtt->vm, addr,
> +  ggtt->error_capture.start,
> +  I915_CACHE_NONE, 0);
> + mb();
> +
> + s = io_mapping_map_wc(&ggtt->iomap,
> +   ggtt->error_capture.start,
> +   PAGE_SIZE);
> + memset(s, POISON_INUSE, PAGE_SIZE);
> + io_mapping_unmap(s);
> + }
> + mb();
> + ggtt->vm.clear_range(&ggtt->vm, ggtt->error_capture.start, PAGE_SIZE);
> + mutex_unlock(&ggtt->error_mutex);
> +#endif
> +}
> +
>  static struct drm_i915_gem_object *
>  __i915_gem_object_create_stolen(struct intel_memory_region *mem,
>   struct drm_mm_node *stolen)
> @@ -598,6 +630,7 @@ __i915_gem_object_create_stolen(struct 
> intel_memory_region *mem,
>   goto cleanup;
>  
>   i915_gem_object_init_memory_region(obj, mem, 0);
> + dbg_poison(obj);
>  
>   return obj;
>  
> -- 
> 2.20.1
>
> ___
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH 1/3] drm/i915: Set all unused color plane offsets to ~0xfff again

2020-10-08 Thread Imre Deak
On Thu, Oct 08, 2020 at 01:16:06PM +0300, Ville Syrjala wrote:
> From: Ville Syrjälä 
> 
> When the number of potential color planes grew to 4 we stopped
> setting all unused color plane offsets to ~0xfff. The code
> still tries to do this, but actually does nothing since the
> loop limits are bogus.
> 
> skl_check_main_surface() actually depends on this ~0xfff
> behaviour as it will make sure to move the main surface
> offset below the aux surface offset because the hardware
> AUX_DIST must be a non-negative value [1], and for simplicity
> it doesn't bother checking if the AUX plane is actually
> needed or not. So currently it may end up shuffling the
> main surface around based on some stale leftover AUX offset.
> 
> The skl+ plane code also just blindly calculates the AUX_DIST
> whether or not the AUX plane is actually needed by the hw or
> not, and that too will now potentially use some stale AUX
> surface offset in the calculation. Would seem nicer to
> guarantee a consistent non-negative AUX_DIST always.
> 
> So bring back the original ~0xfff offset behaviour for
> unused color planes. Though it doesn't seem super likely
> that this inconsistency would cause any real issues.
> 
> Cc: Dhinakaran Pandiyan 
> Cc: Lucas De Marchi 
> Cc: Imre Deak 
> Cc: Radhakrishna Sripada 
> Fixes: 2dfbf9d2873a ("drm/i915/tgl: Gen-12 display can decompress surfaces 
> compressed by the media engine")
> Signed-off-by: Ville Syrjälä 

Arg. Yes skl_check_main_surface() adjusts now the address needlessly.
The fix looks ok to me:

Reviewed-by: Imre Deak 

> ---
>  drivers/gpu/drm/i915/display/intel_display.c | 17 +
>  1 file changed, 5 insertions(+), 12 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c 
> b/drivers/gpu/drm/i915/display/intel_display.c
> index 907e1d155443..44fd7059838f 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -4104,8 +4104,7 @@ static int skl_check_ccs_aux_surface(struct 
> intel_plane_state *plane_state)
>  int skl_check_plane_surface(struct intel_plane_state *plane_state)
>  {
>   const struct drm_framebuffer *fb = plane_state->hw.fb;
> - int ret;
> - bool needs_aux = false;
> + int ret, i;
>  
>   ret = intel_plane_compute_gtt(plane_state);
>   if (ret)
> @@ -4119,7 +4118,6 @@ int skl_check_plane_surface(struct intel_plane_state 
> *plane_state)
>* it.
>*/
>   if (is_ccs_modifier(fb->modifier)) {
> - needs_aux = true;
>   ret = skl_check_ccs_aux_surface(plane_state);
>   if (ret)
>   return ret;
> @@ -4127,20 +4125,15 @@ int skl_check_plane_surface(struct intel_plane_state 
> *plane_state)
>  
>   if (intel_format_info_is_yuv_semiplanar(fb->format,
>   fb->modifier)) {
> - needs_aux = true;
>   ret = skl_check_nv12_aux_surface(plane_state);
>   if (ret)
>   return ret;
>   }
>  
> - if (!needs_aux) {
> - int i;
> -
> - for (i = 1; i < fb->format->num_planes; i++) {
> - plane_state->color_plane[i].offset = ~0xfff;
> - plane_state->color_plane[i].x = 0;
> - plane_state->color_plane[i].y = 0;
> - }
> + for (i = fb->format->num_planes; i < 
> ARRAY_SIZE(plane_state->color_plane); i++) {
> + plane_state->color_plane[i].offset = ~0xfff;
> + plane_state->color_plane[i].x = 0;
> + plane_state->color_plane[i].y = 0;
>   }
>  
>   ret = skl_check_main_surface(plane_state);
> -- 
> 2.26.2
> 
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH 2/3] drm/i915: Skip aux plane stuff when there is no aux plane

2020-10-08 Thread Imre Deak
On Thu, Oct 08, 2020 at 01:16:07PM +0300, Ville Syrjala wrote:
> From: Ville Syrjälä 
> 
> when the hardware isn't going to use the aux plane there's no
> real point in dealing with the relevant hardware restrictions.
> So let's just skip all that when not necessary.
> 
> We can now also remove the offset=~0xfff behaviour for unused
> color planes. Let's just zero out everyting so as to not leave
> stale garbage behind to confuse people debugging the code.
> 
> Signed-off-by: Ville Syrjälä 

Reviewed-by: Imre Deak 

> ---
>  drivers/gpu/drm/i915/display/intel_display.c | 14 +-
>  drivers/gpu/drm/i915/display/intel_sprite.c  |  6 +++---
>  2 files changed, 12 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c 
> b/drivers/gpu/drm/i915/display/intel_display.c
> index 44fd7059838f..34ba34f84b2a 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -2001,13 +2001,17 @@ static int ccs_to_main_plane(const struct 
> drm_framebuffer *fb, int ccs_plane)
>   return ccs_plane - fb->format->num_planes / 2;
>  }
>  
> -/* Return either the main plane's CCS or - if not a CCS FB - UV plane */
>  int intel_main_to_aux_plane(const struct drm_framebuffer *fb, int main_plane)
>  {
> + struct drm_i915_private *i915 = to_i915(fb->dev);
> +
>   if (is_ccs_modifier(fb->modifier))
>   return main_to_ccs_plane(fb, main_plane);
> -
> - return 1;
> + else if (INTEL_GEN(i915) < 11 &&
> +  intel_format_info_is_yuv_semiplanar(fb->format, fb->modifier))
> + return 1;
> + else
> + return 0;
>  }
>  
>  bool
> @@ -3933,7 +3937,7 @@ static int skl_check_main_surface(struct 
> intel_plane_state *plane_state)
>* main surface offset, and it must be non-negative. Make
>* sure that is what we will get.
>*/
> - if (offset > aux_offset)
> + if (aux_plane && offset > aux_offset)
>   offset = intel_plane_adjust_aligned_offset(&x, &y, plane_state, 
> 0,
>  offset, aux_offset & 
> ~(alignment - 1));
>  
> @@ -4131,7 +4135,7 @@ int skl_check_plane_surface(struct intel_plane_state 
> *plane_state)
>   }
>  
>   for (i = fb->format->num_planes; i < 
> ARRAY_SIZE(plane_state->color_plane); i++) {
> - plane_state->color_plane[i].offset = ~0xfff;
> + plane_state->color_plane[i].offset = 0;
>   plane_state->color_plane[i].x = 0;
>   plane_state->color_plane[i].y = 0;
>   }
> diff --git a/drivers/gpu/drm/i915/display/intel_sprite.c 
> b/drivers/gpu/drm/i915/display/intel_sprite.c
> index 2da11ab6343c..bf8c82a2b213 100644
> --- a/drivers/gpu/drm/i915/display/intel_sprite.c
> +++ b/drivers/gpu/drm/i915/display/intel_sprite.c
> @@ -656,7 +656,6 @@ skl_program_plane(struct intel_plane *plane,
>   const struct drm_framebuffer *fb = plane_state->hw.fb;
>   int aux_plane = intel_main_to_aux_plane(fb, color_plane);
>   u32 aux_dist = plane_state->color_plane[aux_plane].offset - surf_addr;
> - u32 aux_stride = skl_plane_stride(plane_state, aux_plane);
>   int crtc_x = plane_state->uapi.dst.x1;
>   int crtc_y = plane_state->uapi.dst.y1;
>   u32 x = plane_state->color_plane[color_plane].x;
> @@ -691,6 +690,9 @@ skl_program_plane(struct intel_plane *plane,
>   crtc_y = 0;
>   }
>  
> + if (INTEL_GEN(dev_priv) < 12 && aux_plane)
> + aux_dist |= skl_plane_stride(plane_state, aux_plane);
> +
>   spin_lock_irqsave(&dev_priv->uncore.lock, irqflags);
>  
>   intel_de_write_fw(dev_priv, PLANE_STRIDE(pipe, plane_id), stride);
> @@ -699,8 +701,6 @@ skl_program_plane(struct intel_plane *plane,
>   intel_de_write_fw(dev_priv, PLANE_SIZE(pipe, plane_id),
> (src_h << 16) | src_w);
>  
> - if (INTEL_GEN(dev_priv) < 12)
> - aux_dist |= aux_stride;
>   intel_de_write_fw(dev_priv, PLANE_AUX_DIST(pipe, plane_id), aux_dist);
>  
>   if (icl_is_hdr_plane(dev_priv, plane_id))
> -- 
> 2.26.2
> 
> ___
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH 3/3] drm/i915: s/int/u32/ for aux_offset/alignment

2020-10-08 Thread Imre Deak
On Thu, Oct 08, 2020 at 01:16:08PM +0300, Ville Syrjala wrote:
> From: Ville Syrjälä 
> 
> ggtt offsets/alignments are u32 everywhere else. Don't use
> a signed int for them here.
> 
> Signed-off-by: Ville Syrjälä 

Reviewed-by: Imre Deak 

> ---
>  drivers/gpu/drm/i915/display/intel_display.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c 
> b/drivers/gpu/drm/i915/display/intel_display.c
> index 34ba34f84b2a..fe482ca721f8 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -4026,8 +4026,8 @@ static int skl_check_nv12_aux_surface(struct 
> intel_plane_state *plane_state)
>  
>   if (is_ccs_modifier(fb->modifier)) {
>   int ccs_plane = main_to_ccs_plane(fb, uv_plane);
> - int aux_offset = plane_state->color_plane[ccs_plane].offset;
> - int alignment = intel_surf_alignment(fb, uv_plane);
> + u32 aux_offset = plane_state->color_plane[ccs_plane].offset;
> + u32 alignment = intel_surf_alignment(fb, uv_plane);
>  
>   if (offset > aux_offset)
>   offset = intel_plane_adjust_aligned_offset(&x, &y,
> -- 
> 2.26.2
> 
> ___
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915/gem: Poison stolen pages before use

2020-10-08 Thread Patchwork
== Series Details ==

Series: drm/i915/gem: Poison stolen pages before use
URL   : https://patchwork.freedesktop.org/series/82463/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
5dcceb34889a drm/i915/gem: Poison stolen pages before use
-:39: WARNING:MEMORY_BARRIER: memory barrier without comment
#39: FILE: drivers/gpu/drm/i915/gem/i915_gem_stolen.c:593:
+   mb();

-:47: WARNING:MEMORY_BARRIER: memory barrier without comment
#47: FILE: drivers/gpu/drm/i915/gem/i915_gem_stolen.c:601:
+   mb();

total: 0 errors, 2 warnings, 0 checks, 45 lines checked


___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✗ Fi.CI.SPARSE: warning for drm/i915/gem: Poison stolen pages before use

2020-10-08 Thread Patchwork
== Series Details ==

Series: drm/i915/gem: Poison stolen pages before use
URL   : https://patchwork.freedesktop.org/series/82463/
State : warning

== Summary ==

$ dim sparse --fast origin/drm-tip
Sparse version: v0.6.2
Fast mode used, each commit won't be checked separately.
-
+drivers/gpu/drm/i915/gem/i915_gem_stolen.c:598:24:expected void *s
+drivers/gpu/drm/i915/gem/i915_gem_stolen.c:598:24:got void [noderef] 
__iomem *[assigned] s
+drivers/gpu/drm/i915/gem/i915_gem_stolen.c:598:24: warning: incorrect type in 
argument 1 (different address spaces)


___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915/gem: Poison stolen pages before use

2020-10-08 Thread Patchwork
== Series Details ==

Series: drm/i915/gem: Poison stolen pages before use
URL   : https://patchwork.freedesktop.org/series/82463/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_9113 -> Patchwork_18653


Summary
---

  **SUCCESS**

  No regressions found.

  External URL: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18653/index.html

Known issues


  Here are the changes found in Patchwork_18653 that come from known issues:

### IGT changes ###

 Issues hit 

  * igt@i915_module_load@reload:
- fi-tgl-u2:  [PASS][1] -> [DMESG-WARN][2] ([i915#1982] / 
[k.org#205379])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-tgl-u2/igt@i915_module_l...@reload.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18653/fi-tgl-u2/igt@i915_module_l...@reload.html

  * igt@i915_selftest@live@execlists:
- fi-apl-guc: [PASS][3] -> [INCOMPLETE][4] ([i915#1635])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-apl-guc/igt@i915_selftest@l...@execlists.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18653/fi-apl-guc/igt@i915_selftest@l...@execlists.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
- fi-bsw-kefka:   [PASS][5] -> [DMESG-WARN][6] ([i915#1982])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-bsw-kefka/igt@kms_cursor_leg...@basic-busy-flip-before-cursor-atomic.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18653/fi-bsw-kefka/igt@kms_cursor_leg...@basic-busy-flip-before-cursor-atomic.html

  
 Possible fixes 

  * {igt@core_hotunplug@unbind-rebind}:
- fi-icl-y:   [DMESG-WARN][7] ([i915#1982]) -> [PASS][8]
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-icl-y/igt@core_hotunp...@unbind-rebind.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18653/fi-icl-y/igt@core_hotunp...@unbind-rebind.html

  * igt@gem_exec_suspend@basic-s3:
- fi-skl-lmem:[INCOMPLETE][9] ([i915#198]) -> [PASS][10]
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-skl-lmem/igt@gem_exec_susp...@basic-s3.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18653/fi-skl-lmem/igt@gem_exec_susp...@basic-s3.html

  * igt@kms_busy@basic@flip:
- {fi-tgl-dsi}:   [DMESG-WARN][11] ([i915#1982]) -> [PASS][12]
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-tgl-dsi/igt@kms_busy@ba...@flip.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18653/fi-tgl-dsi/igt@kms_busy@ba...@flip.html
- fi-kbl-x1275:   [DMESG-WARN][13] ([i915#62] / [i915#92] / [i915#95]) 
-> [PASS][14]
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-kbl-x1275/igt@kms_busy@ba...@flip.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18653/fi-kbl-x1275/igt@kms_busy@ba...@flip.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
- fi-icl-u2:  [DMESG-WARN][15] ([i915#1982]) -> [PASS][16]
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-icl-u2/igt@kms_cursor_leg...@basic-busy-flip-before-cursor-atomic.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18653/fi-icl-u2/igt@kms_cursor_leg...@basic-busy-flip-before-cursor-atomic.html

  * igt@vgem_basic@unload:
- fi-skl-guc: [DMESG-WARN][17] ([i915#2203]) -> [PASS][18]
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-skl-guc/igt@vgem_ba...@unload.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18653/fi-skl-guc/igt@vgem_ba...@unload.html
- fi-kbl-x1275:   [DMESG-WARN][19] ([i915#62] / [i915#92]) -> [PASS][20]
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-kbl-x1275/igt@vgem_ba...@unload.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18653/fi-kbl-x1275/igt@vgem_ba...@unload.html

  
 Warnings 

  * igt@gem_exec_suspend@basic-s0:
- fi-kbl-x1275:   [DMESG-WARN][21] ([i915#62] / [i915#92]) -> 
[DMESG-WARN][22] ([i915#62] / [i915#92] / [i915#95]) +3 similar issues
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-kbl-x1275/igt@gem_exec_susp...@basic-s0.html
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18653/fi-kbl-x1275/igt@gem_exec_susp...@basic-s0.html

  * igt@i915_pm_rpm@module-reload:
- fi-kbl-x1275:   [DMESG-FAIL][23] ([i915#62]) -> [DMESG-FAIL][24] 
([i915#62] / [i915#95])
   [23]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-kbl-x1275/igt@i915_pm_...@module-reload.html
   [24]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18653/fi-kbl-x1275/igt@i915_pm_...@module-reload.html

  * igt@kms_force_connector_basic@prune-stale-modes:
- fi-kbl-x1275:   [DMESG-WARN][25] ([i915#62] / [i915#92] / [i915#95]) 
-> [DMESG-WARN][26] ([i915#62] / [i915#92]) +6 similar issues
   [25]: 
https://intel-gfx-ci.01.org/tree/drm-

[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Exclude low pages (128KiB) of stolen from use (rev3)

2020-10-08 Thread Patchwork
== Series Details ==

Series: drm/i915: Exclude low pages (128KiB) of stolen from use (rev3)
URL   : https://patchwork.freedesktop.org/series/82443/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
b386647f0366 drm/i915: Exclude low pages (128KiB) of stolen from use
-:142: WARNING:MEMORY_BARRIER: memory barrier without comment
#142: FILE: drivers/gpu/drm/i915/gt/selftest_reset.c:85:
+   mb();

-:160: WARNING:MEMORY_BARRIER: memory barrier without comment
#160: FILE: drivers/gpu/drm/i915/gt/selftest_reset.c:103:
+   mb();

-:183: WARNING:MEMORY_BARRIER: memory barrier without comment
#183: FILE: drivers/gpu/drm/i915/gt/selftest_reset.c:126:
+   mb();

-:207: WARNING:MEMORY_BARRIER: memory barrier without comment
#207: FILE: drivers/gpu/drm/i915/gt/selftest_reset.c:150:
+   mb();

-:249: ERROR:SPACING: spaces required around that '=' (ctx:WxV)
#249: FILE: drivers/gpu/drm/i915/gt/selftest_reset.c:192:
+   err =__igt_reset_stolen(gt, engine->mask, engine->name);
^

total: 1 errors, 4 warnings, 0 checks, 232 lines checked


___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✗ Fi.CI.SPARSE: warning for drm/i915: Exclude low pages (128KiB) of stolen from use (rev3)

2020-10-08 Thread Patchwork
== Series Details ==

Series: drm/i915: Exclude low pages (128KiB) of stolen from use (rev3)
URL   : https://patchwork.freedesktop.org/series/82443/
State : warning

== Summary ==

$ dim sparse --fast origin/drm-tip
Sparse version: v0.6.2
Fast mode used, each commit won't be checked separately.
+drivers/gpu/drm/i915/gt/selftest_reset.c:132:20:expected void *in
+drivers/gpu/drm/i915/gt/selftest_reset.c:132:20:got void [noderef] __iomem 
*[assigned] s
+drivers/gpu/drm/i915/gt/selftest_reset.c:132:20: warning: incorrect type in 
assignment (different address spaces)
+drivers/gpu/drm/i915/gt/selftest_reset.c:133:46:expected void const *src
+drivers/gpu/drm/i915/gt/selftest_reset.c:133:46:got void [noderef] __iomem 
*[assigned] s
+drivers/gpu/drm/i915/gt/selftest_reset.c:133:46: warning: incorrect type in 
argument 2 (different address spaces)
+drivers/gpu/drm/i915/gt/selftest_reset.c:94:34:expected unsigned int 
[usertype] *s
+drivers/gpu/drm/i915/gt/selftest_reset.c:94:34:got void [noderef] __iomem 
*[assigned] s
+drivers/gpu/drm/i915/gt/selftest_reset.c:94:34: warning: incorrect type in 
argument 1 (different address spaces)
+drivers/gpu/drm/i915/gt/selftest_reset.c:96:20:expected void *in
+drivers/gpu/drm/i915/gt/selftest_reset.c:96:20:got void [noderef] __iomem 
*[assigned] s
+drivers/gpu/drm/i915/gt/selftest_reset.c:96:20: warning: incorrect type in 
assignment (different address spaces)
+drivers/gpu/drm/i915/gt/selftest_reset.c:97:46:expected void const *src
+drivers/gpu/drm/i915/gt/selftest_reset.c:97:46:got void [noderef] __iomem 
*[assigned] s
+drivers/gpu/drm/i915/gt/selftest_reset.c:97:46: warning: incorrect type in 
argument 2 (different address spaces)


___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✗ Fi.CI.BAT: failure for drm/i915: Exclude low pages (128KiB) of stolen from use (rev3)

2020-10-08 Thread Patchwork
== Series Details ==

Series: drm/i915: Exclude low pages (128KiB) of stolen from use (rev3)
URL   : https://patchwork.freedesktop.org/series/82443/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_9113 -> Patchwork_18654


Summary
---

  **FAILURE**

  Serious unknown changes coming with Patchwork_18654 absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_18654, please notify your bug team 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_18654/index.html

Possible new issues
---

  Here are the unknown changes that may have been introduced in Patchwork_18654:

### IGT changes ###

 Possible regressions 

  * igt@i915_selftest@live@gt_heartbeat:
- fi-tgl-u2:  [PASS][1] -> [INCOMPLETE][2]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-tgl-u2/igt@i915_selftest@live@gt_heartbeat.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18654/fi-tgl-u2/igt@i915_selftest@live@gt_heartbeat.html

  * igt@i915_selftest@live@reset:
- fi-bwr-2160:[PASS][3] -> [DMESG-FAIL][4]
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-bwr-2160/igt@i915_selftest@l...@reset.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18654/fi-bwr-2160/igt@i915_selftest@l...@reset.html
- fi-gdg-551: [PASS][5] -> [DMESG-FAIL][6]
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-gdg-551/igt@i915_selftest@l...@reset.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18654/fi-gdg-551/igt@i915_selftest@l...@reset.html
- fi-snb-2520m:   [PASS][7] -> [INCOMPLETE][8]
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-snb-2520m/igt@i915_selftest@l...@reset.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18654/fi-snb-2520m/igt@i915_selftest@l...@reset.html

  
Known issues


  Here are the changes found in Patchwork_18654 that come from known issues:

### IGT changes ###

 Issues hit 

  * igt@i915_selftest@live@reset:
- fi-snb-2600:[PASS][9] -> [INCOMPLETE][10] ([i915#82])
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-snb-2600/igt@i915_selftest@l...@reset.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18654/fi-snb-2600/igt@i915_selftest@l...@reset.html

  * igt@kms_chamelium@common-hpd-after-suspend:
- fi-kbl-7500u:   [PASS][11] -> [DMESG-WARN][12] ([i915#2203])
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-kbl-7500u/igt@kms_chamel...@common-hpd-after-suspend.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18654/fi-kbl-7500u/igt@kms_chamel...@common-hpd-after-suspend.html

  * igt@kms_cursor_legacy@basic-flip-before-cursor-legacy:
- fi-icl-u2:  [PASS][13] -> [DMESG-WARN][14] ([i915#1982])
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-icl-u2/igt@kms_cursor_leg...@basic-flip-before-cursor-legacy.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18654/fi-icl-u2/igt@kms_cursor_leg...@basic-flip-before-cursor-legacy.html

  
 Possible fixes 

  * {igt@core_hotunplug@unbind-rebind}:
- fi-icl-y:   [DMESG-WARN][15] ([i915#1982]) -> [PASS][16]
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-icl-y/igt@core_hotunp...@unbind-rebind.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18654/fi-icl-y/igt@core_hotunp...@unbind-rebind.html

  * igt@gem_exec_suspend@basic-s3:
- fi-skl-lmem:[INCOMPLETE][17] ([i915#198]) -> [PASS][18]
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-skl-lmem/igt@gem_exec_susp...@basic-s3.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18654/fi-skl-lmem/igt@gem_exec_susp...@basic-s3.html

  * igt@i915_pm_rpm@basic-pci-d3-state:
- fi-bsw-kefka:   [DMESG-WARN][19] ([i915#1982]) -> [PASS][20]
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-bsw-kefka/igt@i915_pm_...@basic-pci-d3-state.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18654/fi-bsw-kefka/igt@i915_pm_...@basic-pci-d3-state.html

  * igt@kms_busy@basic@flip:
- {fi-tgl-dsi}:   [DMESG-WARN][21] ([i915#1982]) -> [PASS][22]
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-tgl-dsi/igt@kms_busy@ba...@flip.html
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18654/fi-tgl-dsi/igt@kms_busy@ba...@flip.html
- fi-kbl-x1275:   [DMESG-WARN][23] ([i915#62] / [i915#92] / [i915#95]) 
-> [PASS][24]
   [23]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-kbl-x1275/igt@kms_busy@ba...@flip.html
   [24]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18654/fi-kbl-x1275/igt@kms_busy@ba...@fli

[Intel-gfx] ✗ Fi.CI.BAT: failure for series starting with [1/3] drm/i915: Set all unused color plane offsets to ~0xfff again (rev2)

2020-10-08 Thread Patchwork
== Series Details ==

Series: series starting with [1/3] drm/i915: Set all unused color plane offsets 
to ~0xfff again (rev2)
URL   : https://patchwork.freedesktop.org/series/82462/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_9113 -> Patchwork_18655


Summary
---

  **FAILURE**

  Serious unknown changes coming with Patchwork_18655 absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_18655, please notify your bug team 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_18655/index.html

Possible new issues
---

  Here are the unknown changes that may have been introduced in Patchwork_18655:

### IGT changes ###

 Possible regressions 

  * igt@i915_selftest@live@gt_heartbeat:
- fi-tgl-u2:  [PASS][1] -> [INCOMPLETE][2]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-tgl-u2/igt@i915_selftest@live@gt_heartbeat.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18655/fi-tgl-u2/igt@i915_selftest@live@gt_heartbeat.html

  
Known issues


  Here are the changes found in Patchwork_18655 that come from known issues:

### IGT changes ###

 Issues hit 

  * igt@kms_flip@basic-flip-vs-wf_vblank@c-edp1:
- fi-icl-u2:  [PASS][3] -> [DMESG-WARN][4] ([i915#1982]) +1 similar 
issue
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-icl-u2/igt@kms_flip@basic-flip-vs-wf_vbl...@c-edp1.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18655/fi-icl-u2/igt@kms_flip@basic-flip-vs-wf_vbl...@c-edp1.html

  
 Possible fixes 

  * igt@gem_exec_suspend@basic-s3:
- fi-skl-lmem:[INCOMPLETE][5] ([i915#198]) -> [PASS][6]
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-skl-lmem/igt@gem_exec_susp...@basic-s3.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18655/fi-skl-lmem/igt@gem_exec_susp...@basic-s3.html

  * igt@kms_busy@basic@flip:
- {fi-tgl-dsi}:   [DMESG-WARN][7] ([i915#1982]) -> [PASS][8]
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-tgl-dsi/igt@kms_busy@ba...@flip.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18655/fi-tgl-dsi/igt@kms_busy@ba...@flip.html
- fi-kbl-x1275:   [DMESG-WARN][9] ([i915#62] / [i915#92] / [i915#95]) 
-> [PASS][10]
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-kbl-x1275/igt@kms_busy@ba...@flip.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18655/fi-kbl-x1275/igt@kms_busy@ba...@flip.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
- {fi-kbl-7560u}: [DMESG-WARN][11] ([i915#1982]) -> [PASS][12]
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-kbl-7560u/igt@kms_cursor_leg...@basic-busy-flip-before-cursor-atomic.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18655/fi-kbl-7560u/igt@kms_cursor_leg...@basic-busy-flip-before-cursor-atomic.html
- fi-icl-u2:  [DMESG-WARN][13] ([i915#1982]) -> [PASS][14]
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-icl-u2/igt@kms_cursor_leg...@basic-busy-flip-before-cursor-atomic.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18655/fi-icl-u2/igt@kms_cursor_leg...@basic-busy-flip-before-cursor-atomic.html

  * igt@vgem_basic@unload:
- fi-skl-guc: [DMESG-WARN][15] ([i915#2203]) -> [PASS][16]
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-skl-guc/igt@vgem_ba...@unload.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18655/fi-skl-guc/igt@vgem_ba...@unload.html

  
 Warnings 

  * igt@i915_pm_rpm@module-reload:
- fi-kbl-x1275:   [DMESG-FAIL][17] ([i915#62]) -> [DMESG-FAIL][18] 
([i915#62] / [i915#95])
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-kbl-x1275/igt@i915_pm_...@module-reload.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18655/fi-kbl-x1275/igt@i915_pm_...@module-reload.html

  * igt@kms_force_connector_basic@force-edid:
- fi-kbl-x1275:   [DMESG-WARN][19] ([i915#62] / [i915#92]) -> 
[DMESG-WARN][20] ([i915#62] / [i915#92] / [i915#95]) +2 similar issues
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-kbl-x1275/igt@kms_force_connector_ba...@force-edid.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18655/fi-kbl-x1275/igt@kms_force_connector_ba...@force-edid.html

  * igt@kms_force_connector_basic@prune-stale-modes:
- fi-kbl-x1275:   [DMESG-WARN][21] ([i915#62] / [i915#92] / [i915#95]) 
-> [DMESG-WARN][22] ([i915#62] / [i915#92]) +4 similar issues
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-kbl-x1275/igt@kms_force_connector_ba...@prune-stale-modes.html
   [2

Re: [Intel-gfx] [PATCH 1/2] drm/i915/dpcd_bl: Skip testing control capability with force DPCD quirk

2020-10-08 Thread Lyude Paul
On Thu, 2020-10-08 at 10:32 +0800, Kai-Heng Feng wrote:
> Hi Lyude,
> 
> > On Oct 8, 2020, at 05:53, Lyude Paul  wrote:
> > 
> > Hi! I thought this patch rang a bell, we actually already had some
> > discussion
> > about this since there's a couple of other systems this was causing issues
> > for.
> > Unfortunately it never seems like that patch got sent out. Satadru?
> > 
> > (if I don't hear back from them soon, I'll just send out a patch for this
> > myself)
> > 
> > JFYI - the proper fix here is to just drop the
> > DP_EDP_BACKLIGHT_BRIGHTNESS_PWM_PIN_CAP check from the code entirely. As
> > long as
> > the backlight supports AUX_SET_CAP, that should be enough for us to control
> > it.
> 
> Does the proper fix include dropping DP_QUIRK_FORCE_DPCD_BACKLIGHT entirely?\

Not yet - we need someone to help with reviewing my Intel HDR backlight
interface patches before we can drop that. I was just talking about dropping the
check where we don't enable the DPCD backlight if it claims to support
DP_EDP_BACKLIGHT_BRIGHTNESS_PWM_PIN_CAP

> 
> Kai-Heng
> 
> > 
> > On Wed, 2020-10-07 at 14:58 +0800, Kai-Heng Feng wrote:
> > > HP DreamColor panel needs to be controlled via AUX interface. However,
> > > it has both DP_EDP_BACKLIGHT_BRIGHTNESS_AUX_SET_CAP and
> > > DP_EDP_BACKLIGHT_BRIGHTNESS_PWM_PIN_CAP set, so it fails to pass
> > > intel_dp_aux_display_control_capable() test.
> > > 
> > > Skip the test if the panel has force DPCD quirk.
> > > 
> > > Signed-off-by: Kai-Heng Feng 
> > > ---
> > > drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c | 10 ++
> > > 1 file changed, 6 insertions(+), 4 deletions(-)
> > > 
> > > diff --git a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
> > > b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
> > > index acbd7eb66cbe..acf2e1c65290 100644
> > > --- a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
> > > +++ b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
> > > @@ -347,9 +347,13 @@ int intel_dp_aux_init_backlight_funcs(struct
> > > intel_connector *intel_connector)
> > >   struct intel_panel *panel = &intel_connector->panel;
> > >   struct intel_dp *intel_dp = enc_to_intel_dp(intel_connector->encoder);
> > >   struct drm_i915_private *i915 = dp_to_i915(intel_dp);
> > > + bool force_dpcd;
> > > +
> > > + force_dpcd = drm_dp_has_quirk(&intel_dp->desc, intel_dp->edid_quirks,
> > > +   DP_QUIRK_FORCE_DPCD_BACKLIGHT);
> > > 
> > >   if (i915->params.enable_dpcd_backlight == 0 ||
> > > - !intel_dp_aux_display_control_capable(intel_connector))
> > > + (!force_dpcd &&
> > > !intel_dp_aux_display_control_capable(intel_connector)))
> > >   return -ENODEV;
> > > 
> > >   /*
> > > @@ -358,9 +362,7 @@ int intel_dp_aux_init_backlight_funcs(struct
> > > intel_connector *intel_connector)
> > >*/
> > >   if (i915->vbt.backlight.type !=
> > >   INTEL_BACKLIGHT_VESA_EDP_AUX_INTERFACE &&
> > > - i915->params.enable_dpcd_backlight != 1 &&
> > > - !drm_dp_has_quirk(&intel_dp->desc, intel_dp->edid_quirks,
> > > -   DP_QUIRK_FORCE_DPCD_BACKLIGHT)) {
> > > + i915->params.enable_dpcd_backlight != 1 && !force_dpcd) {
> > >   drm_info(&i915->drm,
> > >"Panel advertises DPCD backlight support, but "
> > >"VBT disagrees. If your backlight controls "
> > -- 
> > Sincerely,
> >  Lyude Paul (she/her)
> >  Software Engineer at Red Hat
-- 
Sincerely,
  Lyude Paul (she/her)
  Software Engineer at Red Hat

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH v3 4/6] drm/dp: Add LTTPR helpers

2020-10-08 Thread Imre Deak
Hi Dave et all,

On Wed, Oct 07, 2020 at 08:09:15PM +0300, Imre Deak wrote:
> Add the helpers and register definitions needed to read out the common
> and per-PHY LTTPR capabilities and perform link training in the LTTPR
> non-transparent mode.
> 
> v2:
> - Add drm_dp_dpcd_read_phy_link_status() and DP_PHY_LTTPR() here instead
>   of adding these to i915. (Ville)
> v3:
> - Use memmove() to convert LTTPR to DPRX link status format. (Ville)
> 
> Cc: dri-de...@lists.freedesktop.org
> Cc: Ville Syrjälä 
> Reviewed-by: Ville Syrjälä 
> Signed-off-by: Imre Deak 

Is it ok to merge this patch via drm-intel-next-queued? If so could
someone Ack it?

Thanks,
Imre

> ---
>  drivers/gpu/drm/drm_dp_helper.c | 232 +++-
>  include/drm/drm_dp_helper.h |  62 +
>  2 files changed, 290 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_dp_helper.c b/drivers/gpu/drm/drm_dp_helper.c
> index 478dd51f738d..79732402336d 100644
> --- a/drivers/gpu/drm/drm_dp_helper.c
> +++ b/drivers/gpu/drm/drm_dp_helper.c
> @@ -150,11 +150,8 @@ void drm_dp_link_train_clock_recovery_delay(const u8 
> dpcd[DP_RECEIVER_CAP_SIZE])
>  }
>  EXPORT_SYMBOL(drm_dp_link_train_clock_recovery_delay);
>  
> -void drm_dp_link_train_channel_eq_delay(const u8 dpcd[DP_RECEIVER_CAP_SIZE])
> +static void __drm_dp_link_train_channel_eq_delay(unsigned long rd_interval)
>  {
> - unsigned long rd_interval = dpcd[DP_TRAINING_AUX_RD_INTERVAL] &
> -  DP_TRAINING_AUX_RD_MASK;
> -
>   if (rd_interval > 4)
>   DRM_DEBUG_KMS("AUX interval %lu, out of range (max 4)\n",
> rd_interval);
> @@ -166,8 +163,35 @@ void drm_dp_link_train_channel_eq_delay(const u8 
> dpcd[DP_RECEIVER_CAP_SIZE])
>  
>   usleep_range(rd_interval, rd_interval * 2);
>  }
> +
> +void drm_dp_link_train_channel_eq_delay(const u8 dpcd[DP_RECEIVER_CAP_SIZE])
> +{
> + __drm_dp_link_train_channel_eq_delay(dpcd[DP_TRAINING_AUX_RD_INTERVAL] &
> +  DP_TRAINING_AUX_RD_MASK);
> +}
>  EXPORT_SYMBOL(drm_dp_link_train_channel_eq_delay);
>  
> +void drm_dp_lttpr_link_train_clock_recovery_delay(void)
> +{
> + usleep_range(100, 200);
> +}
> +EXPORT_SYMBOL(drm_dp_lttpr_link_train_clock_recovery_delay);
> +
> +static u8 dp_lttpr_phy_cap(const u8 phy_cap[DP_LTTPR_PHY_CAP_SIZE], int r)
> +{
> + return phy_cap[r - DP_TRAINING_AUX_RD_INTERVAL_PHY_REPEATER1];
> +}
> +
> +void drm_dp_lttpr_link_train_channel_eq_delay(const u8 
> phy_cap[DP_LTTPR_PHY_CAP_SIZE])
> +{
> + u8 interval = dp_lttpr_phy_cap(phy_cap,
> +
> DP_TRAINING_AUX_RD_INTERVAL_PHY_REPEATER1) &
> +   DP_TRAINING_AUX_RD_MASK;
> +
> + __drm_dp_link_train_channel_eq_delay(interval);
> +}
> +EXPORT_SYMBOL(drm_dp_lttpr_link_train_channel_eq_delay);
> +
>  u8 drm_dp_link_rate_to_bw_code(int link_rate)
>  {
>   /* Spec says link_bw = link_rate / 0.27Gbps */
> @@ -363,6 +387,59 @@ int drm_dp_dpcd_read_link_status(struct drm_dp_aux *aux,
>  }
>  EXPORT_SYMBOL(drm_dp_dpcd_read_link_status);
>  
> +/**
> + * drm_dp_dpcd_read_phy_link_status - get the link status information for a 
> DP PHY
> + * @aux: DisplayPort AUX channel
> + * @dp_phy: the DP PHY to get the link status for
> + * @link_status: buffer to return the status in
> + *
> + * Fetch the AUX DPCD registers for the DPRX or an LTTPR PHY link status. The
> + * layout of the returned @link_status matches the DPCD register layout of 
> the
> + * DPRX PHY link status.
> + *
> + * Returns 0 if the information was read successfully or a negative error 
> code
> + * on failure.
> + */
> +int drm_dp_dpcd_read_phy_link_status(struct drm_dp_aux *aux,
> +  enum drm_dp_phy dp_phy,
> +  u8 link_status[DP_LINK_STATUS_SIZE])
> +{
> + int ret;
> +
> + if (dp_phy == DP_PHY_DPRX) {
> + ret = drm_dp_dpcd_read(aux,
> +DP_LANE0_1_STATUS,
> +link_status,
> +DP_LINK_STATUS_SIZE);
> +
> + if (ret < 0)
> + return ret;
> +
> + WARN_ON(ret != DP_LINK_STATUS_SIZE);
> +
> + return 0;
> + }
> +
> + ret = drm_dp_dpcd_read(aux,
> +DP_LANE0_1_STATUS_PHY_REPEATER(dp_phy),
> +link_status,
> +DP_LINK_STATUS_SIZE - 1);
> +
> + if (ret < 0)
> + return ret;
> +
> + WARN_ON(ret != DP_LINK_STATUS_SIZE - 1);
> +
> + /* Convert the LTTPR to the sink PHY link status layout */
> + memmove(&link_status[DP_SINK_STATUS - DP_LANE0_1_STATUS + 1],
> + &link_status[DP_SINK_STATUS - DP_LANE0_1_STATUS],
> + DP_LINK_STATUS_SIZE - (DP_SINK_STATUS - DP_LANE0_1_STATUS) - 1);
> + link_status[DP_SINK_STATUS - DP_LANE0_1_STATUS] = 0;
>

Re: [Intel-gfx] [PATCH v3 4/6] drm/dp: Add LTTPR helpers

2020-10-08 Thread Lyude Paul
Acked-by: Lyude Paul 


On Thu, 2020-10-08 at 19:46 +0300, Imre Deak wrote:
> Hi Dave et all,
> 
> On Wed, Oct 07, 2020 at 08:09:15PM +0300, Imre Deak wrote:
> > Add the helpers and register definitions needed to read out the common
> > and per-PHY LTTPR capabilities and perform link training in the LTTPR
> > non-transparent mode.
> > 
> > v2:
> > - Add drm_dp_dpcd_read_phy_link_status() and DP_PHY_LTTPR() here instead
> >   of adding these to i915. (Ville)
> > v3:
> > - Use memmove() to convert LTTPR to DPRX link status format. (Ville)
> > 
> > Cc: dri-de...@lists.freedesktop.org
> > Cc: Ville Syrjälä 
> > Reviewed-by: Ville Syrjälä 
> > Signed-off-by: Imre Deak 
> 
> Is it ok to merge this patch via drm-intel-next-queued? If so could
> someone Ack it?
> 
> Thanks,
> Imre
> 
> > ---
> >  drivers/gpu/drm/drm_dp_helper.c | 232 +++-
> >  include/drm/drm_dp_helper.h |  62 +
> >  2 files changed, 290 insertions(+), 4 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/drm_dp_helper.c
> > b/drivers/gpu/drm/drm_dp_helper.c
> > index 478dd51f738d..79732402336d 100644
> > --- a/drivers/gpu/drm/drm_dp_helper.c
> > +++ b/drivers/gpu/drm/drm_dp_helper.c
> > @@ -150,11 +150,8 @@ void drm_dp_link_train_clock_recovery_delay(const u8
> > dpcd[DP_RECEIVER_CAP_SIZE])
> >  }
> >  EXPORT_SYMBOL(drm_dp_link_train_clock_recovery_delay);
> >  
> > -void drm_dp_link_train_channel_eq_delay(const u8
> > dpcd[DP_RECEIVER_CAP_SIZE])
> > +static void __drm_dp_link_train_channel_eq_delay(unsigned long rd_interval)
> >  {
> > -   unsigned long rd_interval = dpcd[DP_TRAINING_AUX_RD_INTERVAL] &
> > -DP_TRAINING_AUX_RD_MASK;
> > -
> > if (rd_interval > 4)
> > DRM_DEBUG_KMS("AUX interval %lu, out of range (max 4)\n",
> >   rd_interval);
> > @@ -166,8 +163,35 @@ void drm_dp_link_train_channel_eq_delay(const u8
> > dpcd[DP_RECEIVER_CAP_SIZE])
> >  
> > usleep_range(rd_interval, rd_interval * 2);
> >  }
> > +
> > +void drm_dp_link_train_channel_eq_delay(const u8
> > dpcd[DP_RECEIVER_CAP_SIZE])
> > +{
> > +   __drm_dp_link_train_channel_eq_delay(dpcd[DP_TRAINING_AUX_RD_INTERVAL] &
> > +DP_TRAINING_AUX_RD_MASK);
> > +}
> >  EXPORT_SYMBOL(drm_dp_link_train_channel_eq_delay);
> >  
> > +void drm_dp_lttpr_link_train_clock_recovery_delay(void)
> > +{
> > +   usleep_range(100, 200);
> > +}
> > +EXPORT_SYMBOL(drm_dp_lttpr_link_train_clock_recovery_delay);
> > +
> > +static u8 dp_lttpr_phy_cap(const u8 phy_cap[DP_LTTPR_PHY_CAP_SIZE], int r)
> > +{
> > +   return phy_cap[r - DP_TRAINING_AUX_RD_INTERVAL_PHY_REPEATER1];
> > +}
> > +
> > +void drm_dp_lttpr_link_train_channel_eq_delay(const u8
> > phy_cap[DP_LTTPR_PHY_CAP_SIZE])
> > +{
> > +   u8 interval = dp_lttpr_phy_cap(phy_cap,
> > +  DP_TRAINING_AUX_RD_INTERVAL_PHY_REPEATER1
> > ) &
> > + DP_TRAINING_AUX_RD_MASK;
> > +
> > +   __drm_dp_link_train_channel_eq_delay(interval);
> > +}
> > +EXPORT_SYMBOL(drm_dp_lttpr_link_train_channel_eq_delay);
> > +
> >  u8 drm_dp_link_rate_to_bw_code(int link_rate)
> >  {
> > /* Spec says link_bw = link_rate / 0.27Gbps */
> > @@ -363,6 +387,59 @@ int drm_dp_dpcd_read_link_status(struct drm_dp_aux
> > *aux,
> >  }
> >  EXPORT_SYMBOL(drm_dp_dpcd_read_link_status);
> >  
> > +/**
> > + * drm_dp_dpcd_read_phy_link_status - get the link status information for a
> > DP PHY
> > + * @aux: DisplayPort AUX channel
> > + * @dp_phy: the DP PHY to get the link status for
> > + * @link_status: buffer to return the status in
> > + *
> > + * Fetch the AUX DPCD registers for the DPRX or an LTTPR PHY link status.
> > The
> > + * layout of the returned @link_status matches the DPCD register layout of
> > the
> > + * DPRX PHY link status.
> > + *
> > + * Returns 0 if the information was read successfully or a negative error
> > code
> > + * on failure.
> > + */
> > +int drm_dp_dpcd_read_phy_link_status(struct drm_dp_aux *aux,
> > +enum drm_dp_phy dp_phy,
> > +u8 link_status[DP_LINK_STATUS_SIZE])
> > +{
> > +   int ret;
> > +
> > +   if (dp_phy == DP_PHY_DPRX) {
> > +   ret = drm_dp_dpcd_read(aux,
> > +  DP_LANE0_1_STATUS,
> > +  link_status,
> > +  DP_LINK_STATUS_SIZE);
> > +
> > +   if (ret < 0)
> > +   return ret;
> > +
> > +   WARN_ON(ret != DP_LINK_STATUS_SIZE);
> > +
> > +   return 0;
> > +   }
> > +
> > +   ret = drm_dp_dpcd_read(aux,
> > +  DP_LANE0_1_STATUS_PHY_REPEATER(dp_phy),
> > +  link_status,
> > +  DP_LINK_STATUS_SIZE - 1);
> > +
> > +   if (ret < 0)
> > +   return ret;
> > +
> > +   WARN_ON(ret != DP_LINK_STATUS_SIZE - 1);
> > +
> > +   /* Convert the LTTPR to the sink P

[Intel-gfx] ✗ Fi.CI.BAT: failure for series starting with [v5,1/3] drm/i915/display: Ignore IGNORE_PSR2_HW_TRACKING for platforms without sel fetch (rev2)

2020-10-08 Thread Patchwork
== Series Details ==

Series: series starting with [v5,1/3] drm/i915/display: Ignore 
IGNORE_PSR2_HW_TRACKING for platforms without sel fetch (rev2)
URL   : https://patchwork.freedesktop.org/series/82453/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_9113 -> Patchwork_18656


Summary
---

  **FAILURE**

  Serious unknown changes coming with Patchwork_18656 absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_18656, please notify your bug team 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_18656/index.html

Possible new issues
---

  Here are the unknown changes that may have been introduced in Patchwork_18656:

### IGT changes ###

 Possible regressions 

  * igt@i915_selftest@live@gt_heartbeat:
- fi-tgl-u2:  [PASS][1] -> [INCOMPLETE][2]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-tgl-u2/igt@i915_selftest@live@gt_heartbeat.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18656/fi-tgl-u2/igt@i915_selftest@live@gt_heartbeat.html

  
Known issues


  Here are the changes found in Patchwork_18656 that come from known issues:

### IGT changes ###

 Issues hit 

  * igt@i915_selftest@live@execlists:
- fi-apl-guc: [PASS][3] -> [INCOMPLETE][4] ([i915#1635])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-apl-guc/igt@i915_selftest@l...@execlists.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18656/fi-apl-guc/igt@i915_selftest@l...@execlists.html

  * igt@kms_flip@basic-flip-vs-wf_vblank@b-edp1:
- fi-icl-u2:  [PASS][5] -> [DMESG-WARN][6] ([i915#1982])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-icl-u2/igt@kms_flip@basic-flip-vs-wf_vbl...@b-edp1.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18656/fi-icl-u2/igt@kms_flip@basic-flip-vs-wf_vbl...@b-edp1.html

  
 Possible fixes 

  * {igt@core_hotunplug@unbind-rebind}:
- fi-icl-y:   [DMESG-WARN][7] ([i915#1982]) -> [PASS][8]
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-icl-y/igt@core_hotunp...@unbind-rebind.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18656/fi-icl-y/igt@core_hotunp...@unbind-rebind.html

  * igt@gem_exec_suspend@basic-s3:
- fi-skl-lmem:[INCOMPLETE][9] ([i915#198]) -> [PASS][10]
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-skl-lmem/igt@gem_exec_susp...@basic-s3.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18656/fi-skl-lmem/igt@gem_exec_susp...@basic-s3.html

  * igt@kms_busy@basic@flip:
- {fi-tgl-dsi}:   [DMESG-WARN][11] ([i915#1982]) -> [PASS][12] +1 
similar issue
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-tgl-dsi/igt@kms_busy@ba...@flip.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18656/fi-tgl-dsi/igt@kms_busy@ba...@flip.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
- {fi-kbl-7560u}: [DMESG-WARN][13] ([i915#1982]) -> [PASS][14]
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-kbl-7560u/igt@kms_cursor_leg...@basic-busy-flip-before-cursor-atomic.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18656/fi-kbl-7560u/igt@kms_cursor_leg...@basic-busy-flip-before-cursor-atomic.html
- fi-icl-u2:  [DMESG-WARN][15] ([i915#1982]) -> [PASS][16]
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-icl-u2/igt@kms_cursor_leg...@basic-busy-flip-before-cursor-atomic.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18656/fi-icl-u2/igt@kms_cursor_leg...@basic-busy-flip-before-cursor-atomic.html

  * igt@vgem_basic@unload:
- fi-skl-guc: [DMESG-WARN][17] ([i915#2203]) -> [PASS][18]
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-skl-guc/igt@vgem_ba...@unload.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18656/fi-skl-guc/igt@vgem_ba...@unload.html

  
 Warnings 

  * igt@kms_force_connector_basic@force-edid:
- fi-kbl-x1275:   [DMESG-WARN][19] ([i915#62] / [i915#92]) -> 
[DMESG-WARN][20] ([i915#62] / [i915#92] / [i915#95]) +5 similar issues
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-kbl-x1275/igt@kms_force_connector_ba...@force-edid.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18656/fi-kbl-x1275/igt@kms_force_connector_ba...@force-edid.html

  * igt@kms_force_connector_basic@prune-stale-modes:
- fi-kbl-x1275:   [DMESG-WARN][21] ([i915#62] / [i915#92] / [i915#95]) 
-> [DMESG-WARN][22] ([i915#62] / [i915#92]) +4 similar issues
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-kbl-x1275/igt@kms_force_connector_ba...@p

[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [v2,1/3] drm/i915: Reorder hpd init vs. display resume (rev3)

2020-10-08 Thread Patchwork
== Series Details ==

Series: series starting with [v2,1/3] drm/i915: Reorder hpd init vs. display 
resume (rev3)
URL   : https://patchwork.freedesktop.org/series/82417/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
f5192fdf6756 drm/i915: Reorder hpd init vs. display resume
-:26: WARNING:COMMIT_LOG_LONG_LINE: Possible unwrapped commit description 
(prefer a maximum 75 chars per line)
#26: 
.hpd_irq_setup()+resume+intel_hpd_init() -> 
intel_hpd_init()+resume+intel_hpd_poll_disable()

-:166: WARNING:TYPO_SPELLING: 'seperate' may be misspelled - perhaps 'separate'?
#166: FILE: drivers/gpu/drm/i915/display/intel_hotplug.c:693:
+ * dev->mode_config.mutex, we do the actual hotplug enabling in a seperate

total: 0 errors, 2 warnings, 0 checks, 168 lines checked
d3ea7f9670c6 drm/i915: Do drm_mode_config_reset() after HPD init
90e7c6ff4798 drm/i915: Refactor .hpd_irq_setup() calls a bit


___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH 1/2] drm/i915/dpcd_bl: Skip testing control capability with force DPCD quirk

2020-10-08 Thread Lyude Paul
oh hold on, I misspoke. Here's the patch I was thinking of:

https://patchwork.freedesktop.org/series/82041/

On Thu, 2020-10-08 at 10:32 +0800, Kai-Heng Feng wrote:
> Hi Lyude,
> 
> > On Oct 8, 2020, at 05:53, Lyude Paul  wrote:
> > 
> > Hi! I thought this patch rang a bell, we actually already had some
> > discussion
> > about this since there's a couple of other systems this was causing issues
> > for.
> > Unfortunately it never seems like that patch got sent out. Satadru?
> > 
> > (if I don't hear back from them soon, I'll just send out a patch for this
> > myself)
> > 
> > JFYI - the proper fix here is to just drop the
> > DP_EDP_BACKLIGHT_BRIGHTNESS_PWM_PIN_CAP check from the code entirely. As
> > long as
> > the backlight supports AUX_SET_CAP, that should be enough for us to control
> > it.
> 
> Does the proper fix include dropping DP_QUIRK_FORCE_DPCD_BACKLIGHT entirely?
> 
> Kai-Heng
> 
> > 
> > On Wed, 2020-10-07 at 14:58 +0800, Kai-Heng Feng wrote:
> > > HP DreamColor panel needs to be controlled via AUX interface. However,
> > > it has both DP_EDP_BACKLIGHT_BRIGHTNESS_AUX_SET_CAP and
> > > DP_EDP_BACKLIGHT_BRIGHTNESS_PWM_PIN_CAP set, so it fails to pass
> > > intel_dp_aux_display_control_capable() test.
> > > 
> > > Skip the test if the panel has force DPCD quirk.
> > > 
> > > Signed-off-by: Kai-Heng Feng 
> > > ---
> > > drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c | 10 ++
> > > 1 file changed, 6 insertions(+), 4 deletions(-)
> > > 
> > > diff --git a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
> > > b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
> > > index acbd7eb66cbe..acf2e1c65290 100644
> > > --- a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
> > > +++ b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
> > > @@ -347,9 +347,13 @@ int intel_dp_aux_init_backlight_funcs(struct
> > > intel_connector *intel_connector)
> > >   struct intel_panel *panel = &intel_connector->panel;
> > >   struct intel_dp *intel_dp = enc_to_intel_dp(intel_connector->encoder);
> > >   struct drm_i915_private *i915 = dp_to_i915(intel_dp);
> > > + bool force_dpcd;
> > > +
> > > + force_dpcd = drm_dp_has_quirk(&intel_dp->desc, intel_dp->edid_quirks,
> > > +   DP_QUIRK_FORCE_DPCD_BACKLIGHT);
> > > 
> > >   if (i915->params.enable_dpcd_backlight == 0 ||
> > > - !intel_dp_aux_display_control_capable(intel_connector))
> > > + (!force_dpcd &&
> > > !intel_dp_aux_display_control_capable(intel_connector)))
> > >   return -ENODEV;
> > > 
> > >   /*
> > > @@ -358,9 +362,7 @@ int intel_dp_aux_init_backlight_funcs(struct
> > > intel_connector *intel_connector)
> > >*/
> > >   if (i915->vbt.backlight.type !=
> > >   INTEL_BACKLIGHT_VESA_EDP_AUX_INTERFACE &&
> > > - i915->params.enable_dpcd_backlight != 1 &&
> > > - !drm_dp_has_quirk(&intel_dp->desc, intel_dp->edid_quirks,
> > > -   DP_QUIRK_FORCE_DPCD_BACKLIGHT)) {
> > > + i915->params.enable_dpcd_backlight != 1 && !force_dpcd) {
> > >   drm_info(&i915->drm,
> > >"Panel advertises DPCD backlight support, but "
> > >"VBT disagrees. If your backlight controls "
> > -- 
> > Sincerely,
> >  Lyude Paul (she/her)
> >  Software Engineer at Red Hat
-- 
Sincerely,
  Lyude Paul (she/her)
  Software Engineer at Red Hat

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [v2,1/3] drm/i915: Reorder hpd init vs. display resume (rev3)

2020-10-08 Thread Patchwork
== Series Details ==

Series: series starting with [v2,1/3] drm/i915: Reorder hpd init vs. display 
resume (rev3)
URL   : https://patchwork.freedesktop.org/series/82417/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_9113 -> Patchwork_18657


Summary
---

  **SUCCESS**

  No regressions found.

  External URL: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18657/index.html

Known issues


  Here are the changes found in Patchwork_18657 that come from known issues:

### IGT changes ###

 Issues hit 

  * igt@i915_pm_rpm@basic-pci-d3-state:
- fi-byt-j1900:   [PASS][1] -> [DMESG-WARN][2] ([i915#1982])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-byt-j1900/igt@i915_pm_...@basic-pci-d3-state.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18657/fi-byt-j1900/igt@i915_pm_...@basic-pci-d3-state.html

  
 Possible fixes 

  * {igt@core_hotunplug@unbind-rebind}:
- fi-icl-y:   [DMESG-WARN][3] ([i915#1982]) -> [PASS][4]
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-icl-y/igt@core_hotunp...@unbind-rebind.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18657/fi-icl-y/igt@core_hotunp...@unbind-rebind.html

  * igt@gem_exec_suspend@basic-s3:
- fi-skl-lmem:[INCOMPLETE][5] ([i915#198]) -> [PASS][6]
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-skl-lmem/igt@gem_exec_susp...@basic-s3.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18657/fi-skl-lmem/igt@gem_exec_susp...@basic-s3.html

  * igt@kms_busy@basic@flip:
- {fi-tgl-dsi}:   [DMESG-WARN][7] ([i915#1982]) -> [PASS][8]
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-tgl-dsi/igt@kms_busy@ba...@flip.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18657/fi-tgl-dsi/igt@kms_busy@ba...@flip.html
- fi-kbl-x1275:   [DMESG-WARN][9] ([i915#62] / [i915#92] / [i915#95]) 
-> [PASS][10]
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-kbl-x1275/igt@kms_busy@ba...@flip.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18657/fi-kbl-x1275/igt@kms_busy@ba...@flip.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
- fi-icl-u2:  [DMESG-WARN][11] ([i915#1982]) -> [PASS][12]
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-icl-u2/igt@kms_cursor_leg...@basic-busy-flip-before-cursor-atomic.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18657/fi-icl-u2/igt@kms_cursor_leg...@basic-busy-flip-before-cursor-atomic.html

  * igt@vgem_basic@unload:
- fi-skl-guc: [DMESG-WARN][13] ([i915#2203]) -> [PASS][14]
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-skl-guc/igt@vgem_ba...@unload.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18657/fi-skl-guc/igt@vgem_ba...@unload.html
- fi-kbl-x1275:   [DMESG-WARN][15] ([i915#62] / [i915#92]) -> [PASS][16]
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-kbl-x1275/igt@vgem_ba...@unload.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18657/fi-kbl-x1275/igt@vgem_ba...@unload.html

  
 Warnings 

  * igt@gem_exec_suspend@basic-s0:
- fi-kbl-x1275:   [DMESG-WARN][17] ([i915#62] / [i915#92]) -> 
[DMESG-WARN][18] ([i915#1982] / [i915#62] / [i915#92])
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-kbl-x1275/igt@gem_exec_susp...@basic-s0.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18657/fi-kbl-x1275/igt@gem_exec_susp...@basic-s0.html

  * igt@i915_pm_rpm@module-reload:
- fi-kbl-x1275:   [DMESG-FAIL][19] ([i915#62]) -> [DMESG-FAIL][20] 
([i915#62] / [i915#95])
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-kbl-x1275/igt@i915_pm_...@module-reload.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18657/fi-kbl-x1275/igt@i915_pm_...@module-reload.html

  * igt@kms_flip@basic-flip-vs-modeset@a-dp1:
- fi-kbl-x1275:   [DMESG-WARN][21] ([i915#62] / [i915#92] / [i915#95]) 
-> [DMESG-WARN][22] ([i915#62] / [i915#92]) +5 similar issues
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-kbl-x1275/igt@kms_flip@basic-flip-vs-mode...@a-dp1.html
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18657/fi-kbl-x1275/igt@kms_flip@basic-flip-vs-mode...@a-dp1.html

  * igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-c:
- fi-kbl-x1275:   [DMESG-WARN][23] ([i915#62] / [i915#92]) -> 
[DMESG-WARN][24] ([i915#62] / [i915#92] / [i915#95]) +5 similar issues
   [23]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-kbl-x1275/igt@kms_pipe_crc_ba...@compare-crc-sanitycheck-pipe-c.html
   [24]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18657/fi-kbl-x1275/igt@kms_pipe_crc_ba...@compare-crc-sanitycheck-pipe-c.html

  
  {name}: This element is suppressed. This means it 

[Intel-gfx] ✗ Fi.CI.SPARSE: warning for rm/i915: Add support for LTTPR non-transparent link training mode (rev2)

2020-10-08 Thread Patchwork
== Series Details ==

Series: rm/i915: Add support for LTTPR non-transparent link training mode (rev2)
URL   : https://patchwork.freedesktop.org/series/82449/
State : warning

== Summary ==

$ dim sparse --fast origin/drm-tip
Sparse version: v0.6.2
Fast mode used, each commit won't be checked separately.
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:1019:47:expected unsigned int 
[addressable] [usertype] ulClockParams
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:1019:47:got restricted __le32 
[usertype]
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:1019:47: warning: incorrect type 
in assignment (different base types)
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:1028:50: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:1029:49: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:1037:47: warning: too many 
warnings
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:184:44: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:283:14: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:320:14: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:323:14: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:326:14: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:329:18: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:330:26: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:338:30: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:340:38: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:342:30: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:346:30: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:348:30: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:353:33: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:367:43: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:369:38: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:374:67: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:375:53: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:378:66: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:389:80: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:395:57: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:402:69: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:403:53: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:406:66: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:414:66: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:423:69: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:424:69: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:473:30: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:476:45: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:477:45: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:484:54: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:52:28: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:531:35: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:53:29: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:533:25: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:54:26: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:55:27: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:56:25: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:57:26: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:577:21: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:581:25: warning: cast to 
restricted __le32
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:58:25: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:583:21: warning: cast to 
restricted __le32
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:586:25: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:590:25: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:59:26: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:598:21: war

[Intel-gfx] [PATCH] drm/i915: Verify the captured request is still active

2020-10-08 Thread Chris Wilson
Since the state we try and capture from the request is only stable while
active (once the request is completed it may be retired, and unpin/free
the logical state) double check the request has not yet completed.

Signed-off-by: Chris Wilson 
---
 drivers/gpu/drm/i915/i915_gpu_error.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/gpu/drm/i915/i915_gpu_error.c 
b/drivers/gpu/drm/i915/i915_gpu_error.c
index 2d0c4b8d9e3c..fd676ed72dab 100644
--- a/drivers/gpu/drm/i915/i915_gpu_error.c
+++ b/drivers/gpu/drm/i915/i915_gpu_error.c
@@ -1369,6 +1369,9 @@ intel_engine_coredump_add_request(struct 
intel_engine_coredump *ee,
 {
struct intel_engine_capture_vma *vma = NULL;
 
+   if (i915_request_completed(rq))
+   return NULL;
+
ee->simulated |= record_context(&ee->context, rq);
if (ee->simulated)
return NULL;
-- 
2.20.1

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✓ Fi.CI.BAT: success for rm/i915: Add support for LTTPR non-transparent link training mode (rev2)

2020-10-08 Thread Patchwork
== Series Details ==

Series: rm/i915: Add support for LTTPR non-transparent link training mode (rev2)
URL   : https://patchwork.freedesktop.org/series/82449/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_9113 -> Patchwork_18658


Summary
---

  **SUCCESS**

  No regressions found.

  External URL: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18658/index.html

Known issues


  Here are the changes found in Patchwork_18658 that come from known issues:

### IGT changes ###

 Issues hit 

  * igt@i915_pm_rpm@module-reload:
- fi-byt-j1900:   [PASS][1] -> [DMESG-WARN][2] ([i915#1982])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-byt-j1900/igt@i915_pm_...@module-reload.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18658/fi-byt-j1900/igt@i915_pm_...@module-reload.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
- fi-bsw-kefka:   [PASS][3] -> [DMESG-WARN][4] ([i915#1982])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-bsw-kefka/igt@kms_cursor_leg...@basic-busy-flip-before-cursor-atomic.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18658/fi-bsw-kefka/igt@kms_cursor_leg...@basic-busy-flip-before-cursor-atomic.html

  * igt@kms_flip@basic-flip-vs-wf_vblank@c-edp1:
- fi-icl-u2:  [PASS][5] -> [DMESG-WARN][6] ([i915#1982])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-icl-u2/igt@kms_flip@basic-flip-vs-wf_vbl...@c-edp1.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18658/fi-icl-u2/igt@kms_flip@basic-flip-vs-wf_vbl...@c-edp1.html

  
 Possible fixes 

  * {igt@core_hotunplug@unbind-rebind}:
- fi-icl-y:   [DMESG-WARN][7] ([i915#1982]) -> [PASS][8]
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-icl-y/igt@core_hotunp...@unbind-rebind.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18658/fi-icl-y/igt@core_hotunp...@unbind-rebind.html

  * igt@gem_exec_suspend@basic-s3:
- fi-skl-lmem:[INCOMPLETE][9] ([i915#198]) -> [PASS][10]
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-skl-lmem/igt@gem_exec_susp...@basic-s3.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18658/fi-skl-lmem/igt@gem_exec_susp...@basic-s3.html

  * igt@i915_pm_rpm@basic-pci-d3-state:
- fi-bsw-kefka:   [DMESG-WARN][11] ([i915#1982]) -> [PASS][12]
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-bsw-kefka/igt@i915_pm_...@basic-pci-d3-state.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18658/fi-bsw-kefka/igt@i915_pm_...@basic-pci-d3-state.html

  * igt@i915_pm_rpm@module-reload:
- fi-kbl-x1275:   [DMESG-FAIL][13] ([i915#62]) -> [PASS][14]
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-kbl-x1275/igt@i915_pm_...@module-reload.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18658/fi-kbl-x1275/igt@i915_pm_...@module-reload.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
- fi-icl-u2:  [DMESG-WARN][15] ([i915#1982]) -> [PASS][16]
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-icl-u2/igt@kms_cursor_leg...@basic-busy-flip-before-cursor-atomic.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18658/fi-icl-u2/igt@kms_cursor_leg...@basic-busy-flip-before-cursor-atomic.html

  * igt@kms_flip@basic-flip-vs-modeset@b-dp1:
- fi-kbl-x1275:   [DMESG-WARN][17] ([i915#62] / [i915#92]) -> 
[PASS][18] +32 similar issues
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-kbl-x1275/igt@kms_flip@basic-flip-vs-mode...@b-dp1.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18658/fi-kbl-x1275/igt@kms_flip@basic-flip-vs-mode...@b-dp1.html

  * igt@kms_force_connector_basic@prune-stale-modes:
- fi-kbl-x1275:   [DMESG-WARN][19] ([i915#62] / [i915#92] / [i915#95]) 
-> [PASS][20] +11 similar issues
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-kbl-x1275/igt@kms_force_connector_ba...@prune-stale-modes.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18658/fi-kbl-x1275/igt@kms_force_connector_ba...@prune-stale-modes.html

  * igt@vgem_basic@unload:
- fi-skl-guc: [DMESG-WARN][21] ([i915#2203]) -> [PASS][22]
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-skl-guc/igt@vgem_ba...@unload.html
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18658/fi-skl-guc/igt@vgem_ba...@unload.html

  
  {name}: This element is suppressed. This means it is ignored when computing
  the status of the difference (SUCCESS, WARNING, or FAILURE).

  [i915#198]: https://gitlab.freedesktop.org/drm/intel/issues/198
  [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
  [i915#2203]: https://gitlab.freedesktop.org/drm/intel/issues/2203
  [i915#62]: https://gitlab.f

[Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [v5,1/3] drm/i915/display: Ignore IGNORE_PSR2_HW_TRACKING for platforms without sel fetch (rev3)

2020-10-08 Thread Patchwork
== Series Details ==

Series: series starting with [v5,1/3] drm/i915/display: Ignore 
IGNORE_PSR2_HW_TRACKING for platforms without sel fetch (rev3)
URL   : https://patchwork.freedesktop.org/series/82453/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_9113 -> Patchwork_18659


Summary
---

  **SUCCESS**

  No regressions found.

  External URL: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18659/index.html

Known issues


  Here are the changes found in Patchwork_18659 that come from known issues:

### IGT changes ###

 Issues hit 

  * igt@kms_cursor_legacy@basic-flip-after-cursor-atomic:
- fi-icl-u2:  [PASS][1] -> [DMESG-WARN][2] ([i915#1982])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-icl-u2/igt@kms_cursor_leg...@basic-flip-after-cursor-atomic.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18659/fi-icl-u2/igt@kms_cursor_leg...@basic-flip-after-cursor-atomic.html

  
 Possible fixes 

  * {igt@core_hotunplug@unbind-rebind}:
- fi-icl-y:   [DMESG-WARN][3] ([i915#1982]) -> [PASS][4]
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-icl-y/igt@core_hotunp...@unbind-rebind.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18659/fi-icl-y/igt@core_hotunp...@unbind-rebind.html

  * igt@gem_exec_suspend@basic-s3:
- fi-skl-lmem:[INCOMPLETE][5] ([i915#198]) -> [PASS][6]
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-skl-lmem/igt@gem_exec_susp...@basic-s3.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18659/fi-skl-lmem/igt@gem_exec_susp...@basic-s3.html

  * igt@i915_pm_rpm@basic-pci-d3-state:
- fi-bsw-kefka:   [DMESG-WARN][7] ([i915#1982]) -> [PASS][8]
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-bsw-kefka/igt@i915_pm_...@basic-pci-d3-state.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18659/fi-bsw-kefka/igt@i915_pm_...@basic-pci-d3-state.html

  * igt@kms_busy@basic@flip:
- {fi-tgl-dsi}:   [DMESG-WARN][9] ([i915#1982]) -> [PASS][10]
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-tgl-dsi/igt@kms_busy@ba...@flip.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18659/fi-tgl-dsi/igt@kms_busy@ba...@flip.html
- fi-kbl-x1275:   [DMESG-WARN][11] ([i915#62] / [i915#92] / [i915#95]) 
-> [PASS][12]
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-kbl-x1275/igt@kms_busy@ba...@flip.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18659/fi-kbl-x1275/igt@kms_busy@ba...@flip.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
- {fi-kbl-7560u}: [DMESG-WARN][13] ([i915#1982]) -> [PASS][14]
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-kbl-7560u/igt@kms_cursor_leg...@basic-busy-flip-before-cursor-atomic.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18659/fi-kbl-7560u/igt@kms_cursor_leg...@basic-busy-flip-before-cursor-atomic.html
- fi-icl-u2:  [DMESG-WARN][15] ([i915#1982]) -> [PASS][16]
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-icl-u2/igt@kms_cursor_leg...@basic-busy-flip-before-cursor-atomic.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18659/fi-icl-u2/igt@kms_cursor_leg...@basic-busy-flip-before-cursor-atomic.html

  * igt@vgem_basic@unload:
- fi-skl-guc: [DMESG-WARN][17] ([i915#2203]) -> [PASS][18]
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-skl-guc/igt@vgem_ba...@unload.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18659/fi-skl-guc/igt@vgem_ba...@unload.html
- fi-kbl-x1275:   [DMESG-WARN][19] ([i915#62] / [i915#92]) -> [PASS][20]
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-kbl-x1275/igt@vgem_ba...@unload.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18659/fi-kbl-x1275/igt@vgem_ba...@unload.html

  
 Warnings 

  * igt@gem_exec_suspend@basic-s3:
- fi-kbl-x1275:   [DMESG-WARN][21] ([i915#62] / [i915#92] / [i915#95]) 
-> [DMESG-WARN][22] ([i915#1982] / [i915#62] / [i915#92] / [i915#95])
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-kbl-x1275/igt@gem_exec_susp...@basic-s3.html
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18659/fi-kbl-x1275/igt@gem_exec_susp...@basic-s3.html

  * igt@i915_pm_rpm@module-reload:
- fi-kbl-x1275:   [DMESG-FAIL][23] ([i915#62]) -> [DMESG-FAIL][24] 
([i915#62] / [i915#95])
   [23]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-kbl-x1275/igt@i915_pm_...@module-reload.html
   [24]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18659/fi-kbl-x1275/igt@i915_pm_...@module-reload.html

  * igt@kms_force_connector_basic@prune-stale-modes:
- fi-kbl-x1275:   [DMESG-WARN][25] ([i915#62] / [i915#92] / [i915#95]) 
-> [DMESG-WARN][26] ([i91

[Intel-gfx] ✗ Fi.CI.IGT: failure for drm/i915/gem: Poison stolen pages before use

2020-10-08 Thread Patchwork
== Series Details ==

Series: drm/i915/gem: Poison stolen pages before use
URL   : https://patchwork.freedesktop.org/series/82463/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_9113_full -> Patchwork_18653_full


Summary
---

  **FAILURE**

  Serious unknown changes coming with Patchwork_18653_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_18653_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  

Possible new issues
---

  Here are the unknown changes that may have been introduced in 
Patchwork_18653_full:

### IGT changes ###

 Possible regressions 

  * igt@kms_flip@2x-plain-flip-fb-recreate@ac-vga1-hdmi-a1:
- shard-hsw:  [PASS][1] -> [INCOMPLETE][2]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-hsw6/igt@kms_flip@2x-plain-flip-fb-recre...@ac-vga1-hdmi-a1.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18653/shard-hsw6/igt@kms_flip@2x-plain-flip-fb-recre...@ac-vga1-hdmi-a1.html

  
 Suppressed 

  The following results come from untrusted machines, tests, or statuses.
  They do not affect the overall result.

  * {igt@gem_exec_capture@pi@vcs0}:
- shard-glk:  NOTRUN -> [INCOMPLETE][3]
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18653/shard-glk6/igt@gem_exec_capture@p...@vcs0.html

  
Known issues


  Here are the changes found in Patchwork_18653_full that come from known 
issues:

### IGT changes ###

 Issues hit 

  * igt@gem_exec_gttfill@engines@rcs0:
- shard-glk:  [PASS][4] -> [DMESG-WARN][5] ([i915#118] / [i915#95])
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-glk7/igt@gem_exec_gttfill@engi...@rcs0.html
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18653/shard-glk8/igt@gem_exec_gttfill@engi...@rcs0.html

  * igt@gem_userptr_blits@unsync-unmap-cycles:
- shard-skl:  [PASS][6] -> [TIMEOUT][7] ([i915#2424])
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-skl7/igt@gem_userptr_bl...@unsync-unmap-cycles.html
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18653/shard-skl6/igt@gem_userptr_bl...@unsync-unmap-cycles.html

  * igt@i915_pm_dc@dc6-psr:
- shard-skl:  [PASS][8] -> [FAIL][9] ([i915#454])
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-skl7/igt@i915_pm...@dc6-psr.html
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18653/shard-skl6/igt@i915_pm...@dc6-psr.html

  * igt@i915_pm_rc6_residency@rc6-idle:
- shard-hsw:  [PASS][10] -> [WARN][11] ([i915#1519])
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-hsw2/igt@i915_pm_rc6_reside...@rc6-idle.html
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18653/shard-hsw8/igt@i915_pm_rc6_reside...@rc6-idle.html

  * igt@kms_cursor_crc@pipe-c-cursor-suspend:
- shard-kbl:  [PASS][12] -> [DMESG-WARN][13] ([i915#180]) +3 
similar issues
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-kbl4/igt@kms_cursor_...@pipe-c-cursor-suspend.html
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18653/shard-kbl4/igt@kms_cursor_...@pipe-c-cursor-suspend.html

  * igt@kms_draw_crc@draw-method-xrgb2101010-render-xtiled:
- shard-apl:  [PASS][14] -> [DMESG-WARN][15] ([i915#1635] / 
[i915#1982])
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-apl4/igt@kms_draw_...@draw-method-xrgb2101010-render-xtiled.html
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18653/shard-apl6/igt@kms_draw_...@draw-method-xrgb2101010-render-xtiled.html

  * igt@kms_flip@flip-vs-blocking-wf-vblank@a-edp1:
- shard-skl:  [PASS][16] -> [DMESG-WARN][17] ([i915#1982]) +4 
similar issues
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-skl7/igt@kms_flip@flip-vs-blocking-wf-vbl...@a-edp1.html
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18653/shard-skl3/igt@kms_flip@flip-vs-blocking-wf-vbl...@a-edp1.html

  * igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1:
- shard-skl:  [PASS][18] -> [FAIL][19] ([i915#79]) +2 similar issues
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-skl3/igt@kms_flip@flip-vs-expired-vblank-interrupti...@b-edp1.html
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18653/shard-skl8/igt@kms_flip@flip-vs-expired-vblank-interrupti...@b-edp1.html

  * igt@kms_flip@flip-vs-suspend@a-dp1:
- shard-kbl:  [PASS][20] -> [INCOMPLETE][21] ([i915#155])
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-kbl7/igt@kms_flip@flip-vs-susp...@a-dp1.html
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18653/shard-kbl2/igt@kms_flip@f

[Intel-gfx] ✗ Fi.CI.IGT: failure for series starting with [v2,1/3] drm/i915: Reorder hpd init vs. display resume (rev3)

2020-10-08 Thread Patchwork
== Series Details ==

Series: series starting with [v2,1/3] drm/i915: Reorder hpd init vs. display 
resume (rev3)
URL   : https://patchwork.freedesktop.org/series/82417/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_9113_full -> Patchwork_18657_full


Summary
---

  **FAILURE**

  Serious unknown changes coming with Patchwork_18657_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_18657_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  

Possible new issues
---

  Here are the unknown changes that may have been introduced in 
Patchwork_18657_full:

### IGT changes ###

 Possible regressions 

  * igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy-gup@uc:
- shard-hsw:  [PASS][1] -> [FAIL][2]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-hsw8/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy-...@uc.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18657/shard-hsw6/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy-...@uc.html

  * igt@gem_wait@write-wait@vcs0:
- shard-snb:  NOTRUN -> [FAIL][3] +1 similar issue
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18657/shard-snb7/igt@gem_wait@write-w...@vcs0.html

  
Known issues


  Here are the changes found in Patchwork_18657_full that come from known 
issues:

### IGT changes ###

 Issues hit 

  * igt@gem_exec_gttfill@engines@rcs0:
- shard-glk:  [PASS][4] -> [DMESG-WARN][5] ([i915#118] / [i915#95])
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-glk7/igt@gem_exec_gttfill@engi...@rcs0.html
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18657/shard-glk6/igt@gem_exec_gttfill@engi...@rcs0.html

  * igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy-gup@wc:
- shard-hsw:  [PASS][6] -> [FAIL][7] ([i915#1888]) +1 similar issue
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-hsw8/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy-...@wc.html
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18657/shard-hsw6/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy-...@wc.html

  * igt@gem_userptr_blits@unsync-unmap-cycles:
- shard-skl:  [PASS][8] -> [TIMEOUT][9] ([i915#2424])
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-skl7/igt@gem_userptr_bl...@unsync-unmap-cycles.html
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18657/shard-skl1/igt@gem_userptr_bl...@unsync-unmap-cycles.html

  * igt@gen9_exec_parse@allowed-single:
- shard-skl:  [PASS][10] -> [DMESG-WARN][11] ([i915#1436] / 
[i915#716])
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-skl2/igt@gen9_exec_pa...@allowed-single.html
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18657/shard-skl7/igt@gen9_exec_pa...@allowed-single.html

  * igt@i915_pm_dc@dc6-psr:
- shard-skl:  [PASS][12] -> [FAIL][13] ([i915#454])
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-skl7/igt@i915_pm...@dc6-psr.html
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18657/shard-skl1/igt@i915_pm...@dc6-psr.html

  * igt@kms_cursor_edge_walk@pipe-b-64x64-left-edge:
- shard-glk:  [PASS][14] -> [DMESG-WARN][15] ([i915#1982])
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-glk6/igt@kms_cursor_edge_w...@pipe-b-64x64-left-edge.html
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18657/shard-glk1/igt@kms_cursor_edge_w...@pipe-b-64x64-left-edge.html

  * igt@kms_flip@2x-flip-vs-panning@ab-vga1-hdmi-a1:
- shard-hsw:  [PASS][16] -> [DMESG-WARN][17] ([i915#1982]) +1 
similar issue
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-hsw2/igt@kms_flip@2x-flip-vs-pann...@ab-vga1-hdmi-a1.html
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18657/shard-hsw6/igt@kms_flip@2x-flip-vs-pann...@ab-vga1-hdmi-a1.html

  * igt@kms_flip@flip-vs-blocking-wf-vblank@a-edp1:
- shard-skl:  [PASS][18] -> [DMESG-WARN][19] ([i915#1982]) +3 
similar issues
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-skl7/igt@kms_flip@flip-vs-blocking-wf-vbl...@a-edp1.html
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18657/shard-skl7/igt@kms_flip@flip-vs-blocking-wf-vbl...@a-edp1.html

  * igt@kms_flip@flip-vs-suspend@a-dp1:
- shard-kbl:  [PASS][20] -> [INCOMPLETE][21] ([i915#155])
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-kbl7/igt@kms_flip@flip-vs-susp...@a-dp1.html
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18657/shard-kbl2/igt@kms_flip@flip-vs-susp...@a-dp1.html

  * igt@kms_flip@flip-vs-s

[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: Verify the captured request is still active

2020-10-08 Thread Patchwork
== Series Details ==

Series: drm/i915: Verify the captured request is still active
URL   : https://patchwork.freedesktop.org/series/82478/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_9113 -> Patchwork_18660


Summary
---

  **SUCCESS**

  No regressions found.

  External URL: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18660/index.html

Known issues


  Here are the changes found in Patchwork_18660 that come from known issues:

### IGT changes ###

 Issues hit 

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
- fi-bsw-kefka:   [PASS][1] -> [DMESG-WARN][2] ([i915#1982])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-bsw-kefka/igt@kms_cursor_leg...@basic-busy-flip-before-cursor-atomic.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18660/fi-bsw-kefka/igt@kms_cursor_leg...@basic-busy-flip-before-cursor-atomic.html

  
 Possible fixes 

  * {igt@core_hotunplug@unbind-rebind}:
- fi-icl-y:   [DMESG-WARN][3] ([i915#1982]) -> [PASS][4]
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-icl-y/igt@core_hotunp...@unbind-rebind.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18660/fi-icl-y/igt@core_hotunp...@unbind-rebind.html

  * igt@gem_exec_suspend@basic-s3:
- fi-skl-lmem:[INCOMPLETE][5] ([i915#198]) -> [PASS][6]
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-skl-lmem/igt@gem_exec_susp...@basic-s3.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18660/fi-skl-lmem/igt@gem_exec_susp...@basic-s3.html

  * igt@i915_pm_rpm@basic-pci-d3-state:
- fi-bsw-kefka:   [DMESG-WARN][7] ([i915#1982]) -> [PASS][8]
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-bsw-kefka/igt@i915_pm_...@basic-pci-d3-state.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18660/fi-bsw-kefka/igt@i915_pm_...@basic-pci-d3-state.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
- fi-icl-u2:  [DMESG-WARN][9] ([i915#1982]) -> [PASS][10]
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-icl-u2/igt@kms_cursor_leg...@basic-busy-flip-before-cursor-atomic.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18660/fi-icl-u2/igt@kms_cursor_leg...@basic-busy-flip-before-cursor-atomic.html

  * igt@vgem_basic@unload:
- fi-kbl-x1275:   [DMESG-WARN][11] ([i915#62] / [i915#92]) -> [PASS][12]
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-kbl-x1275/igt@vgem_ba...@unload.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18660/fi-kbl-x1275/igt@vgem_ba...@unload.html

  
 Warnings 

  * igt@i915_pm_rpm@module-reload:
- fi-kbl-guc: [DMESG-WARN][13] ([i915#2203]) -> [DMESG-FAIL][14] 
([i915#2203])
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-kbl-guc/igt@i915_pm_...@module-reload.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18660/fi-kbl-guc/igt@i915_pm_...@module-reload.html

  * igt@kms_force_connector_basic@prune-stale-modes:
- fi-kbl-x1275:   [DMESG-WARN][15] ([i915#62] / [i915#92] / [i915#95]) 
-> [DMESG-WARN][16] ([i915#62] / [i915#92]) +6 similar issues
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-kbl-x1275/igt@kms_force_connector_ba...@prune-stale-modes.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18660/fi-kbl-x1275/igt@kms_force_connector_ba...@prune-stale-modes.html

  * igt@prime_vgem@basic-fence-flip:
- fi-kbl-x1275:   [DMESG-WARN][17] ([i915#62] / [i915#92]) -> 
[DMESG-WARN][18] ([i915#62] / [i915#92] / [i915#95]) +2 similar issues
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-kbl-x1275/igt@prime_v...@basic-fence-flip.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18660/fi-kbl-x1275/igt@prime_v...@basic-fence-flip.html

  
  {name}: This element is suppressed. This means it is ignored when computing
  the status of the difference (SUCCESS, WARNING, or FAILURE).

  [i915#198]: https://gitlab.freedesktop.org/drm/intel/issues/198
  [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
  [i915#2203]: https://gitlab.freedesktop.org/drm/intel/issues/2203
  [i915#62]: https://gitlab.freedesktop.org/drm/intel/issues/62
  [i915#92]: https://gitlab.freedesktop.org/drm/intel/issues/92
  [i915#95]: https://gitlab.freedesktop.org/drm/intel/issues/95


Participating hosts (45 -> 39)
--

  Additional (1): fi-cfl-8109u 
  Missing(7): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan 
fi-ctg-p8600 fi-byt-clapper fi-bdw-samus 


Build changes
-

  * Linux: CI_DRM_9113 -> Patchwork_18660

  CI-20190529: 20190529
  CI_DRM_9113: 412ff15f2b9a97bd0ab32f562ecb7efc84837881 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5805: 9ce50ffed89a46fa1bc98ee2cfe2271c49801

[Intel-gfx] PR - DG1 DMC v2.02

2020-10-08 Thread Srivatsa, Anusha
Sending PR for DG1 DMC for our CI to install DG1 DMC.

The following changes since commit 58d41d0facca2478d3e45f6321224361519aee96:

  ice: Add comms package file for Intel E800 series driver (2020-10-05 08:09:03 
-0400)

are available in the Git repository at:

  git://anongit.freedesktop.org/drm/drm-firmware dg1_dmc_v2_02

for you to fetch changes up to a140ef3eb3746aba2c897db16e02ffb5ffa9e7a2:

  i915: Add DG1 DMC v2.02 (2020-10-08 12:13:33 -0700)


Anusha Srivatsa (1):
  i915: Add DG1 DMC v2.02

WHENCE   |   2 ++
i915/dg1_dmc_ver2_02.bin | Bin 0 -> 16624 bytes
2 files changed, 2 insertions(+)
create mode 100644 i915/dg1_dmc_ver2_02.bin


Thanks,
Anusha
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✓ Fi.CI.IGT: success for rm/i915: Add support for LTTPR non-transparent link training mode (rev2)

2020-10-08 Thread Patchwork
== Series Details ==

Series: rm/i915: Add support for LTTPR non-transparent link training mode (rev2)
URL   : https://patchwork.freedesktop.org/series/82449/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_9113_full -> Patchwork_18658_full


Summary
---

  **SUCCESS**

  No regressions found.

  

Possible new issues
---

  Here are the unknown changes that may have been introduced in 
Patchwork_18658_full:

### IGT changes ###

 Suppressed 

  The following results come from untrusted machines, tests, or statuses.
  They do not affect the overall result.

  * {igt@gem_exec_capture@pi@vcs0}:
- shard-skl:  NOTRUN -> [INCOMPLETE][1]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18658/shard-skl9/igt@gem_exec_capture@p...@vcs0.html

  
Known issues


  Here are the changes found in Patchwork_18658_full that come from known 
issues:

### IGT changes ###

 Issues hit 

  * igt@gem_exec_suspend@basic-s0:
- shard-iclb: [PASS][2] -> [INCOMPLETE][3] ([i915#1090] / 
[i915#1185])
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-iclb2/igt@gem_exec_susp...@basic-s0.html
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18658/shard-iclb3/igt@gem_exec_susp...@basic-s0.html

  * igt@gem_huc_copy@huc-copy:
- shard-tglb: [PASS][4] -> [SKIP][5] ([i915#2190])
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-tglb7/igt@gem_huc_c...@huc-copy.html
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18658/shard-tglb6/igt@gem_huc_c...@huc-copy.html

  * igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy-gup@wc:
- shard-hsw:  [PASS][6] -> [FAIL][7] ([i915#1888]) +1 similar issue
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-hsw8/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy-...@wc.html
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18658/shard-hsw2/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy-...@wc.html

  * igt@i915_pm_dc@dc6-psr:
- shard-skl:  [PASS][8] -> [FAIL][9] ([i915#454])
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-skl7/igt@i915_pm...@dc6-psr.html
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18658/shard-skl10/igt@i915_pm...@dc6-psr.html

  * igt@kms_cursor_legacy@cursor-vs-flip-toggle:
- shard-hsw:  [PASS][10] -> [FAIL][11] ([i915#2370])
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-hsw2/igt@kms_cursor_leg...@cursor-vs-flip-toggle.html
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18658/shard-hsw8/igt@kms_cursor_leg...@cursor-vs-flip-toggle.html

  * igt@kms_draw_crc@draw-method-rgb565-render-untiled:
- shard-skl:  [PASS][12] -> [FAIL][13] ([i915#52] / [i915#54])
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-skl2/igt@kms_draw_...@draw-method-rgb565-render-untiled.html
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18658/shard-skl8/igt@kms_draw_...@draw-method-rgb565-render-untiled.html

  * igt@kms_draw_crc@draw-method-xrgb2101010-pwrite-untiled:
- shard-snb:  [PASS][14] -> [SKIP][15] ([fdo#109271])
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-snb4/igt@kms_draw_...@draw-method-xrgb2101010-pwrite-untiled.html
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18658/shard-snb2/igt@kms_draw_...@draw-method-xrgb2101010-pwrite-untiled.html

  * igt@kms_flip@flip-vs-blocking-wf-vblank@a-dp1:
- shard-kbl:  [PASS][16] -> [DMESG-WARN][17] ([i915#1982]) +1 
similar issue
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-kbl1/igt@kms_flip@flip-vs-blocking-wf-vbl...@a-dp1.html
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18658/shard-kbl6/igt@kms_flip@flip-vs-blocking-wf-vbl...@a-dp1.html

  * igt@kms_flip@flip-vs-blocking-wf-vblank@a-edp1:
- shard-skl:  [PASS][18] -> [DMESG-WARN][19] ([i915#1982]) +5 
similar issues
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-skl7/igt@kms_flip@flip-vs-blocking-wf-vbl...@a-edp1.html
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18658/shard-skl5/igt@kms_flip@flip-vs-blocking-wf-vbl...@a-edp1.html

  * igt@kms_flip@flip-vs-expired-vblank-interruptible@c-edp1:
- shard-skl:  [PASS][20] -> [FAIL][21] ([i915#79])
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-skl3/igt@kms_flip@flip-vs-expired-vblank-interrupti...@c-edp1.html
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18658/shard-skl3/igt@kms_flip@flip-vs-expired-vblank-interrupti...@c-edp1.html

  * igt@kms_flip@flip-vs-suspend@a-dp1:
- shard-kbl:  [PASS][22] -> [INCOMPLETE][23] ([i915#155])
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-kbl7/igt@kms_flip@flip-vs-susp...@a-dp1.html
   [23]: 
ht

[Intel-gfx] ✓ Fi.CI.IGT: success for series starting with [v5,1/3] drm/i915/display: Ignore IGNORE_PSR2_HW_TRACKING for platforms without sel fetch (rev3)

2020-10-08 Thread Patchwork
== Series Details ==

Series: series starting with [v5,1/3] drm/i915/display: Ignore 
IGNORE_PSR2_HW_TRACKING for platforms without sel fetch (rev3)
URL   : https://patchwork.freedesktop.org/series/82453/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_9113_full -> Patchwork_18659_full


Summary
---

  **SUCCESS**

  No regressions found.

  

Known issues


  Here are the changes found in Patchwork_18659_full that come from known 
issues:

### IGT changes ###

 Issues hit 

  * igt@gem_exec_gttfill@engines@rcs0:
- shard-glk:  [PASS][1] -> [DMESG-WARN][2] ([i915#118] / [i915#95])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-glk7/igt@gem_exec_gttfill@engi...@rcs0.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18659/shard-glk4/igt@gem_exec_gttfill@engi...@rcs0.html

  * igt@gem_huc_copy@huc-copy:
- shard-tglb: [PASS][3] -> [SKIP][4] ([i915#2190])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-tglb7/igt@gem_huc_c...@huc-copy.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18659/shard-tglb6/igt@gem_huc_c...@huc-copy.html

  * igt@i915_pm_dc@dc6-psr:
- shard-skl:  [PASS][5] -> [FAIL][6] ([i915#454])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-skl7/igt@i915_pm...@dc6-psr.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18659/shard-skl1/igt@i915_pm...@dc6-psr.html

  * igt@kms_flip@flip-vs-blocking-wf-vblank@a-edp1:
- shard-skl:  [PASS][7] -> [DMESG-WARN][8] ([i915#1982]) +4 similar 
issues
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-skl7/igt@kms_flip@flip-vs-blocking-wf-vbl...@a-edp1.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18659/shard-skl10/igt@kms_flip@flip-vs-blocking-wf-vbl...@a-edp1.html

  * igt@kms_flip@flip-vs-suspend-interruptible@a-dp1:
- shard-kbl:  [PASS][9] -> [DMESG-WARN][10] ([i915#180]) +3 similar 
issues
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-kbl6/igt@kms_flip@flip-vs-suspend-interrupti...@a-dp1.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18659/shard-kbl7/igt@kms_flip@flip-vs-suspend-interrupti...@a-dp1.html

  * igt@kms_flip@flip-vs-suspend@a-dp1:
- shard-kbl:  [PASS][11] -> [INCOMPLETE][12] ([i915#155])
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-kbl7/igt@kms_flip@flip-vs-susp...@a-dp1.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18659/shard-kbl6/igt@kms_flip@flip-vs-susp...@a-dp1.html

  * igt@kms_frontbuffer_tracking@fbc-stridechange:
- shard-tglb: [PASS][13] -> [DMESG-WARN][14] ([i915#1982]) +4 
similar issues
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-tglb1/igt@kms_frontbuffer_track...@fbc-stridechange.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18659/shard-tglb2/igt@kms_frontbuffer_track...@fbc-stridechange.html
- shard-glk:  [PASS][15] -> [DMESG-WARN][16] ([i915#1982])
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-glk5/igt@kms_frontbuffer_track...@fbc-stridechange.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18659/shard-glk8/igt@kms_frontbuffer_track...@fbc-stridechange.html

  * igt@kms_hdr@bpc-switch-dpms:
- shard-skl:  [PASS][17] -> [FAIL][18] ([i915#1188]) +1 similar 
issue
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-skl2/igt@kms_...@bpc-switch-dpms.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18659/shard-skl4/igt@kms_...@bpc-switch-dpms.html

  * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c:
- shard-skl:  [PASS][19] -> [INCOMPLETE][20] ([i915#198])
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-skl8/igt@kms_pipe_crc_ba...@suspend-read-crc-pipe-c.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18659/shard-skl2/igt@kms_pipe_crc_ba...@suspend-read-crc-pipe-c.html

  * igt@kms_plane_alpha_blend@pipe-c-coverage-7efc:
- shard-skl:  [PASS][21] -> [FAIL][22] ([fdo#108145] / [i915#265])
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-skl5/igt@kms_plane_alpha_bl...@pipe-c-coverage-7efc.html
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18659/shard-skl7/igt@kms_plane_alpha_bl...@pipe-c-coverage-7efc.html

  * igt@kms_psr@psr2_cursor_plane_move:
- shard-iclb: [PASS][23] -> [SKIP][24] ([fdo#109441]) +2 similar 
issues
   [23]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-iclb2/igt@kms_psr@psr2_cursor_plane_move.html
   [24]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18659/shard-iclb5/igt@kms_psr@psr2_cursor_plane_move.html

  * igt@kms_setmode@basic:
- shard-glk:  [PASS][25] -> [FAIL][26] ([i915#31])
   [25]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DR

[Intel-gfx] [PATCH v3 2/3] drm/i915/vbt: Update the version and expected size of BDB_GENERAL_DEFINITIONS map

2020-10-08 Thread José Roberto de Souza
This will remove the "Expected child device config size for VBT
version 235 not known" debug message seen in TGL, although this is not
fixing anything it good to keep our VBT parser updated.

Reviewed-by: Matt Roper 
Signed-off-by: José Roberto de Souza 
---
 drivers/gpu/drm/i915/display/intel_bios.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/display/intel_bios.c 
b/drivers/gpu/drm/i915/display/intel_bios.c
index b4d99d0bf696..0a309645fe06 100644
--- a/drivers/gpu/drm/i915/display/intel_bios.c
+++ b/drivers/gpu/drm/i915/display/intel_bios.c
@@ -1917,7 +1917,7 @@ parse_general_definitions(struct drm_i915_private 
*dev_priv,
expected_size = 37;
} else if (bdb->version <= 215) {
expected_size = 38;
-   } else if (bdb->version <= 229) {
+   } else if (bdb->version <= 237) {
expected_size = 39;
} else {
expected_size = sizeof(*child);
-- 
2.28.0

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH v3 1/3] drm/i915/vbt: Fix backlight parsing for VBT 234+

2020-10-08 Thread José Roberto de Souza
Child min_brightness is obsolete from VBT 234+, instead the new
min_brightness field in the main structure should be used.

This new field is 16 bits wide, so backlight_precision_bits is needed
to check if value needs to be scaled down but it is only available in
VBT 236+ so working around it by using the also new backlight_level
in the main struct.

v2:
- missed that backlight_data->level is also obsolete

v3:
- s/backlight/brightness to better match specification
- using u16 to specify brightness level instead of a u32 : 16

BSpec: 20149
Reviewed-by: Matt Roper 
Signed-off-by: José Roberto de Souza 
---
 drivers/gpu/drm/i915/display/intel_bios.c | 30 +--
 drivers/gpu/drm/i915/display/intel_vbt_defs.h | 12 ++--
 2 files changed, 38 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_bios.c 
b/drivers/gpu/drm/i915/display/intel_bios.c
index 5804eb9faf24..b4d99d0bf696 100644
--- a/drivers/gpu/drm/i915/display/intel_bios.c
+++ b/drivers/gpu/drm/i915/display/intel_bios.c
@@ -425,6 +425,7 @@ parse_lfp_backlight(struct drm_i915_private *dev_priv,
const struct bdb_lfp_backlight_data *backlight_data;
const struct lfp_backlight_data_entry *entry;
int panel_type = dev_priv->vbt.panel_type;
+   u16 level;
 
backlight_data = find_section(bdb, BDB_LVDS_BACKLIGHT);
if (!backlight_data)
@@ -459,14 +460,39 @@ parse_lfp_backlight(struct drm_i915_private *dev_priv,
 
dev_priv->vbt.backlight.pwm_freq_hz = entry->pwm_freq_hz;
dev_priv->vbt.backlight.active_low_pwm = entry->active_low_pwm;
-   dev_priv->vbt.backlight.min_brightness = entry->min_brightness;
+
+   if (bdb->version >= 234) {
+   u16 min_level;
+   bool scale;
+
+   level = backlight_data->brightness_level[panel_type].level;
+   min_level = 
backlight_data->brightness_min_level[panel_type].level;
+
+   if (bdb->version >= 236)
+   scale = 
backlight_data->brightness_precision_bits[panel_type] == 16;
+   else
+   scale = level > 255;
+
+   if (scale)
+   min_level = min_level / 255;
+
+   if (min_level > 255) {
+   drm_warn(&dev_priv->drm, "Brightness min level > 
255\n");
+   level = 255;
+   }
+   dev_priv->vbt.backlight.min_brightness = min_level;
+   } else {
+   level = backlight_data->level[panel_type];
+   dev_priv->vbt.backlight.min_brightness = entry->min_brightness;
+   }
+
drm_dbg_kms(&dev_priv->drm,
"VBT backlight PWM modulation frequency %u Hz, "
"active %s, min brightness %u, level %u, controller %u\n",
dev_priv->vbt.backlight.pwm_freq_hz,
dev_priv->vbt.backlight.active_low_pwm ? "low" : "high",
dev_priv->vbt.backlight.min_brightness,
-   backlight_data->level[panel_type],
+   level,
dev_priv->vbt.backlight.controller);
 }
 
diff --git a/drivers/gpu/drm/i915/display/intel_vbt_defs.h 
b/drivers/gpu/drm/i915/display/intel_vbt_defs.h
index 54bcc6a6947c..5df23e1848a6 100644
--- a/drivers/gpu/drm/i915/display/intel_vbt_defs.h
+++ b/drivers/gpu/drm/i915/display/intel_vbt_defs.h
@@ -782,7 +782,7 @@ struct lfp_backlight_data_entry {
u8 active_low_pwm:1;
u8 obsolete1:5;
u16 pwm_freq_hz;
-   u8 min_brightness;
+   u8 min_brightness; /* Obsolete from 234+ */
u8 obsolete2;
u8 obsolete3;
 } __packed;
@@ -792,11 +792,19 @@ struct lfp_backlight_control_method {
u8 controller:4;
 } __packed;
 
+struct lfp_brightness_level {
+   u16 level;
+   u16 reserved;
+} __packed;
+
 struct bdb_lfp_backlight_data {
u8 entry_size;
struct lfp_backlight_data_entry data[16];
-   u8 level[16];
+   u8 level[16]; /* Obsolete from 234+ */
struct lfp_backlight_control_method backlight_control[16];
+   struct lfp_brightness_level brightness_level[16];   /* 234+ 
*/
+   struct lfp_brightness_level brightness_min_level[16];   /* 234+ */
+   u8 brightness_precision_bits[16];   
/* 236+ */
 } __packed;
 
 /*
-- 
2.28.0

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH v3 3/3] drm/i915/vbt: Add VRR VBT toggle

2020-10-08 Thread José Roberto de Souza
This will be used in future but already adding to VBT so we are
updated with VBT changes.

Reviewed-by: Matt Roper 
Signed-off-by: José Roberto de Souza 
---
 drivers/gpu/drm/i915/display/intel_vbt_defs.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/gpu/drm/i915/display/intel_vbt_defs.h 
b/drivers/gpu/drm/i915/display/intel_vbt_defs.h
index 5df23e1848a6..49b4b5fca941 100644
--- a/drivers/gpu/drm/i915/display/intel_vbt_defs.h
+++ b/drivers/gpu/drm/i915/display/intel_vbt_defs.h
@@ -835,6 +835,7 @@ struct bdb_lfp_power {
u16 lace_enabled_status;
struct agressiveness_profile_entry aggressivenes[16];
u16 hobl; /* 232+ */
+   u16 vrr_feature_enabled; /* 233+ */
 } __packed;
 
 /*
-- 
2.28.0

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915: Verify the captured request is still active

2020-10-08 Thread Patchwork
== Series Details ==

Series: drm/i915: Verify the captured request is still active
URL   : https://patchwork.freedesktop.org/series/82478/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_9113_full -> Patchwork_18660_full


Summary
---

  **SUCCESS**

  No regressions found.

  

Possible new issues
---

  Here are the unknown changes that may have been introduced in 
Patchwork_18660_full:

### IGT changes ###

 Suppressed 

  The following results come from untrusted machines, tests, or statuses.
  They do not affect the overall result.

  * {igt@gem_exec_capture@pi@vcs0}:
- shard-tglb: [PASS][1] -> [INCOMPLETE][2]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-tglb6/igt@gem_exec_capture@p...@vcs0.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18660/shard-tglb6/igt@gem_exec_capture@p...@vcs0.html

  
Known issues


  Here are the changes found in Patchwork_18660_full that come from known 
issues:

### IGT changes ###

 Issues hit 

  * igt@gem_exec_gttfill@engines@rcs0:
- shard-glk:  [PASS][3] -> [DMESG-WARN][4] ([i915#118] / [i915#95]) 
+1 similar issue
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-glk7/igt@gem_exec_gttfill@engi...@rcs0.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18660/shard-glk4/igt@gem_exec_gttfill@engi...@rcs0.html

  * igt@gem_userptr_blits@unsync-unmap-cycles:
- shard-skl:  [PASS][5] -> [TIMEOUT][6] ([i915#2424])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-skl7/igt@gem_userptr_bl...@unsync-unmap-cycles.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18660/shard-skl2/igt@gem_userptr_bl...@unsync-unmap-cycles.html

  * igt@gen9_exec_parse@allowed-single:
- shard-skl:  [PASS][7] -> [DMESG-WARN][8] ([i915#1436] / 
[i915#716])
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-skl2/igt@gen9_exec_pa...@allowed-single.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18660/shard-skl3/igt@gen9_exec_pa...@allowed-single.html

  * igt@i915_pm_dc@dc6-psr:
- shard-skl:  [PASS][9] -> [FAIL][10] ([i915#454])
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-skl7/igt@i915_pm...@dc6-psr.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18660/shard-skl2/igt@i915_pm...@dc6-psr.html

  * igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@ac-hdmi-a1-hdmi-a2:
- shard-glk:  [PASS][11] -> [FAIL][12] ([i915#79])
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-glk8/igt@kms_flip@2x-flip-vs-expired-vblank-interrupti...@ac-hdmi-a1-hdmi-a2.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18660/shard-glk2/igt@kms_flip@2x-flip-vs-expired-vblank-interrupti...@ac-hdmi-a1-hdmi-a2.html

  * igt@kms_flip@flip-vs-blocking-wf-vblank@a-dp1:
- shard-kbl:  [PASS][13] -> [DMESG-WARN][14] ([i915#1982])
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-kbl1/igt@kms_flip@flip-vs-blocking-wf-vbl...@a-dp1.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18660/shard-kbl7/igt@kms_flip@flip-vs-blocking-wf-vbl...@a-dp1.html

  * igt@kms_flip@flip-vs-blocking-wf-vblank@a-edp1:
- shard-skl:  [PASS][15] -> [DMESG-WARN][16] ([i915#1982]) +5 
similar issues
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-skl7/igt@kms_flip@flip-vs-blocking-wf-vbl...@a-edp1.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18660/shard-skl4/igt@kms_flip@flip-vs-blocking-wf-vbl...@a-edp1.html

  * igt@kms_flip@flip-vs-suspend-interruptible@a-dp1:
- shard-kbl:  [PASS][17] -> [DMESG-WARN][18] ([i915#180]) +2 
similar issues
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-kbl6/igt@kms_flip@flip-vs-suspend-interrupti...@a-dp1.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18660/shard-kbl7/igt@kms_flip@flip-vs-suspend-interrupti...@a-dp1.html

  * igt@kms_flip@flip-vs-suspend@a-dp1:
- shard-kbl:  [PASS][19] -> [INCOMPLETE][20] ([i915#155])
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-kbl7/igt@kms_flip@flip-vs-susp...@a-dp1.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18660/shard-kbl4/igt@kms_flip@flip-vs-susp...@a-dp1.html

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-gtt:
- shard-snb:  [PASS][21] -> [SKIP][22] ([fdo#109271]) +4 similar 
issues
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-snb6/igt@kms_frontbuffer_track...@fbc-1p-primscrn-spr-indfb-draw-mmap-gtt.html
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18660/shard-snb6/igt@kms_frontbuffer_track...@fbc-1p-primscrn-spr-indfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbc-rgb101010-draw-mmap-wc:
- shard-glk:

Re: [Intel-gfx] [PATCH 1/2] drm/i915/dpcd_bl: Skip testing control capability with force DPCD quirk

2020-10-08 Thread Satadru Pramanik
Kevin Chowski said he would be geting to working on upstreaming a version
of that which was in the ChromeOS tree here:

https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/2344844
when I last spoke to hi

(This was two weeks ago.)

Kevin - do you have any input on this?

Satadru

On Thu, Oct 8, 2020 at 1:07 PM Lyude Paul  wrote:

> oh hold on, I misspoke. Here's the patch I was thinking of:
>
> https://patchwork.freedesktop.org/series/82041/
>
> On Thu, 2020-10-08 at 10:32 +0800, Kai-Heng Feng wrote:
> > Hi Lyude,
> >
> > > On Oct 8, 2020, at 05:53, Lyude Paul  wrote:
> > >
> > > Hi! I thought this patch rang a bell, we actually already had some
> > > discussion
> > > about this since there's a couple of other systems this was causing
> issues
> > > for.
> > > Unfortunately it never seems like that patch got sent out. Satadru?
> > >
> > > (if I don't hear back from them soon, I'll just send out a patch for
> this
> > > myself)
> > >
> > > JFYI - the proper fix here is to just drop the
> > > DP_EDP_BACKLIGHT_BRIGHTNESS_PWM_PIN_CAP check from the code entirely.
> As
> > > long as
> > > the backlight supports AUX_SET_CAP, that should be enough for us to
> control
> > > it.
> >
> > Does the proper fix include dropping DP_QUIRK_FORCE_DPCD_BACKLIGHT
> entirely?
> >
> > Kai-Heng
> >
> > >
> > > On Wed, 2020-10-07 at 14:58 +0800, Kai-Heng Feng wrote:
> > > > HP DreamColor panel needs to be controlled via AUX interface.
> However,
> > > > it has both DP_EDP_BACKLIGHT_BRIGHTNESS_AUX_SET_CAP and
> > > > DP_EDP_BACKLIGHT_BRIGHTNESS_PWM_PIN_CAP set, so it fails to pass
> > > > intel_dp_aux_display_control_capable() test.
> > > >
> > > > Skip the test if the panel has force DPCD quirk.
> > > >
> > > > Signed-off-by: Kai-Heng Feng 
> > > > ---
> > > > drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c | 10 ++
> > > > 1 file changed, 6 insertions(+), 4 deletions(-)
> > > >
> > > > diff --git a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
> > > > b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
> > > > index acbd7eb66cbe..acf2e1c65290 100644
> > > > --- a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
> > > > +++ b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
> > > > @@ -347,9 +347,13 @@ int intel_dp_aux_init_backlight_funcs(struct
> > > > intel_connector *intel_connector)
> > > >   struct intel_panel *panel = &intel_connector->panel;
> > > >   struct intel_dp *intel_dp =
> enc_to_intel_dp(intel_connector->encoder);
> > > >   struct drm_i915_private *i915 = dp_to_i915(intel_dp);
> > > > + bool force_dpcd;
> > > > +
> > > > + force_dpcd = drm_dp_has_quirk(&intel_dp->desc,
> intel_dp->edid_quirks,
> > > > +   DP_QUIRK_FORCE_DPCD_BACKLIGHT);
> > > >
> > > >   if (i915->params.enable_dpcd_backlight == 0 ||
> > > > - !intel_dp_aux_display_control_capable(intel_connector))
> > > > + (!force_dpcd &&
> > > > !intel_dp_aux_display_control_capable(intel_connector)))
> > > >   return -ENODEV;
> > > >
> > > >   /*
> > > > @@ -358,9 +362,7 @@ int intel_dp_aux_init_backlight_funcs(struct
> > > > intel_connector *intel_connector)
> > > >*/
> > > >   if (i915->vbt.backlight.type !=
> > > >   INTEL_BACKLIGHT_VESA_EDP_AUX_INTERFACE &&
> > > > - i915->params.enable_dpcd_backlight != 1 &&
> > > > - !drm_dp_has_quirk(&intel_dp->desc, intel_dp->edid_quirks,
> > > > -   DP_QUIRK_FORCE_DPCD_BACKLIGHT)) {
> > > > + i915->params.enable_dpcd_backlight != 1 && !force_dpcd) {
> > > >   drm_info(&i915->drm,
> > > >"Panel advertises DPCD backlight support, but "
> > > >"VBT disagrees. If your backlight controls "
> > > --
> > > Sincerely,
> > >  Lyude Paul (she/her)
> > >  Software Engineer at Red Hat
> --
> Sincerely,
>   Lyude Paul (she/her)
>   Software Engineer at Red Hat
>
>
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH v10 03/11] drm/i915: Add hw.pipe_mode to allow bigjoiner pipe/transcoder split

2020-10-08 Thread Manasi Navare
From: Maarten Lankhorst 

With bigjoiner, there will be 2 pipes driving 2 halfs of 1 transcoder,
because of this, we need a pipe_mode for various calculations, including
for example watermarks, plane clipping, etc.

v6:
* renaming in separate function, only pipe_mode here (Ville)
* Add description (Maarten)
v5:
* Rebase (Manasi)
v4:
* Manual rebase (Manasi)
v3:
* Change state to crtc_state, fix rebase err  (Manasi)
v2:
* Manual Rebase (Manasi)

Signed-off-by: Maarten Lankhorst 
Signed-off-by: Manasi Navare 
Reviewed-by: Animesh Manna 
---
 drivers/gpu/drm/i915/display/intel_display.c  | 40 +-
 .../drm/i915/display/intel_display_types.h| 11 ++-
 drivers/gpu/drm/i915/intel_pm.c   | 76 +--
 3 files changed, 69 insertions(+), 58 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display.c 
b/drivers/gpu/drm/i915/display/intel_display.c
index 9274ffa6e03a..723766b1eae3 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -6166,18 +6166,16 @@ skl_update_scaler(struct intel_crtc_state *crtc_state, 
bool force_detach,
 
 static int skl_update_scaler_crtc(struct intel_crtc_state *crtc_state)
 {
-   const struct drm_display_mode *adjusted_mode =
-   &crtc_state->hw.adjusted_mode;
+   const struct drm_display_mode *pipe_mode = &crtc_state->hw.pipe_mode;
int width, height;
 
if (crtc_state->pch_pfit.enabled) {
width = drm_rect_width(&crtc_state->pch_pfit.dst);
height = drm_rect_height(&crtc_state->pch_pfit.dst);
} else {
-   width = adjusted_mode->crtc_hdisplay;
-   height = adjusted_mode->crtc_vdisplay;
+   width = pipe_mode->crtc_hdisplay;
+   height = pipe_mode->crtc_vdisplay;
}
-
return skl_update_scaler(crtc_state, !crtc_state->hw.active,
 SKL_CRTC_INDEX,
 &crtc_state->scaler_state.scaler_id,
@@ -8085,7 +8083,7 @@ static bool intel_crtc_supports_double_wide(const struct 
intel_crtc *crtc)
 
 static u32 ilk_pipe_pixel_rate(const struct intel_crtc_state *crtc_state)
 {
-   u32 pixel_rate = crtc_state->hw.adjusted_mode.crtc_clock;
+   u32 pixel_rate = crtc_state->hw.pipe_mode.crtc_clock;
unsigned int pipe_w, pipe_h, pfit_w, pfit_h;
 
/*
@@ -8122,7 +8120,7 @@ static void intel_crtc_compute_pixel_rate(struct 
intel_crtc_state *crtc_state)
if (HAS_GMCH(dev_priv))
/* FIXME calculate proper pipe pixel rate for GMCH pfit */
crtc_state->pixel_rate =
-   crtc_state->hw.adjusted_mode.crtc_clock;
+   crtc_state->hw.pipe_mode.crtc_clock;
else
crtc_state->pixel_rate =
ilk_pipe_pixel_rate(crtc_state);
@@ -8132,7 +8130,7 @@ static int intel_crtc_compute_config(struct intel_crtc 
*crtc,
 struct intel_crtc_state *pipe_config)
 {
struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
-   const struct drm_display_mode *adjusted_mode = 
&pipe_config->hw.adjusted_mode;
+   const struct drm_display_mode *pipe_mode = &pipe_config->hw.pipe_mode;
int clock_limit = dev_priv->max_dotclk_freq;
 
if (INTEL_GEN(dev_priv) < 4) {
@@ -8143,16 +8141,16 @@ static int intel_crtc_compute_config(struct intel_crtc 
*crtc,
 * is > 90% of the (display) core speed.
 */
if (intel_crtc_supports_double_wide(crtc) &&
-   adjusted_mode->crtc_clock > clock_limit) {
+   pipe_mode->crtc_clock > clock_limit) {
clock_limit = dev_priv->max_dotclk_freq;
pipe_config->double_wide = true;
}
}
 
-   if (adjusted_mode->crtc_clock > clock_limit) {
+   if (pipe_mode->crtc_clock > clock_limit) {
drm_dbg_kms(&dev_priv->drm,
"requested pixel clock (%d kHz) too high (max: %d 
kHz, double wide: %s)\n",
-   adjusted_mode->crtc_clock, clock_limit,
+   pipe_mode->crtc_clock, clock_limit,
yesno(pipe_config->double_wide));
return -EINVAL;
}
@@ -8195,7 +8193,7 @@ static int intel_crtc_compute_config(struct intel_crtc 
*crtc,
 * WaPruneModeWithIncorrectHsyncOffset:ctg,elk,ilk,snb,ivb,vlv,hsw.
 */
if ((INTEL_GEN(dev_priv) > 4 || IS_G4X(dev_priv)) &&
-   adjusted_mode->crtc_hsync_start == adjusted_mode->crtc_hdisplay)
+   pipe_mode->crtc_hsync_start == pipe_mode->crtc_hdisplay)
return -EINVAL;
 
intel_crtc_compute_pixel_rate(pipe_config);
@@ -12719,15 +12717,15 @@ static bool c8_planes_changed(const struct 
intel_crtc_state *new_crtc_state)
 
 static u16 hsw_linetime_wm(const struct intel_c

[Intel-gfx] [PATCH v10 05/11] drm/i915: Try to make bigjoiner work in atomic check

2020-10-08 Thread Manasi Navare
From: Maarten Lankhorst 

 When the clock is higher than the dotclock, try with 2 pipes enabled.
 If we can enable 2, then we will go into big joiner mode, and steal
 the adjacent crtc.

 This only links the crtc's in software, no hardware or plane
 programming is done yet. Blobs are also copied from the master's
 crtc_state, so it doesn't depend at commit time on the other
 crtc_state.

v4:
* Fixes in intel_crtc_compute_config (Ville)
v3:
* Manual Rebase (Manasi)
 Changes since v1:
 - Rename pipe timings to transcoder timings, as they are now different.
  Changes since v2:
 - Rework bigjoiner checks; always disable slave when recalculating
   master. No need to have a separate bigjoiner pass any more.
 - Use pipe_mode instead of transcoder_mode, to clean up the code.

Signed-off-by: Maarten Lankhorst 
Signed-off-by: Manasi Navare 
---
 drivers/gpu/drm/i915/display/intel_atomic.c   |   9 +-
 drivers/gpu/drm/i915/display/intel_atomic.h   |   3 +-
 drivers/gpu/drm/i915/display/intel_display.c  | 202 --
 .../drm/i915/display/intel_display_types.h|   9 +
 drivers/gpu/drm/i915/display/intel_dp.c   |  22 +-
 5 files changed, 211 insertions(+), 34 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_atomic.c 
b/drivers/gpu/drm/i915/display/intel_atomic.c
index 86be032bcf96..e243ce97b534 100644
--- a/drivers/gpu/drm/i915/display/intel_atomic.c
+++ b/drivers/gpu/drm/i915/display/intel_atomic.c
@@ -270,14 +270,15 @@ void intel_crtc_free_hw_state(struct intel_crtc_state 
*crtc_state)
intel_crtc_put_color_blobs(crtc_state);
 }
 
-void intel_crtc_copy_color_blobs(struct intel_crtc_state *crtc_state)
+void intel_crtc_copy_color_blobs(struct intel_crtc_state *crtc_state,
+const struct intel_crtc_state *from_crtc_state)
 {
drm_property_replace_blob(&crtc_state->hw.degamma_lut,
- crtc_state->uapi.degamma_lut);
+ from_crtc_state->uapi.degamma_lut);
drm_property_replace_blob(&crtc_state->hw.gamma_lut,
- crtc_state->uapi.gamma_lut);
+ from_crtc_state->uapi.gamma_lut);
drm_property_replace_blob(&crtc_state->hw.ctm,
- crtc_state->uapi.ctm);
+ from_crtc_state->uapi.ctm);
 }
 
 /**
diff --git a/drivers/gpu/drm/i915/display/intel_atomic.h 
b/drivers/gpu/drm/i915/display/intel_atomic.h
index 285de07011dc..62a3365ed5e6 100644
--- a/drivers/gpu/drm/i915/display/intel_atomic.h
+++ b/drivers/gpu/drm/i915/display/intel_atomic.h
@@ -43,7 +43,8 @@ struct drm_crtc_state *intel_crtc_duplicate_state(struct 
drm_crtc *crtc);
 void intel_crtc_destroy_state(struct drm_crtc *crtc,
   struct drm_crtc_state *state);
 void intel_crtc_free_hw_state(struct intel_crtc_state *crtc_state);
-void intel_crtc_copy_color_blobs(struct intel_crtc_state *crtc_state);
+void intel_crtc_copy_color_blobs(struct intel_crtc_state *crtc_state,
+const struct intel_crtc_state 
*from_crtc_state);
 struct drm_atomic_state *intel_atomic_state_alloc(struct drm_device *dev);
 void intel_atomic_state_free(struct drm_atomic_state *state);
 void intel_atomic_state_clear(struct drm_atomic_state *state);
diff --git a/drivers/gpu/drm/i915/display/intel_display.c 
b/drivers/gpu/drm/i915/display/intel_display.c
index cc540c7b7dcd..37b56f4c2401 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -8130,9 +8130,24 @@ static int intel_crtc_compute_config(struct intel_crtc 
*crtc,
 struct intel_crtc_state *pipe_config)
 {
struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
-   const struct drm_display_mode *pipe_mode = &pipe_config->hw.pipe_mode;
+   struct drm_display_mode *pipe_mode = &pipe_config->hw.pipe_mode;
int clock_limit = dev_priv->max_dotclk_freq;
 
+   *pipe_mode = pipe_config->hw.adjusted_mode;
+
+   /* Adjust pipe_mode for bigjoiner, with half the horizontal mode */
+   if (pipe_config->bigjoiner) {
+   pipe_mode->crtc_clock /= 2;
+   pipe_mode->crtc_hdisplay /= 2;
+   pipe_mode->crtc_hblank_start /= 2;
+   pipe_mode->crtc_hblank_end /= 2;
+   pipe_mode->crtc_hsync_start /= 2;
+   pipe_mode->crtc_hsync_end /= 2;
+   pipe_mode->crtc_htotal /= 2;
+   pipe_mode->crtc_hskew /= 2;
+   pipe_config->pipe_src_w /= 2;
+   }
+
if (INTEL_GEN(dev_priv) < 4) {
clock_limit = dev_priv->max_cdclk_freq * 9 / 10;
 
@@ -8193,7 +8208,7 @@ static int intel_crtc_compute_config(struct intel_crtc 
*crtc,
 * WaPruneModeWithIncorrectHsyncOffset:ctg,elk,ilk,snb,ivb,vlv,hsw.
 */
if ((INTEL_GEN(dev_priv) > 4 || IS_G4X(dev_priv)) &&
-   pipe_mode->crtc_

[Intel-gfx] [PATCH v10 01/11] HAX to make DSC work on the icelake test system

2020-10-08 Thread Manasi Navare
From: Maarten Lankhorst 

DSC is available on the display emulator, but not set in DPCD.
Override the entries to allow bigjoiner testing.

Signed-off-by: Maarten Lankhorst 
---
 drivers/gpu/drm/drm_dp_helper.c | 4 ++--
 include/drm/drm_dp_helper.h | 1 +
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/drm_dp_helper.c b/drivers/gpu/drm/drm_dp_helper.c
index 478dd51f738d..7f355c1c49c0 100644
--- a/drivers/gpu/drm/drm_dp_helper.c
+++ b/drivers/gpu/drm/drm_dp_helper.c
@@ -1987,7 +1987,7 @@ u8 drm_dp_dsc_sink_max_slice_count(const u8 
dsc_dpcd[DP_DSC_RECEIVER_CAP_SIZE],
if (slice_cap1 & DP_DSC_4_PER_DP_DSC_SINK)
return 4;
if (slice_cap1 & DP_DSC_2_PER_DP_DSC_SINK)
-   return 2;
+   return 4;
if (slice_cap1 & DP_DSC_1_PER_DP_DSC_SINK)
return 1;
} else {
@@ -2011,7 +2011,7 @@ u8 drm_dp_dsc_sink_max_slice_count(const u8 
dsc_dpcd[DP_DSC_RECEIVER_CAP_SIZE],
if (slice_cap1 & DP_DSC_4_PER_DP_DSC_SINK)
return 4;
if (slice_cap1 & DP_DSC_2_PER_DP_DSC_SINK)
-   return 2;
+   return 4;
if (slice_cap1 & DP_DSC_1_PER_DP_DSC_SINK)
return 1;
}
diff --git a/include/drm/drm_dp_helper.h b/include/drm/drm_dp_helper.h
index 159191c1ae75..1eeffb670ad9 100644
--- a/include/drm/drm_dp_helper.h
+++ b/include/drm/drm_dp_helper.h
@@ -1502,6 +1502,7 @@ int drm_dp_dsc_sink_supported_input_bpcs(const u8 
dsc_dpc[DP_DSC_RECEIVER_CAP_SI
 static inline bool
 drm_dp_sink_supports_dsc(const u8 dsc_dpcd[DP_DSC_RECEIVER_CAP_SIZE])
 {
+   return dsc_dpcd[DP_DSC_REV - DP_DSC_SUPPORT];
return dsc_dpcd[DP_DSC_SUPPORT - DP_DSC_SUPPORT] &
DP_DSC_DECOMPRESSION_IS_SUPPORTED;
 }
-- 
2.19.1

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH v10 02/11] drm/i915/display: Rename pipe_timings to transcoder_timings

2020-10-08 Thread Manasi Navare
No functional changes in this patch.

With Bigjoiner, there are 2 pipes driving 2 halfs of 1
transcoder. The transcoder_mode has the full timings, and is used
for configuring the transcoder with the intended mode after
joining the 2 halves.
To clear the confusion, we rename intel_set_pipe_timings to
intel_set_transcoder_timings

v2:
* Split the renaming into separate patch (Ville)

Cc: Maarten Lankhorst 
Cc: Ville Syrjälä 
Signed-off-by: Manasi Navare 
Reviewed-by: Animesh Manna 
Reviewed-by: Ville Syrjälä 
---
 drivers/gpu/drm/i915/display/intel_display.c | 22 ++--
 1 file changed, 11 insertions(+), 11 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display.c 
b/drivers/gpu/drm/i915/display/intel_display.c
index 907e1d155443..9274ffa6e03a 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -154,7 +154,7 @@ static void ilk_pch_clock_get(struct intel_crtc *crtc,
 static int intel_framebuffer_init(struct intel_framebuffer *ifb,
  struct drm_i915_gem_object *obj,
  struct drm_mode_fb_cmd2 *mode_cmd);
-static void intel_set_pipe_timings(const struct intel_crtc_state *crtc_state);
+static void intel_set_transcoder_timings(const struct intel_crtc_state 
*crtc_state);
 static void intel_set_pipe_src_size(const struct intel_crtc_state *crtc_state);
 static void intel_cpu_transcoder_set_m_n(const struct intel_crtc_state 
*crtc_state,
 const struct intel_link_m_n *m_n,
@@ -7003,7 +7003,7 @@ static void ilk_crtc_enable(struct intel_atomic_state 
*state,
if (intel_crtc_has_dp_encoder(new_crtc_state))
intel_dp_set_m_n(new_crtc_state, M1_N1);
 
-   intel_set_pipe_timings(new_crtc_state);
+   intel_set_transcoder_timings(new_crtc_state);
intel_set_pipe_src_size(new_crtc_state);
 
if (new_crtc_state->has_pch_encoder)
@@ -7148,7 +7148,7 @@ static void hsw_crtc_enable(struct intel_atomic_state 
*state,
intel_encoders_pre_enable(state, crtc);
 
if (!transcoder_is_dsi(cpu_transcoder))
-   intel_set_pipe_timings(new_crtc_state);
+   intel_set_transcoder_timings(new_crtc_state);
 
intel_set_pipe_src_size(new_crtc_state);
 
@@ -7543,7 +7543,7 @@ static void valleyview_crtc_enable(struct 
intel_atomic_state *state,
if (intel_crtc_has_dp_encoder(new_crtc_state))
intel_dp_set_m_n(new_crtc_state, M1_N1);
 
-   intel_set_pipe_timings(new_crtc_state);
+   intel_set_transcoder_timings(new_crtc_state);
intel_set_pipe_src_size(new_crtc_state);
 
if (IS_CHERRYVIEW(dev_priv) && pipe == PIPE_B) {
@@ -7611,7 +7611,7 @@ static void i9xx_crtc_enable(struct intel_atomic_state 
*state,
if (intel_crtc_has_dp_encoder(new_crtc_state))
intel_dp_set_m_n(new_crtc_state, M1_N1);
 
-   intel_set_pipe_timings(new_crtc_state);
+   intel_set_transcoder_timings(new_crtc_state);
intel_set_pipe_src_size(new_crtc_state);
 
i9xx_set_pipeconf(new_crtc_state);
@@ -8865,7 +8865,7 @@ static void i8xx_compute_dpll(struct intel_crtc *crtc,
crtc_state->dpll_hw_state.dpll = dpll;
 }
 
-static void intel_set_pipe_timings(const struct intel_crtc_state *crtc_state)
+static void intel_set_transcoder_timings(const struct intel_crtc_state 
*crtc_state)
 {
struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
@@ -8951,8 +8951,8 @@ static bool intel_pipe_is_interlaced(const struct 
intel_crtc_state *crtc_state)
return intel_de_read(dev_priv, PIPECONF(cpu_transcoder)) & 
PIPECONF_INTERLACE_MASK;
 }
 
-static void intel_get_pipe_timings(struct intel_crtc *crtc,
-  struct intel_crtc_state *pipe_config)
+static void intel_get_transcoder_timings(struct intel_crtc *crtc,
+struct intel_crtc_state *pipe_config)
 {
struct drm_device *dev = crtc->base.dev;
struct drm_i915_private *dev_priv = to_i915(dev);
@@ -9575,7 +9575,7 @@ static bool i9xx_get_pipe_config(struct intel_crtc *crtc,
if (INTEL_GEN(dev_priv) < 4)
pipe_config->double_wide = tmp & PIPECONF_DOUBLE_WIDE;
 
-   intel_get_pipe_timings(crtc, pipe_config);
+   intel_get_transcoder_timings(crtc, pipe_config);
intel_get_pipe_src_size(crtc, pipe_config);
 
i9xx_get_pfit_config(pipe_config);
@@ -10856,7 +10856,7 @@ static bool ilk_get_pipe_config(struct intel_crtc *crtc,
pipe_config->pixel_multiplier = 1;
}
 
-   intel_get_pipe_timings(crtc, pipe_config);
+   intel_get_transcoder_timings(crtc, pipe_config);
intel_get_pipe_src_size(crtc, pipe_config);
 
ilk_get_pfit_config(pipe_config);
@@ -11273,7 +11273,7 @@ static bool hsw_get_pipe_config(struct intel_crtc *crtc,

[Intel-gfx] [PATCH v10 11/11] drm/i915: Add debugfs dumping for bigjoiner, v3.

2020-10-08 Thread Manasi Navare
From: Maarten Lankhorst 

Dump debugfs and planar links as well, this will make it easier to debug
when things go wrong.

v4:
* Rebase
Changes since v1:
- Report planar slaves as such, now that we have the plane_state switch.
Changes since v2:
- Rebase on top of the new plane format dumping

Signed-off-by: Maarten Lankhorst 
Signed-off-by: Manasi Navare 
---
 .../drm/i915/display/intel_display_debugfs.c  | 29 ++-
 1 file changed, 28 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display_debugfs.c 
b/drivers/gpu/drm/i915/display/intel_display_debugfs.c
index 0bf31f9a8af5..2760e132582d 100644
--- a/drivers/gpu/drm/i915/display/intel_display_debugfs.c
+++ b/drivers/gpu/drm/i915/display/intel_display_debugfs.c
@@ -750,6 +750,17 @@ static void plane_rotation(char *buf, size_t bufsize, 
unsigned int rotation)
 rotation);
 }
 
+static const char *plane_visibility(const struct intel_plane_state 
*plane_state)
+{
+   if (plane_state->uapi.visible)
+   return "visible";
+
+   if (plane_state->planar_slave)
+   return "planar-slave";
+
+   return "hidden";
+}
+
 static void intel_plane_uapi_info(struct seq_file *m, struct intel_plane 
*plane)
 {
const struct intel_plane_state *plane_state =
@@ -768,12 +779,22 @@ static void intel_plane_uapi_info(struct seq_file *m, 
struct intel_plane *plane)
plane_rotation(rot_str, sizeof(rot_str),
   plane_state->uapi.rotation);
 
-   seq_printf(m, "\t\tuapi: fb=%d,%s,%dx%d, src=" DRM_RECT_FP_FMT ", dst=" 
DRM_RECT_FMT ", rotation=%s\n",
+   seq_printf(m, "\t\tuapi: fb=%d,%s,%dx%d, visible=%s, src=" 
DRM_RECT_FP_FMT ", dst=" DRM_RECT_FMT ", rotation=%s\n",
   fb ? fb->base.id : 0, fb ? format_name.str : "n/a",
   fb ? fb->width : 0, fb ? fb->height : 0,
+  plane_visibility(plane_state),
   DRM_RECT_FP_ARG(&src),
   DRM_RECT_ARG(&dst),
   rot_str);
+
+   if (plane_state->planar_linked_plane)
+   seq_printf(m, "\t\tplanar: Linked to [PLANE:%d:%s] as a %s\n",
+  plane_state->planar_linked_plane->base.base.id, 
plane_state->planar_linked_plane->base.name,
+  plane_state->planar_slave ? "slave" : "master");
+   if (plane_state->bigjoiner_plane)
+   seq_printf(m, "\t\tbigjoiner: Linked to [PLANE:%d:%s] as a 
%s\n",
+  plane_state->bigjoiner_plane->base.base.id, 
plane_state->bigjoiner_plane->base.name,
+  plane_state->bigjoiner_slave ? "slave" : "master");
 }
 
 static void intel_plane_hw_info(struct seq_file *m, struct intel_plane *plane)
@@ -869,6 +890,12 @@ static void intel_crtc_info(struct seq_file *m, struct 
intel_crtc *crtc)
intel_scaler_info(m, crtc);
}
 
+   if (crtc_state->bigjoiner)
+   seq_printf(m, "\tLinked to [CRTC:%d:%s] as a %s\n",
+  crtc_state->bigjoiner_linked_crtc->base.base.id,
+  crtc_state->bigjoiner_linked_crtc->base.name,
+  crtc_state->bigjoiner_slave ? "slave" : "master");
+
for_each_intel_encoder_mask(&dev_priv->drm, encoder,
crtc_state->uapi.encoder_mask)
intel_encoder_info(m, crtc, encoder);
-- 
2.19.1

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH v10 09/11] drm/i915: Add bigjoiner aware plane clipping checks

2020-10-08 Thread Manasi Navare
From: Maarten Lankhorst 

We need to look at hw.fb for the framebuffer, and add the translation
for the slave_plane_state. With these changes we set the correct
rectangle on the bigjoiner slave, and don't set incorrect
src/dst/visibility on the slave plane.

v2:
* Manual rebase (Manasi)

Signed-off-by: Maarten Lankhorst 
Signed-off-by: Manasi Navare 
---
 .../gpu/drm/i915/display/intel_atomic_plane.c | 60 +++
 .../gpu/drm/i915/display/intel_atomic_plane.h |  4 ++
 drivers/gpu/drm/i915/display/intel_display.c  | 19 +++---
 drivers/gpu/drm/i915/display/intel_sprite.c   | 21 +++
 4 files changed, 80 insertions(+), 24 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_atomic_plane.c 
b/drivers/gpu/drm/i915/display/intel_atomic_plane.c
index a8f1fd85a6c0..09cb3adc36da 100644
--- a/drivers/gpu/drm/i915/display/intel_atomic_plane.c
+++ b/drivers/gpu/drm/i915/display/intel_atomic_plane.c
@@ -267,6 +267,9 @@ void intel_plane_copy_uapi_to_hw_state(const struct 
intel_crtc_state *crtc_state
plane_state->hw.rotation = from_plane_state->uapi.rotation;
plane_state->hw.color_encoding = from_plane_state->uapi.color_encoding;
plane_state->hw.color_range = from_plane_state->uapi.color_range;
+
+   plane_state->uapi.src = drm_plane_state_src(&from_plane_state->uapi);
+   plane_state->uapi.dst = drm_plane_state_dest(&from_plane_state->uapi);
 }
 
 void intel_plane_set_invisible(struct intel_crtc_state *crtc_state,
@@ -519,6 +522,63 @@ void i9xx_update_planes_on_crtc(struct intel_atomic_state 
*state,
}
 }
 
+int intel_atomic_plane_check_clipping(struct intel_plane_state *plane_state,
+ struct intel_crtc_state *crtc_state,
+ int min_scale, int max_scale,
+ bool can_position)
+{
+   struct drm_framebuffer *fb = plane_state->hw.fb;
+   struct drm_rect *src = &plane_state->uapi.src;
+   struct drm_rect *dst = &plane_state->uapi.dst;
+   unsigned int rotation = plane_state->uapi.rotation;
+   struct drm_rect clip = {};
+   int hscale, vscale;
+
+   if (!fb) {
+   plane_state->uapi.visible = false;
+   return 0;
+   }
+
+   drm_rect_rotate(src, fb->width << 16, fb->height << 16, rotation);
+
+   /* Check scaling */
+   hscale = drm_rect_calc_hscale(src, dst, min_scale, max_scale);
+   vscale = drm_rect_calc_vscale(src, dst, min_scale, max_scale);
+   if (hscale < 0 || vscale < 0) {
+   DRM_DEBUG_KMS("Invalid scaling of plane\n");
+   drm_rect_debug_print("src: ", src, true);
+   drm_rect_debug_print("dst: ", dst, false);
+   return -ERANGE;
+   }
+
+   if (crtc_state->hw.enable) {
+   clip.x2 = crtc_state->pipe_src_w;
+   clip.y2 = crtc_state->pipe_src_h;
+   }
+
+   /* right side of the image is on the slave crtc, adjust dst to match */
+   if (crtc_state->bigjoiner_slave)
+   drm_rect_translate(dst, -crtc_state->pipe_src_w, 0);
+
+   /*
+* FIXME: This might need further adjustment for seamless scaling
+* with phase information, for the 2p2 and 2p1 scenarios.
+*/
+   plane_state->uapi.visible = drm_rect_clip_scaled(src, dst, &clip);
+
+   drm_rect_rotate_inv(src, fb->width << 16, fb->height << 16, rotation);
+
+   if (!can_position && plane_state->uapi.visible &&
+   !drm_rect_equals(dst, &clip)) {
+   DRM_DEBUG_KMS("Plane must cover entire CRTC\n");
+   drm_rect_debug_print("dst: ", dst, false);
+   drm_rect_debug_print("clip: ", &clip, false);
+   return -EINVAL;
+   }
+
+   return 0;
+}
+
 const struct drm_plane_helper_funcs intel_plane_helper_funcs = {
.prepare_fb = intel_prepare_plane_fb,
.cleanup_fb = intel_cleanup_plane_fb,
diff --git a/drivers/gpu/drm/i915/display/intel_atomic_plane.h 
b/drivers/gpu/drm/i915/display/intel_atomic_plane.h
index c2a1e7c86e6c..d0a599d00ecd 100644
--- a/drivers/gpu/drm/i915/display/intel_atomic_plane.h
+++ b/drivers/gpu/drm/i915/display/intel_atomic_plane.h
@@ -53,6 +53,10 @@ int intel_plane_atomic_calc_changes(const struct 
intel_crtc_state *old_crtc_stat
 int intel_plane_calc_min_cdclk(struct intel_atomic_state *state,
   struct intel_plane *plane,
   bool *need_cdclk_calc);
+int intel_atomic_plane_check_clipping(struct intel_plane_state *plane_state,
+ struct intel_crtc_state *crtc_state,
+ int min_scale, int max_scale,
+ bool can_position);
 void intel_plane_set_invisible(struct intel_crtc_state *crtc_state,
   struct intel_plane_state *plane_state);
 
diff --git a/drivers/gpu/drm/i915/display/intel_display.c 
b/drivers/gpu/drm/i915

[Intel-gfx] [PATCH v10 07/11] drm/i915: Make hardware readout work on i915.

2020-10-08 Thread Manasi Navare
From: Maarten Lankhorst 

Unfortunately I have no way to test this, but it should be correct
if the bios sets up bigjoiner in a sane way.

Skip iterating over bigjoiner slaves, only the master has the state we
care about.

Add the width of the bigjoiner slave to the reconstructed fb.

Hide the bigjoiner slave to userspace, and double the mode on bigjoiner
master.

And last, disable bigjoiner slave from primary if reconstruction fails.

v2:
* Manual Rebase (Manasi)

Signed-off-by: Maarten Lankhorst 
Signed-off-by: Manasi Navare 
---
 drivers/gpu/drm/i915/display/intel_display.c | 64 +++-
 1 file changed, 62 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display.c 
b/drivers/gpu/drm/i915/display/intel_display.c
index faf8bf757bed..aa981aa4f6a1 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -3619,6 +3619,8 @@ intel_find_initial_plane_obj(struct intel_crtc 
*intel_crtc,
struct intel_plane *intel_plane = to_intel_plane(primary);
struct intel_plane_state *intel_state =
to_intel_plane_state(plane_state);
+struct intel_crtc_state *crtc_state =
+to_intel_crtc_state(intel_crtc->base.state);
struct drm_framebuffer *fb;
struct i915_vma *vma;
 
@@ -3641,7 +3643,7 @@ intel_find_initial_plane_obj(struct intel_crtc 
*intel_crtc,
if (c == &intel_crtc->base)
continue;
 
-   if (!to_intel_crtc(c)->active)
+   if (!to_intel_crtc_state(c->state)->uapi.active)
continue;
 
state = to_intel_plane_state(c->primary->state);
@@ -3663,6 +3665,11 @@ intel_find_initial_plane_obj(struct intel_crtc 
*intel_crtc,
 * pretend the BIOS never had it enabled.
 */
intel_plane_disable_noatomic(intel_crtc, intel_plane);
+   if (crtc_state->bigjoiner) {
+   struct intel_crtc *slave =
+   crtc_state->bigjoiner_linked_crtc;
+   intel_plane_disable_noatomic(slave, 
to_intel_plane(slave->base.primary));
+   }
 
return;
 
@@ -10687,6 +10694,7 @@ static void
 skl_get_initial_plane_config(struct intel_crtc *crtc,
 struct intel_initial_plane_config *plane_config)
 {
+   struct intel_crtc_state *crtc_state = 
to_intel_crtc_state(crtc->base.state);
struct drm_device *dev = crtc->base.dev;
struct drm_i915_private *dev_priv = to_i915(dev);
struct intel_plane *plane = to_intel_plane(crtc->base.primary);
@@ -10795,6 +10803,18 @@ skl_get_initial_plane_config(struct intel_crtc *crtc,
fb->height = ((val >> 16) & 0x) + 1;
fb->width = ((val >> 0) & 0x) + 1;
 
+   /* add bigjoiner slave as well, if the fb stretches both */
+   if (crtc_state->bigjoiner) {
+   enum pipe bigjoiner_pipe = 
crtc_state->bigjoiner_linked_crtc->pipe;
+
+   if (fb->width == crtc_state->pipe_src_w &&
+   (intel_de_read(dev_priv, PLANE_SURF(pipe, plane_id)) & 
0xf000) == plane_config->base) {
+   val = intel_de_read(dev_priv, 
PLANE_SIZE(bigjoiner_pipe, plane_id));
+   fb->height += ((val >> 16) & 0xfff) + 1;
+   fb->width += ((val >> 0) & 0x1fff) + 1;
+   }
+   }
+
val = intel_de_read(dev_priv, PLANE_STRIDE(pipe, plane_id));
stride_mult = skl_plane_stride_mult(fb, 0, DRM_MODE_ROTATE_0);
fb->pitches[0] = (val & 0x3ff) * stride_mult;
@@ -18793,7 +18813,8 @@ static void intel_sanitize_crtc(struct intel_crtc *crtc,
 
/* Adjust the state of the output pipe according to whether we
 * have active connectors/encoders. */
-   if (crtc_state->hw.active && !intel_crtc_has_encoders(crtc))
+   if (crtc_state->hw.active && !intel_crtc_has_encoders(crtc) &&
+   !crtc_state->bigjoiner_slave)
intel_crtc_disable_noatomic(crtc, ctx);
 
if (crtc_state->hw.active || HAS_GMCH(dev_priv)) {
@@ -19072,6 +19093,9 @@ static void intel_modeset_readout_hw_state(struct 
drm_device *dev)
struct intel_plane *plane;
int min_cdclk = 0;
 
+   if (crtc_state->bigjoiner_slave)
+   continue;
+
if (crtc_state->hw.active) {
struct drm_display_mode mode;
 
@@ -19096,6 +19120,9 @@ static void intel_modeset_readout_hw_state(struct 
drm_device *dev)
mode.hdisplay = crtc_state->pipe_src_w;
mode.vdisplay = crtc_state->pipe_src_h;
 
+   if (crtc_state->bigjoiner)
+   mode.hdisplay *= 2;
+
intel_crtc_compute_pixel_rate(crtc_state);
 
intel_crtc_update_active_timings(crtc_state);
@@ -19146,6 +19173,39 @@ static void intel_modeset_readout_hw_state(st

[Intel-gfx] [PATCH v10 06/11] drm/i915: Enable big joiner support in enable and disable sequences.

2020-10-08 Thread Manasi Navare
From: Maarten Lankhorst 

Make vdsc work when no output is enabled. The big joiner needs VDSC
on the slave, so enable it and set the appropriate bits.
Also update timestamping constants, because slave crtc's are not
updated in drm_atomic_helper_update_legacy_modeset_state().

This should be enough to bring up CRTC's in a big joiner configuration,
without any plane configuration on the second pipe yet.

HOWEVER, we still bring up the crtc's in the wrong order. We need to
make sure that the master crtc is brought up after the slave crtc.
This is done correctly later in this series.

The next steps are to enable planes correctly, and make sure we enable
and update both master and slave in the correct order.

v2:
* Manual rebase (Manasi)

v3:
* Rebase (Manasi)

v4:
* Rebase (Manasi)

v5:
* Get dsc power domain in ddi_init (Manasi)

v6:
* Remove dsc power put from dsc_disable (Maarten)

v7:
* Rebase (Manasi)

v8:
* Rebase (Manasi)

v9:
* Rebase (Manasi)

Signed-off-by: Maarten Lankhorst 
Signed-off-by: Manasi Navare 
---
 drivers/gpu/drm/i915/display/icl_dsi.c|   2 -
 drivers/gpu/drm/i915/display/intel_ddi.c  |  68 ++-
 drivers/gpu/drm/i915/display/intel_display.c  | 392 --
 .../drm/i915/display/intel_display_types.h|   1 +
 drivers/gpu/drm/i915/display/intel_dp.c   |   6 +-
 drivers/gpu/drm/i915/display/intel_vdsc.c | 201 -
 drivers/gpu/drm/i915/display/intel_vdsc.h |   7 +-
 7 files changed, 421 insertions(+), 256 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/icl_dsi.c 
b/drivers/gpu/drm/i915/display/icl_dsi.c
index 4400e83f783f..be8756816650 100644
--- a/drivers/gpu/drm/i915/display/icl_dsi.c
+++ b/drivers/gpu/drm/i915/display/icl_dsi.c
@@ -1492,8 +1492,6 @@ static void gen11_dsi_get_config(struct intel_encoder 
*encoder,
struct intel_crtc *crtc = to_intel_crtc(pipe_config->uapi.crtc);
struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 
-   intel_dsc_get_config(encoder, pipe_config);
-
/* FIXME: adapt icl_ddi_clock_get() for DSI and use that? */
pipe_config->port_clock = intel_dpll_get_freq(i915,
  pipe_config->shared_dpll);
diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c 
b/drivers/gpu/drm/i915/display/intel_ddi.c
index bbd5f04dc140..6b2c09effbdd 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi.c
@@ -28,6 +28,7 @@
 #include 
 
 #include "i915_drv.h"
+#include "i915_trace.h"
 #include "intel_audio.h"
 #include "intel_combo_phy.h"
 #include "intel_connector.h"
@@ -2217,12 +2218,6 @@ static void intel_ddi_get_power_domains(struct 
intel_encoder *encoder,
intel_display_power_get(dev_priv,

intel_ddi_main_link_aux_domain(dig_port));
 
-   /*
-* VDSC power is needed when DSC is enabled
-*/
-   if (crtc_state->dsc.compression_enable)
-   intel_display_power_get(dev_priv,
-   intel_dsc_power_domain(crtc_state));
 }
 
 void intel_ddi_enable_pipe_clock(struct intel_encoder *encoder,
@@ -3507,7 +3502,8 @@ static void tgl_ddi_pre_enable_dp(struct 
intel_atomic_state *state,
 
/* 7.l Configure and enable FEC if needed */
intel_ddi_enable_fec(encoder, crtc_state);
-   intel_dsc_enable(encoder, crtc_state);
+   if (!crtc_state->bigjoiner)
+   intel_dsc_enable(encoder, crtc_state);
 }
 
 static void hsw_ddi_pre_enable_dp(struct intel_atomic_state *state,
@@ -3579,7 +3575,8 @@ static void hsw_ddi_pre_enable_dp(struct 
intel_atomic_state *state,
if (!is_mst)
intel_ddi_enable_pipe_clock(encoder, crtc_state);
 
-   intel_dsc_enable(encoder, crtc_state);
+   if (!crtc_state->bigjoiner)
+   intel_dsc_enable(encoder, crtc_state);
 }
 
 static void intel_ddi_pre_enable_dp(struct intel_atomic_state *state,
@@ -3828,6 +3825,21 @@ static void intel_ddi_post_disable(struct 
intel_atomic_state *state,
ilk_pfit_disable(old_crtc_state);
}
 
+   if (old_crtc_state->bigjoiner_linked_crtc) {
+   struct intel_atomic_state *state =
+   to_intel_atomic_state(old_crtc_state->uapi.state);
+   struct intel_crtc *slave =
+   old_crtc_state->bigjoiner_linked_crtc;
+   const struct intel_crtc_state *old_slave_crtc_state =
+   intel_atomic_get_old_crtc_state(state, slave);
+
+   intel_crtc_vblank_off(old_slave_crtc_state);
+   trace_intel_pipe_disable(slave);
+
+   intel_dsc_disable(old_slave_crtc_state);
+   skl_scaler_disable(old_slave_crtc_state);
+   }
+
/*
 * When called from DP MST code:
 * - old_conn_state will be NULL
@@ -4044,7 +4056,8 @@ static void intel_enable_ddi(struct intel_atomic_state 
*state,
 {
drm_WARN_ON(

[Intel-gfx] [PATCH v10 10/11] drm/i915: Ensure correct master/slave enable/disable sequence

2020-10-08 Thread Manasi Navare
From: Maarten Lankhorst 

Enabling is done in a special sequence and so should plane updates
be. Ideally the end user never notices the second pipe is used.

This way ideally everything will be tear free, and updates are
really atomic as userspace expects it.

This uses generic modeset_enables() calls like trans port sync
but still has special handling for disable since for slave we
should not disable things like encoder, plls that are not enabled
for  slave.

v3:
* Fixes in enable and disable sequence from testing (Manasi)
v2:
* Manual Rebase (Manasi)
* Refactoring on intel_update_crtc and enable_crtc and removing
special trans_port_sync_update (Manasi)

Signed-off-by: Maarten Lankhorst 
Signed-off-by: Manasi Navare 
---
 drivers/gpu/drm/i915/display/intel_display.c | 55 ++--
 drivers/gpu/drm/i915/display/intel_sprite.c  |  5 +-
 2 files changed, 43 insertions(+), 17 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display.c 
b/drivers/gpu/drm/i915/display/intel_display.c
index 357cc2bce300..101ddd0b48ab 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -15878,6 +15878,9 @@ static void intel_enable_crtc(struct intel_atomic_state 
*state,
 
dev_priv->display.crtc_enable(state, crtc);
 
+   if (new_crtc_state->bigjoiner_slave)
+   return;
+
/* vblanks work again, re-enable pipe CRC. */
intel_crtc_enable_pipe_crc(crtc);
 }
@@ -15914,9 +15917,7 @@ static void intel_update_crtc(struct intel_atomic_state 
*state,
 
commit_pipe_config(state, crtc);
 
-   if (new_crtc_state->bigjoiner) {
-   /* Not supported yet */
-   } else if (INTEL_GEN(dev_priv) >= 9)
+   if (INTEL_GEN(dev_priv) >= 9)
skl_update_planes_on_crtc(state, crtc);
else
i9xx_update_planes_on_crtc(state, crtc);
@@ -15945,9 +15946,17 @@ static void intel_old_crtc_state_disables(struct 
intel_atomic_state *state,
drm_WARN_ON(&dev_priv->drm, old_crtc_state->bigjoiner_slave);
 
intel_crtc_disable_planes(state, crtc);
-   if (old_crtc_state->bigjoiner)
+
+   /*
+* We still need special handling for disabling bigjoiner master
+* and slaves since for slave we do not have encoder or plls
+* so we dont need to disable those.
+*/
+   if (old_crtc_state->bigjoiner) {
intel_crtc_disable_planes(state,
  
old_crtc_state->bigjoiner_linked_crtc);
+   old_crtc_state->bigjoiner_linked_crtc->active = false;
+   }
 
/*
 * We need to disable pipe CRC before disabling the pipe,
@@ -15977,7 +15986,7 @@ static void intel_commit_modeset_disables(struct 
intel_atomic_state *state)
/* Only disable port sync and MST slaves */
for_each_oldnew_intel_crtc_in_state(state, crtc, old_crtc_state,
new_crtc_state, i) {
-   if (!needs_modeset(new_crtc_state) || 
old_crtc_state->bigjoiner_slave)
+   if (!needs_modeset(new_crtc_state) || old_crtc_state->bigjoiner)
continue;
 
if (!old_crtc_state->hw.active)
@@ -16040,6 +16049,7 @@ static void skl_commit_modeset_enables(struct 
intel_atomic_state *state)
struct intel_crtc *crtc;
struct intel_crtc_state *old_crtc_state, *new_crtc_state;
struct skl_ddb_entry entries[I915_MAX_PIPES] = {};
+   struct skl_ddb_entry new_entries[I915_MAX_PIPES] = {};
u8 update_pipes = 0, modeset_pipes = 0;
int i;
 
@@ -16056,6 +16066,14 @@ static void skl_commit_modeset_enables(struct 
intel_atomic_state *state)
} else {
modeset_pipes |= BIT(pipe);
}
+
+   new_entries[i] = new_crtc_state->wm.skl.ddb;
+
+   /* ignore allocations for crtc's that have been turned off 
during modeset. */
+   if (needs_modeset(new_crtc_state))
+   continue;
+
+   entries[i] = old_crtc_state->wm.skl.ddb;
}
 
/*
@@ -16071,28 +16089,28 @@ static void skl_commit_modeset_enables(struct 
intel_atomic_state *state)
for_each_oldnew_intel_crtc_in_state(state, crtc, old_crtc_state,
new_crtc_state, i) {
enum pipe pipe = crtc->pipe;
+   bool ddb_changed;
 
if ((update_pipes & BIT(pipe)) == 0)
continue;
 
-   if 
(skl_ddb_allocation_overlaps(&new_crtc_state->wm.skl.ddb,
+   if (skl_ddb_allocation_overlaps(&new_entries[pipe],
entries, 
I915_MAX_PIPES, pipe))
continue;
 
-   entries[pipe] = new_crtc_state->wm.skl.ddb;
+   ddb_changed

[Intel-gfx] [PATCH v10 04/11] drm/i915/dp: Allow big joiner modes in intel_dp_mode_valid(), v3.

2020-10-08 Thread Manasi Navare
From: Maarten Lankhorst 

Small changes to intel_dp_mode_valid(), allow listing modes that
can only be supported in the bigjoiner configuration, which is
not supported yet.

eDP does not support bigjoiner, so do not expose bigjoiner only
modes on the eDP port.

v7:
* Add can_bigjoiner() helper (Ville)
* Pass bigjoiner to plane_size validation (Ville)
v6:
* Rebase after dp_downstream mode valid changes (Manasi)
v5:
* Increase max plane width to support 8K with bigjoiner (Maarten)
v4:
* Rebase (Manasi)

Changes since v1:
- Disallow bigjoiner on eDP.
Changes since v2:
- Rename intel_dp_downstream_max_dotclock to intel_dp_max_dotclock,
  and split off the downstream and source checking to its own function.
  (Ville)
v3:
* Rebase (Manasi)

Signed-off-by: Manasi Navare 
Signed-off-by: Maarten Lankhorst 
---
 drivers/gpu/drm/i915/display/intel_display.c |   5 +-
 drivers/gpu/drm/i915/display/intel_display.h |   3 +-
 drivers/gpu/drm/i915/display/intel_dp.c  | 126 +++
 drivers/gpu/drm/i915/display/intel_dp_mst.c  |   2 +-
 drivers/gpu/drm/i915/display/intel_dsi.c |   2 +-
 drivers/gpu/drm/i915/display/intel_hdmi.c|   2 +-
 6 files changed, 111 insertions(+), 29 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display.c 
b/drivers/gpu/drm/i915/display/intel_display.c
index 723766b1eae3..cc540c7b7dcd 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -17642,7 +17642,8 @@ intel_mode_valid(struct drm_device *dev,
 
 enum drm_mode_status
 intel_mode_valid_max_plane_size(struct drm_i915_private *dev_priv,
-   const struct drm_display_mode *mode)
+   const struct drm_display_mode *mode,
+   bool bigjoiner)
 {
int plane_width_max, plane_height_max;
 
@@ -17659,7 +17660,7 @@ intel_mode_valid_max_plane_size(struct drm_i915_private 
*dev_priv,
 * too big for that.
 */
if (INTEL_GEN(dev_priv) >= 11) {
-   plane_width_max = 5120;
+   plane_width_max = 5120 << bigjoiner;
plane_height_max = 4320;
} else {
plane_width_max = 5120;
diff --git a/drivers/gpu/drm/i915/display/intel_display.h 
b/drivers/gpu/drm/i915/display/intel_display.h
index d10b7c8cde3f..3d860a9da8fe 100644
--- a/drivers/gpu/drm/i915/display/intel_display.h
+++ b/drivers/gpu/drm/i915/display/intel_display.h
@@ -496,7 +496,8 @@ u32 intel_plane_fb_max_stride(struct drm_i915_private 
*dev_priv,
 bool intel_plane_can_remap(const struct intel_plane_state *plane_state);
 enum drm_mode_status
 intel_mode_valid_max_plane_size(struct drm_i915_private *dev_priv,
-   const struct drm_display_mode *mode);
+   const struct drm_display_mode *mode,
+   bool bigjoiner);
 enum phy intel_port_to_phy(struct drm_i915_private *i915, enum port port);
 bool is_trans_port_sync_mode(const struct intel_crtc_state *state);
 
diff --git a/drivers/gpu/drm/i915/display/intel_dp.c 
b/drivers/gpu/drm/i915/display/intel_dp.c
index 8a522edd7386..af2ff425e5d5 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -247,6 +247,29 @@ intel_dp_max_data_rate(int max_link_clock, int max_lanes)
return max_link_clock * max_lanes;
 }
 
+static int source_max_dotclock(struct intel_dp *intel_dp, bool allow_bigjoiner)
+{
+   struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
+   struct intel_encoder *encoder = &intel_dig_port->base;
+   struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+
+   if (allow_bigjoiner && INTEL_GEN(dev_priv) >= 11 && 
!intel_dp_is_edp(intel_dp))
+   return 2 * dev_priv->max_dotclk_freq;
+
+   return dev_priv->max_dotclk_freq;
+}
+
+static int
+intel_dp_max_dotclock(struct intel_dp *intel_dp, bool allow_bigjoiner)
+{
+   int max_dotclk = source_max_dotclock(intel_dp, allow_bigjoiner);
+
+   if (intel_dp->dfp.max_dotclock)
+   return min(max_dotclk, intel_dp->dfp.max_dotclock);
+
+   return max_dotclk;
+}
+
 static int cnl_max_source_rate(struct intel_dp *intel_dp)
 {
struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp);
@@ -512,7 +535,8 @@ small_joiner_ram_size_bits(struct drm_i915_private *i915)
 
 static u16 intel_dp_dsc_get_output_bpp(struct drm_i915_private *i915,
   u32 link_clock, u32 lane_count,
-  u32 mode_clock, u32 mode_hdisplay)
+  u32 mode_clock, u32 mode_hdisplay,
+  bool bigjoiner)
 {
u32 bits_per_pixel, max_bpp_small_joiner_ram;
int i;
@@ -530,6 +554,10 @@ static u16 intel_dp_dsc_get_output_bpp(struct 
drm_i915_private *i915,
/* Small Joiner Check: output bpp <= joiner RAM (bits) / Horiz.

[Intel-gfx] [PATCH v10 08/11] drm/i915: Link planes in a bigjoiner configuration, v3.

2020-10-08 Thread Manasi Navare
From: Maarten Lankhorst 

 Make sure that when a plane is set in a bigjoiner mode, we will add
 their counterpart to the atomic state as well. This will allow us to
 make sure all state is available when planes are checked.

Because of the funny interactions with bigjoiner and planar YUV
formats, we may end up adding a lot of planes, so we have to keep
iterating until we no longer add any planes.

Also fix the atomic intel plane iterator, so things watermarks start
working automagically.

v6:
* Fix from_plane_state assignments (Manasi)
v5:
* Rebase after adding sagv support (Manasi)
v4:
* Manual rebase (Manasi)
Changes since v1:
- Rebase on top of plane_state split, cleaning up the code a lot.
- Make intel_atomic_crtc_state_for_each_plane_state() bigjoiner capable.
- Add iter macro to intel_atomic_crtc_state_for_each_plane_state() to
  keep iteration working.
Changes since v2:
- Add icl_(un)set_bigjoiner_plane_links, to make it more clear where
  links are made and broken.

Signed-off-by: Maarten Lankhorst 
Signed-off-by: Manasi Navare 
---
 .../gpu/drm/i915/display/intel_atomic_plane.c |  53 -
 .../gpu/drm/i915/display/intel_atomic_plane.h |   3 +-
 drivers/gpu/drm/i915/display/intel_display.c  | 207 --
 drivers/gpu/drm/i915/display/intel_display.h  |  20 +-
 .../drm/i915/display/intel_display_types.h|  11 +
 drivers/gpu/drm/i915/intel_pm.c   |  20 +-
 6 files changed, 274 insertions(+), 40 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_atomic_plane.c 
b/drivers/gpu/drm/i915/display/intel_atomic_plane.c
index 6bd8e6cdd477..a8f1fd85a6c0 100644
--- a/drivers/gpu/drm/i915/display/intel_atomic_plane.c
+++ b/drivers/gpu/drm/i915/display/intel_atomic_plane.c
@@ -246,12 +246,17 @@ static void intel_plane_clear_hw_state(struct 
intel_plane_state *plane_state)
memset(&plane_state->hw, 0, sizeof(plane_state->hw));
 }
 
-void intel_plane_copy_uapi_to_hw_state(struct intel_plane_state *plane_state,
+void intel_plane_copy_uapi_to_hw_state(const struct intel_crtc_state 
*crtc_state,
+  struct intel_plane_state *plane_state,
   const struct intel_plane_state 
*from_plane_state)
 {
intel_plane_clear_hw_state(plane_state);
 
-   plane_state->hw.crtc = from_plane_state->uapi.crtc;
+   if (from_plane_state->uapi.crtc)
+   plane_state->hw.crtc = crtc_state->uapi.crtc;
+   else
+   plane_state->hw.crtc = NULL;
+
plane_state->hw.fb = from_plane_state->uapi.fb;
if (plane_state->hw.fb)
drm_framebuffer_get(plane_state->hw.fb);
@@ -319,15 +324,36 @@ int intel_plane_atomic_check_with_state(const struct 
intel_crtc_state *old_crtc_
 }
 
 static struct intel_crtc *
-get_crtc_from_states(const struct intel_plane_state *old_plane_state,
+get_crtc_from_states(struct intel_atomic_state *state,
+const struct intel_plane_state *old_plane_state,
 const struct intel_plane_state *new_plane_state)
 {
+   struct drm_i915_private *dev_priv = to_i915(state->base.dev);
+   struct intel_plane *plane = to_intel_plane(new_plane_state->uapi.plane);
+
if (new_plane_state->uapi.crtc)
return to_intel_crtc(new_plane_state->uapi.crtc);
 
if (old_plane_state->uapi.crtc)
return to_intel_crtc(old_plane_state->uapi.crtc);
 
+   if (new_plane_state->bigjoiner_slave) {
+   const struct intel_plane_state *new_master_plane_state =
+   intel_atomic_get_new_plane_state(state, 
new_plane_state->bigjoiner_plane);
+
+   /* need to use uapi here, new_master_plane_state might not be 
copied to hw yet */
+   if (new_master_plane_state->uapi.crtc)
+   return intel_get_crtc_for_pipe(dev_priv, plane->pipe);
+   }
+
+   if (old_plane_state->bigjoiner_slave) {
+   const struct intel_plane_state *old_master_plane_state =
+   intel_atomic_get_old_plane_state(state, 
old_plane_state->bigjoiner_plane);
+
+   if (old_master_plane_state->uapi.crtc)
+   return intel_get_crtc_for_pipe(dev_priv, plane->pipe);
+   }
+
return NULL;
 }
 
@@ -338,18 +364,33 @@ int intel_plane_atomic_check(struct intel_atomic_state 
*state,
intel_atomic_get_new_plane_state(state, plane);
const struct intel_plane_state *old_plane_state =
intel_atomic_get_old_plane_state(state, plane);
+   const struct intel_plane_state *new_master_plane_state;
struct intel_crtc *crtc =
-   get_crtc_from_states(old_plane_state, new_plane_state);
+   get_crtc_from_states(state, old_plane_state,
+new_plane_state);
const struct intel_crtc_state *old_crtc_state;
struct intel_crtc_state *new_crtc_state;
 
-   intel_plane_copy_uapi_to_hw_state(

[Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [v3,1/3] drm/i915/vbt: Fix backlight parsing for VBT 234+

2020-10-08 Thread Patchwork
== Series Details ==

Series: series starting with [v3,1/3] drm/i915/vbt: Fix backlight parsing for 
VBT 234+
URL   : https://patchwork.freedesktop.org/series/82482/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_9113 -> Patchwork_18661


Summary
---

  **SUCCESS**

  No regressions found.

  External URL: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18661/index.html

Known issues


  Here are the changes found in Patchwork_18661 that come from known issues:

### IGT changes ###

 Issues hit 

  * igt@i915_module_load@reload:
- fi-apl-guc: [PASS][1] -> [DMESG-WARN][2] ([i915#1635] / 
[i915#1982]) +1 similar issue
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-apl-guc/igt@i915_module_l...@reload.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18661/fi-apl-guc/igt@i915_module_l...@reload.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
- fi-bsw-kefka:   [PASS][3] -> [DMESG-WARN][4] ([i915#1982])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-bsw-kefka/igt@kms_cursor_leg...@basic-busy-flip-before-cursor-atomic.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18661/fi-bsw-kefka/igt@kms_cursor_leg...@basic-busy-flip-before-cursor-atomic.html

  * igt@kms_flip@basic-flip-vs-wf_vblank@c-edp1:
- fi-icl-u2:  [PASS][5] -> [DMESG-WARN][6] ([i915#1982])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-icl-u2/igt@kms_flip@basic-flip-vs-wf_vbl...@c-edp1.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18661/fi-icl-u2/igt@kms_flip@basic-flip-vs-wf_vbl...@c-edp1.html

  
 Possible fixes 

  * {igt@core_hotunplug@unbind-rebind}:
- fi-icl-y:   [DMESG-WARN][7] ([i915#1982]) -> [PASS][8]
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-icl-y/igt@core_hotunp...@unbind-rebind.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18661/fi-icl-y/igt@core_hotunp...@unbind-rebind.html

  * igt@gem_exec_suspend@basic-s3:
- fi-skl-lmem:[INCOMPLETE][9] ([i915#198]) -> [PASS][10]
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-skl-lmem/igt@gem_exec_susp...@basic-s3.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18661/fi-skl-lmem/igt@gem_exec_susp...@basic-s3.html

  * igt@i915_pm_rpm@basic-pci-d3-state:
- fi-bsw-kefka:   [DMESG-WARN][11] ([i915#1982]) -> [PASS][12]
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-bsw-kefka/igt@i915_pm_...@basic-pci-d3-state.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18661/fi-bsw-kefka/igt@i915_pm_...@basic-pci-d3-state.html

  * igt@kms_busy@basic@flip:
- {fi-tgl-dsi}:   [DMESG-WARN][13] ([i915#1982]) -> [PASS][14]
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-tgl-dsi/igt@kms_busy@ba...@flip.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18661/fi-tgl-dsi/igt@kms_busy@ba...@flip.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
- fi-bsw-n3050:   [DMESG-WARN][15] ([i915#1982]) -> [PASS][16]
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-bsw-n3050/igt@kms_cursor_leg...@basic-busy-flip-before-cursor-atomic.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18661/fi-bsw-n3050/igt@kms_cursor_leg...@basic-busy-flip-before-cursor-atomic.html
- {fi-kbl-7560u}: [DMESG-WARN][17] ([i915#1982]) -> [PASS][18]
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-kbl-7560u/igt@kms_cursor_leg...@basic-busy-flip-before-cursor-atomic.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18661/fi-kbl-7560u/igt@kms_cursor_leg...@basic-busy-flip-before-cursor-atomic.html
- fi-icl-u2:  [DMESG-WARN][19] ([i915#1982]) -> [PASS][20]
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-icl-u2/igt@kms_cursor_leg...@basic-busy-flip-before-cursor-atomic.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18661/fi-icl-u2/igt@kms_cursor_leg...@basic-busy-flip-before-cursor-atomic.html

  
 Warnings 

  * igt@gem_exec_suspend@basic-s0:
- fi-kbl-x1275:   [DMESG-WARN][21] ([i915#62] / [i915#92]) -> 
[DMESG-WARN][22] ([i915#1982] / [i915#62] / [i915#92] / [i915#95])
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-kbl-x1275/igt@gem_exec_susp...@basic-s0.html
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18661/fi-kbl-x1275/igt@gem_exec_susp...@basic-s0.html

  * igt@i915_pm_rpm@module-reload:
- fi-kbl-x1275:   [DMESG-FAIL][23] ([i915#62]) -> [DMESG-FAIL][24] 
([i915#62] / [i915#95])
   [23]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-kbl-x1275/igt@i915_pm_...@module-reload.html
   [24]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18661/fi-kbl-x1275/igt@i915_pm_...@module-reload.html

  * igt@km

[Intel-gfx] [PATCH i-g-t] prime_vgem: Check that we wrap the vgem mmap with userptr

2020-10-08 Thread Chris Wilson
This came up in a discussion about importing virtio dma-buf, which are
themselves plain shmemfs objects and so not only backed by struct pages,
but wrappable by userptr. vgem share the same properties and so should
serve as a useful proxy for testing.

Signed-off-by: Chris Wilson 
Cc: "Graunke, Kenneth W" ,
Cc: "Lahtinen, Joonas" 
Cc: "Kondapally, Kalyan" 
---
 tests/intel-ci/fast-feedback.testlist |  1 +
 tests/prime_vgem.c| 42 +++
 2 files changed, 43 insertions(+)

diff --git a/tests/intel-ci/fast-feedback.testlist 
b/tests/intel-ci/fast-feedback.testlist
index aa2eb3295..982d25834 100644
--- a/tests/intel-ci/fast-feedback.testlist
+++ b/tests/intel-ci/fast-feedback.testlist
@@ -143,6 +143,7 @@ igt@prime_vgem@basic-fence-read
 igt@prime_vgem@basic-gtt
 igt@prime_vgem@basic-read
 igt@prime_vgem@basic-write
+igt@prime_vgem@basic-userptr
 igt@vgem_basic@setversion
 igt@vgem_basic@create
 igt@vgem_basic@debugfs
diff --git a/tests/prime_vgem.c b/tests/prime_vgem.c
index 38e2026aa..425bba8fb 100644
--- a/tests/prime_vgem.c
+++ b/tests/prime_vgem.c
@@ -287,6 +287,45 @@ static void test_write(int vgem, int i915)
munmap(ptr, scratch.size);
 }
 
+static uint32_t batch_create(int i915)
+{
+   const uint32_t bbe = MI_BATCH_BUFFER_END;
+   uint32_t handle;
+
+   handle = gem_create(i915, 4096);
+   gem_write(i915, handle, 0, &bbe, sizeof(bbe));
+
+   return handle;
+}
+
+static void test_userptr(int vgem, int i915)
+{
+   struct vgem_bo scratch;
+   struct drm_i915_gem_exec_object2 obj[2] = {};
+   struct drm_i915_gem_execbuffer2 execbuf = {
+   .buffers_ptr = to_user_pointer(obj),
+   .buffer_count = ARRAY_SIZE(obj),
+   };
+   uint32_t *ptr;
+
+   scratch.width = 1024;
+   scratch.height = 1024;
+   scratch.bpp = 32;
+   vgem_create(vgem, &scratch);
+
+   ptr = vgem_mmap(vgem, &scratch, PROT_WRITE);
+   gem_close(vgem, scratch.handle);
+
+   gem_userptr(i915, (uint32_t *)ptr, scratch.size, 0, 0, &obj[0].handle);
+   obj[1].handle = batch_create(i915);
+
+   gem_execbuf(i915, &execbuf);
+   gem_close(i915, obj[1].handle);
+   gem_close(i915, obj[0].handle);
+
+   munmap(ptr, scratch.size);
+}
+
 static void test_gtt(int vgem, int i915)
 {
struct vgem_bo scratch;
@@ -1038,6 +1077,9 @@ igt_main
igt_subtest("basic-write")
test_write(vgem, i915);
 
+   igt_subtest("basic-userptr")
+   test_userptr(vgem, i915);
+
igt_subtest("basic-gtt") {
gem_require_mappable_ggtt(i915);
test_gtt(vgem, i915);
-- 
2.28.0

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [v10,01/11] HAX to make DSC work on the icelake test system

2020-10-08 Thread Patchwork
== Series Details ==

Series: series starting with [v10,01/11] HAX to make DSC work on the icelake 
test system
URL   : https://patchwork.freedesktop.org/series/82483/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
999aa92a11f0 HAX to make DSC work on the icelake test system
870138d57034 drm/i915/display: Rename pipe_timings to transcoder_timings
-:11: WARNING:TYPO_SPELLING: 'halfs' may be misspelled - perhaps 'halves'?
#11: 
With Bigjoiner, there are 2 pipes driving 2 halfs of 1

total: 0 errors, 1 warnings, 0 checks, 82 lines checked
d7eab67d7a38 drm/i915: Add hw.pipe_mode to allow bigjoiner pipe/transcoder split
-:7: WARNING:TYPO_SPELLING: 'halfs' may be misspelled - perhaps 'halves'?
#7: 
With bigjoiner, there will be 2 pipes driving 2 halfs of 1 transcoder,

-:134: CHECK:MULTIPLE_ASSIGNMENTS: multiple assignments should be avoided
#134: FILE: drivers/gpu/drm/i915/display/intel_display.c:13355:
+   crtc_state->hw.pipe_mode = crtc_state->hw.adjusted_mode = 
crtc_state->uapi.adjusted_mode;

total: 0 errors, 1 warnings, 1 checks, 364 lines checked
03231e226425 drm/i915/dp: Allow big joiner modes in intel_dp_mode_valid(), v3.
0f128ffd6e7b drm/i915: Try to make bigjoiner work in atomic check
-:145: WARNING:LONG_LINE: line length of 101 exceeds 100 columns
#145: FILE: drivers/gpu/drm/i915/display/intel_display.c:13367:
+ 
crtc_state->bigjoiner_linked_crtc);

-:205: CHECK:MULTIPLE_ASSIGNMENTS: multiple assignments should be avoided
#205: FILE: drivers/gpu/drm/i915/display/intel_display.c:13438:
+   crtc_state->nv12_planes = crtc_state->c8_planes = 
crtc_state->update_planes = 0;

-:300: CHECK:MULTIPLE_ASSIGNMENTS: multiple assignments should be avoided
#300: FILE: drivers/gpu/drm/i915/display/intel_display.c:15045:
+   slave = new_crtc_state->bigjoiner_linked_crtc =

-:334: CHECK:MULTIPLE_ASSIGNMENTS: multiple assignments should be avoided
#334: FILE: drivers/gpu/drm/i915/display/intel_display.c:15079:
+   slave_crtc_state->bigjoiner = master_crtc_state->bigjoiner = 
false;

-:335: CHECK:MULTIPLE_ASSIGNMENTS: multiple assignments should be avoided
#335: FILE: drivers/gpu/drm/i915/display/intel_display.c:15080:
+   slave_crtc_state->bigjoiner_slave = 
master_crtc_state->bigjoiner_slave = false;

-:336: WARNING:LONG_LINE: line length of 106 exceeds 100 columns
#336: FILE: drivers/gpu/drm/i915/display/intel_display.c:15081:
+   slave_crtc_state->bigjoiner_linked_crtc = 
master_crtc_state->bigjoiner_linked_crtc = NULL;

-:336: CHECK:MULTIPLE_ASSIGNMENTS: multiple assignments should be avoided
#336: FILE: drivers/gpu/drm/i915/display/intel_display.c:15081:
+   slave_crtc_state->bigjoiner_linked_crtc = 
master_crtc_state->bigjoiner_linked_crtc = NULL;

-:391: WARNING:BRACES: braces {} are not necessary for any arm of this statement
#391: FILE: drivers/gpu/drm/i915/display/intel_display.c:15615:
+   if (new_crtc_state->bigjoiner) {
[...]
+   } else if (INTEL_GEN(dev_priv) >= 9)
[...]
else
[...]

total: 0 errors, 3 warnings, 5 checks, 403 lines checked
8b2c9eaf5fbf drm/i915: Enable big joiner support in enable and disable 
sequences.
-:186: WARNING:LONG_LINE_COMMENT: line length of 106 exceeds 100 columns
#186: FILE: drivers/gpu/drm/i915/display/intel_ddi.c:4534:
+   /* Our own transcoder needs to be disabled when reading it in 
intel_ddi_read_func_ctl() */

-:188: WARNING:LONG_LINE: line length of 104 exceeds 100 columns
#188: FILE: drivers/gpu/drm/i915/display/intel_ddi.c:4536:
+   pipe_config->cpu_transcoder = (enum 
transcoder)pipe_config->bigjoiner_linked_crtc->pipe;

-:839: CHECK:SPACING: spaces preferred around that '<<' (ctx:VxV)
#839: FILE: drivers/gpu/drm/i915/display/intel_display_types.h:841:
+#define PIPE_CONFIG_QUIRK_BIGJOINER_SLAVE  (1<<1) /* bigjoiner slave, 
partial readout */
  ^

total: 0 errors, 2 warnings, 1 checks, 1033 lines checked
9bf5d4cad324 drm/i915: Make hardware readout work on i915.
-:33: WARNING:TABSTOP: Statements should start on a tabstop
#33: FILE: drivers/gpu/drm/i915/display/intel_display.c:3622:
+struct intel_crtc_state *crtc_state =

-:76: WARNING:LONG_LINE: line length of 111 exceeds 100 columns
#76: FILE: drivers/gpu/drm/i915/display/intel_display.c:10811:
+   (intel_de_read(dev_priv, PLANE_SURF(pipe, plane_id)) & 
0xf000) == plane_config->base) {

total: 0 errors, 2 warnings, 0 checks, 118 lines checked
6f55653a6e1f drm/i915: Link planes in a bigjoiner configuration, v3.
-:206: ERROR:CODE_INDENT: code indent should use tabs where possible
#206: FILE: drivers/gpu/drm/i915/display/intel_display.c:12752:
+ * Setup and teardown the new bigjoiner plane mappings.$

-:207: ERROR:CODE_INDENT: code indent should use tabs where possible
#207: FILE: drivers/gpu/drm/i915/display/intel_display.c:12753:
+ */$

-:292: 

[Intel-gfx] ✗ Fi.CI.SPARSE: warning for series starting with [v10,01/11] HAX to make DSC work on the icelake test system

2020-10-08 Thread Patchwork
== Series Details ==

Series: series starting with [v10,01/11] HAX to make DSC work on the icelake 
test system
URL   : https://patchwork.freedesktop.org/series/82483/
State : warning

== Summary ==

$ dim sparse --fast origin/drm-tip
Sparse version: v0.6.2
Fast mode used, each commit won't be checked separately.
-
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:1019:47:expected unsigned int 
[addressable] [usertype] ulClockParams
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:1019:47:got restricted __le32 
[usertype]
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:1019:47: warning: incorrect type 
in assignment (different base types)
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:1028:50: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:1029:49: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:1037:47: warning: too many 
warnings
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:184:44: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:283:14: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:320:14: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:323:14: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:326:14: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:329:18: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:330:26: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:338:30: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:340:38: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:342:30: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:346:30: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:348:30: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:353:33: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:367:43: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:369:38: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:374:67: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:375:53: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:378:66: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:389:80: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:395:57: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:402:69: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:403:53: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:406:66: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:414:66: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:423:69: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:424:69: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:473:30: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:476:45: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:477:45: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:484:54: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:52:28: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:531:35: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:53:29: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:533:25: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:54:26: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:55:27: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:56:25: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:57:26: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:577:21: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:581:25: warning: cast to 
restricted __le32
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:58:25: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:583:21: warning: cast to 
restricted __le32
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:586:25: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:590:25: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:59:26: warning: cast to 
restricted __le16
+drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c:

[Intel-gfx] [PATCH i-g-t v2] prime_vgem: Check that we wrap the vgem mmap with userptr

2020-10-08 Thread Chris Wilson
This came up in a discussion about importing virtio dma-buf, which are
themselves plain shmemfs objects and so not only backed by struct pages,
but wrappable by userptr. vgem share the same properties and so should
serve as a useful proxy for testing.

Signed-off-by: Chris Wilson 
Cc: "Graunke, Kenneth W" ,
Cc: "Lahtinen, Joonas" 
Cc: "Kondapally, Kalyan" 
---
v2: Reuse the imported vgem as the batch, to truly test whether we
acquire the right pages.
---
 tests/intel-ci/fast-feedback.testlist |  1 +
 tests/prime_vgem.c| 29 +++
 2 files changed, 30 insertions(+)

diff --git a/tests/intel-ci/fast-feedback.testlist 
b/tests/intel-ci/fast-feedback.testlist
index aa2eb3295..982d25834 100644
--- a/tests/intel-ci/fast-feedback.testlist
+++ b/tests/intel-ci/fast-feedback.testlist
@@ -143,6 +143,7 @@ igt@prime_vgem@basic-fence-read
 igt@prime_vgem@basic-gtt
 igt@prime_vgem@basic-read
 igt@prime_vgem@basic-write
+igt@prime_vgem@basic-userptr
 igt@vgem_basic@setversion
 igt@vgem_basic@create
 igt@vgem_basic@debugfs
diff --git a/tests/prime_vgem.c b/tests/prime_vgem.c
index 38e2026aa..3a39657e4 100644
--- a/tests/prime_vgem.c
+++ b/tests/prime_vgem.c
@@ -287,6 +287,32 @@ static void test_write(int vgem, int i915)
munmap(ptr, scratch.size);
 }
 
+static void test_userptr(int vgem, int i915)
+{
+   struct vgem_bo scratch;
+   struct drm_i915_gem_exec_object2 obj = {};
+   struct drm_i915_gem_execbuffer2 execbuf = {
+   .buffers_ptr = to_user_pointer(&obj),
+   .buffer_count = 1,
+   };
+   uint32_t *ptr;
+
+   scratch.width = 1024;
+   scratch.height = 1024;
+   scratch.bpp = 32;
+   vgem_create(vgem, &scratch);
+
+   ptr = vgem_mmap(vgem, &scratch, PROT_WRITE);
+   gem_close(vgem, scratch.handle);
+   *ptr = MI_BATCH_BUFFER_END;
+
+   gem_userptr(i915, ptr, scratch.size, 0, 0, &obj.handle);
+   gem_execbuf(i915, &execbuf);
+   gem_close(i915, obj.handle);
+
+   munmap(ptr, scratch.size);
+}
+
 static void test_gtt(int vgem, int i915)
 {
struct vgem_bo scratch;
@@ -1038,6 +1064,9 @@ igt_main
igt_subtest("basic-write")
test_write(vgem, i915);
 
+   igt_subtest("basic-userptr")
+   test_userptr(vgem, i915);
+
igt_subtest("basic-gtt") {
gem_require_mappable_ggtt(i915);
test_gtt(vgem, i915);
-- 
2.28.0

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH][next] drm/i915/display: Use fallthrough pseudo-keyword

2020-10-08 Thread Gustavo A. R. Silva
In order to enable -Wimplicit-fallthrough for Clang[1], replace the
existing /* fall through */ comments with the new pseudo-keyword
macro fallthrough[2].

[1] https://git.kernel.org/linus/e2079e93f562c7f7a030eb7642017ee5eabaaa10
[2] 
https://www.kernel.org/doc/html/v5.7/process/deprecated.html?highlight=fallthrough#implicit-switch-case-fall-through

Signed-off-by: Gustavo A. R. Silva 
---
 drivers/gpu/drm/i915/display/intel_ddi.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c 
b/drivers/gpu/drm/i915/display/intel_ddi.c
index 4d06178cd76c..2941051ac3e1 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi.c
@@ -1090,7 +1090,7 @@ ehl_get_combo_buf_trans(struct intel_encoder *encoder, 
int type, int rate,
return icl_combo_phy_ddi_translations_edp_hbr2;
}
}
-   /* fall through */
+   fallthrough;
default:
/* All combo DP and eDP ports that do not support low_vswing */
*n_entries = ARRAY_SIZE(ehl_combo_phy_ddi_translations_dp);
@@ -1126,7 +1126,7 @@ tgl_get_combo_buf_trans(struct intel_encoder *encoder, 
int type, int rate,
*n_entries = 
ARRAY_SIZE(icl_combo_phy_ddi_translations_edp_hbr2);
return icl_combo_phy_ddi_translations_edp_hbr2;
}
-   /* fall through */
+   fallthrough;
default:
/* All combo DP and eDP ports that do not support low_vswing */
if (rate > 27) {
-- 
2.27.0

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [v10,01/11] HAX to make DSC work on the icelake test system

2020-10-08 Thread Patchwork
== Series Details ==

Series: series starting with [v10,01/11] HAX to make DSC work on the icelake 
test system
URL   : https://patchwork.freedesktop.org/series/82483/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_9113 -> Patchwork_18662


Summary
---

  **SUCCESS**

  No regressions found.

  External URL: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18662/index.html

Known issues


  Here are the changes found in Patchwork_18662 that come from known issues:

### IGT changes ###

 Issues hit 

  * igt@i915_pm_rpm@module-reload:
- fi-bsw-n3050:   [PASS][1] -> [DMESG-WARN][2] ([i915#1982])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-bsw-n3050/igt@i915_pm_...@module-reload.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18662/fi-bsw-n3050/igt@i915_pm_...@module-reload.html
- fi-bxt-dsi: [PASS][3] -> [DMESG-WARN][4] ([i915#1635] / 
[i915#1982])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-bxt-dsi/igt@i915_pm_...@module-reload.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18662/fi-bxt-dsi/igt@i915_pm_...@module-reload.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
- fi-icl-u2:  [PASS][5] -> [DMESG-WARN][6] ([i915#1982])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-icl-u2/igt@kms_cursor_leg...@basic-busy-flip-before-cursor-legacy.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18662/fi-icl-u2/igt@kms_cursor_leg...@basic-busy-flip-before-cursor-legacy.html

  
 Possible fixes 

  * {igt@core_hotunplug@unbind-rebind}:
- fi-icl-y:   [DMESG-WARN][7] ([i915#1982]) -> [PASS][8]
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-icl-y/igt@core_hotunp...@unbind-rebind.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18662/fi-icl-y/igt@core_hotunp...@unbind-rebind.html

  * igt@gem_exec_suspend@basic-s3:
- fi-skl-lmem:[INCOMPLETE][9] ([i915#198]) -> [PASS][10]
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-skl-lmem/igt@gem_exec_susp...@basic-s3.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18662/fi-skl-lmem/igt@gem_exec_susp...@basic-s3.html

  * igt@kms_busy@basic@flip:
- fi-kbl-x1275:   [DMESG-WARN][11] ([i915#62] / [i915#92] / [i915#95]) 
-> [PASS][12]
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-kbl-x1275/igt@kms_busy@ba...@flip.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18662/fi-kbl-x1275/igt@kms_busy@ba...@flip.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
- fi-bsw-n3050:   [DMESG-WARN][13] ([i915#1982]) -> [PASS][14]
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-bsw-n3050/igt@kms_cursor_leg...@basic-busy-flip-before-cursor-atomic.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18662/fi-bsw-n3050/igt@kms_cursor_leg...@basic-busy-flip-before-cursor-atomic.html

  * igt@vgem_basic@unload:
- fi-skl-guc: [DMESG-WARN][15] ([i915#2203]) -> [PASS][16]
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-skl-guc/igt@vgem_ba...@unload.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18662/fi-skl-guc/igt@vgem_ba...@unload.html

  
 Warnings 

  * igt@gem_exec_suspend@basic-s0:
- fi-kbl-x1275:   [DMESG-WARN][17] ([i915#62] / [i915#92]) -> 
[DMESG-WARN][18] ([i915#62] / [i915#92] / [i915#95]) +2 similar issues
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-kbl-x1275/igt@gem_exec_susp...@basic-s0.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18662/fi-kbl-x1275/igt@gem_exec_susp...@basic-s0.html

  * igt@i915_pm_rpm@module-reload:
- fi-kbl-x1275:   [DMESG-FAIL][19] ([i915#62]) -> [SKIP][20] 
([fdo#109271])
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-kbl-x1275/igt@i915_pm_...@module-reload.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18662/fi-kbl-x1275/igt@i915_pm_...@module-reload.html

  * igt@kms_force_connector_basic@prune-stale-modes:
- fi-kbl-x1275:   [DMESG-WARN][21] ([i915#62] / [i915#92] / [i915#95]) 
-> [DMESG-WARN][22] ([i915#62] / [i915#92]) +6 similar issues
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-kbl-x1275/igt@kms_force_connector_ba...@prune-stale-modes.html
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18662/fi-kbl-x1275/igt@kms_force_connector_ba...@prune-stale-modes.html

  * igt@vgem_basic@unload:
- fi-kbl-x1275:   [DMESG-WARN][23] ([i915#62] / [i915#92]) -> 
[DMESG-WARN][24] ([i915#95])
   [23]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/fi-kbl-x1275/igt@vgem_ba...@unload.html
   [24]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18662/fi-kbl-x1275/igt@vgem_ba...@unload.html

  
  {name}: This element is sup

[Intel-gfx] ✗ Fi.CI.BUILD: failure for drm/i915/display: Use fallthrough pseudo-keyword

2020-10-08 Thread Patchwork
== Series Details ==

Series: drm/i915/display: Use fallthrough pseudo-keyword
URL   : https://patchwork.freedesktop.org/series/82486/
State : failure

== Summary ==

Applying: drm/i915/display: Use fallthrough pseudo-keyword
Using index info to reconstruct a base tree...
M   drivers/gpu/drm/i915/display/intel_ddi.c
Falling back to patching base and 3-way merge...
Auto-merging drivers/gpu/drm/i915/display/intel_ddi.c
CONFLICT (content): Merge conflict in drivers/gpu/drm/i915/display/intel_ddi.c
error: Failed to merge in the changes.
hint: Use 'git am --show-current-patch=diff' to see the failed patch
Patch failed at 0001 drm/i915/display: Use fallthrough pseudo-keyword
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".


___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH i-g-t v3] prime_vgem: Check that we wrap the vgem mmap with userptr

2020-10-08 Thread Chris Wilson
This came up in a discussion about importing virtio dma-buf, which are
themselves plain shmemfs objects and so not only backed by struct pages,
but wrappable by userptr. vgem share the same properties and so should
serve as a useful proxy for testing.

Signed-off-by: Chris Wilson 
Cc: "Graunke, Kenneth W" ,
Cc: "Lahtinen, Joonas" 
Cc: "Kondapally, Kalyan" 
---
 tests/intel-ci/fast-feedback.testlist |  1 +
 tests/prime_vgem.c| 31 +++
 2 files changed, 32 insertions(+)

diff --git a/tests/intel-ci/fast-feedback.testlist 
b/tests/intel-ci/fast-feedback.testlist
index aa2eb3295..982d25834 100644
--- a/tests/intel-ci/fast-feedback.testlist
+++ b/tests/intel-ci/fast-feedback.testlist
@@ -143,6 +143,7 @@ igt@prime_vgem@basic-fence-read
 igt@prime_vgem@basic-gtt
 igt@prime_vgem@basic-read
 igt@prime_vgem@basic-write
+igt@prime_vgem@basic-userptr
 igt@vgem_basic@setversion
 igt@vgem_basic@create
 igt@vgem_basic@debugfs
diff --git a/tests/prime_vgem.c b/tests/prime_vgem.c
index 38e2026aa..bc74d6844 100644
--- a/tests/prime_vgem.c
+++ b/tests/prime_vgem.c
@@ -287,6 +287,34 @@ static void test_write(int vgem, int i915)
munmap(ptr, scratch.size);
 }
 
+static void test_userptr(int vgem, int i915)
+{
+   struct vgem_bo scratch;
+   struct drm_i915_gem_exec_object2 obj = {};
+   struct drm_i915_gem_execbuffer2 execbuf = {
+   .buffers_ptr = to_user_pointer(&obj),
+   .buffer_count = 1,
+   };
+   uint32_t *ptr;
+
+   scratch.width = 1024;
+   scratch.height = 1024;
+   scratch.bpp = 32;
+   vgem_create(vgem, &scratch);
+
+   ptr = vgem_mmap(vgem, &scratch, PROT_WRITE);
+   gem_close(vgem, scratch.handle);
+   *ptr = MI_BATCH_BUFFER_END;
+
+   gem_userptr(i915, ptr, scratch.size, 0, 0, &obj.handle);
+   gem_set_caching(i915, obj.handle, I915_CACHING_NONE); /* for exec */
+
+   gem_execbuf(i915, &execbuf);
+   gem_close(i915, obj.handle);
+
+   munmap(ptr, scratch.size);
+}
+
 static void test_gtt(int vgem, int i915)
 {
struct vgem_bo scratch;
@@ -1038,6 +1066,9 @@ igt_main
igt_subtest("basic-write")
test_write(vgem, i915);
 
+   igt_subtest("basic-userptr")
+   test_userptr(vgem, i915);
+
igt_subtest("basic-gtt") {
gem_require_mappable_ggtt(i915);
test_gtt(vgem, i915);
-- 
2.28.0

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✓ Fi.CI.IGT: success for series starting with [v3,1/3] drm/i915/vbt: Fix backlight parsing for VBT 234+

2020-10-08 Thread Patchwork
== Series Details ==

Series: series starting with [v3,1/3] drm/i915/vbt: Fix backlight parsing for 
VBT 234+
URL   : https://patchwork.freedesktop.org/series/82482/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_9113_full -> Patchwork_18661_full


Summary
---

  **SUCCESS**

  No regressions found.

  

Known issues


  Here are the changes found in Patchwork_18661_full that come from known 
issues:

### IGT changes ###

 Issues hit 

  * igt@gen9_exec_parse@allowed-single:
- shard-skl:  [PASS][1] -> [DMESG-WARN][2] ([i915#1436] / 
[i915#716])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-skl2/igt@gen9_exec_pa...@allowed-single.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18661/shard-skl8/igt@gen9_exec_pa...@allowed-single.html

  * igt@i915_module_load@reload:
- shard-hsw:  [PASS][3] -> [DMESG-WARN][4] ([i915#1982])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-hsw2/igt@i915_module_l...@reload.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18661/shard-hsw8/igt@i915_module_l...@reload.html

  * igt@i915_pm_dc@dc6-psr:
- shard-skl:  [PASS][5] -> [FAIL][6] ([i915#454])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-skl7/igt@i915_pm...@dc6-psr.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18661/shard-skl6/igt@i915_pm...@dc6-psr.html

  * igt@i915_suspend@fence-restore-untiled:
- shard-skl:  [PASS][7] -> [INCOMPLETE][8] ([i915#198])
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-skl4/igt@i915_susp...@fence-restore-untiled.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18661/shard-skl2/igt@i915_susp...@fence-restore-untiled.html

  * igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic:
- shard-glk:  [PASS][9] -> [FAIL][10] ([i915#72])
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-glk4/igt@kms_cursor_leg...@2x-long-flip-vs-cursor-atomic.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18661/shard-glk2/igt@kms_cursor_leg...@2x-long-flip-vs-cursor-atomic.html

  * igt@kms_flip@flip-vs-blocking-wf-vblank@a-dp1:
- shard-kbl:  [PASS][11] -> [DMESG-WARN][12] ([i915#1982]) +1 
similar issue
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-kbl1/igt@kms_flip@flip-vs-blocking-wf-vbl...@a-dp1.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18661/shard-kbl1/igt@kms_flip@flip-vs-blocking-wf-vbl...@a-dp1.html

  * igt@kms_flip@flip-vs-blocking-wf-vblank@a-edp1:
- shard-skl:  [PASS][13] -> [DMESG-WARN][14] ([i915#1982]) +5 
similar issues
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-skl7/igt@kms_flip@flip-vs-blocking-wf-vbl...@a-edp1.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18661/shard-skl10/igt@kms_flip@flip-vs-blocking-wf-vbl...@a-edp1.html

  * igt@kms_flip@flip-vs-expired-vblank-interruptible@c-hdmi-a1:
- shard-glk:  [PASS][15] -> [FAIL][16] ([i915#79])
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-glk5/igt@kms_flip@flip-vs-expired-vblank-interrupti...@c-hdmi-a1.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18661/shard-glk8/igt@kms_flip@flip-vs-expired-vblank-interrupti...@c-hdmi-a1.html

  * igt@kms_flip@flip-vs-expired-vblank@a-edp1:
- shard-skl:  [PASS][17] -> [FAIL][18] ([i915#79]) +1 similar issue
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-skl3/igt@kms_flip@flip-vs-expired-vbl...@a-edp1.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18661/shard-skl9/igt@kms_flip@flip-vs-expired-vbl...@a-edp1.html

  * igt@kms_flip@flip-vs-suspend@a-dp1:
- shard-kbl:  [PASS][19] -> [INCOMPLETE][20] ([i915#155])
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-kbl7/igt@kms_flip@flip-vs-susp...@a-dp1.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18661/shard-kbl2/igt@kms_flip@flip-vs-susp...@a-dp1.html

  * igt@kms_frontbuffer_tracking@fbc-stridechange:
- shard-tglb: [PASS][21] -> [DMESG-WARN][22] ([i915#1982]) +2 
similar issues
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-tglb1/igt@kms_frontbuffer_track...@fbc-stridechange.html
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18661/shard-tglb2/igt@kms_frontbuffer_track...@fbc-stridechange.html
- shard-glk:  [PASS][23] -> [DMESG-WARN][24] ([i915#1982]) +1 
similar issue
   [23]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-glk5/igt@kms_frontbuffer_track...@fbc-stridechange.html
   [24]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18661/shard-glk8/igt@kms_frontbuffer_track...@fbc-stridechange.html

  * igt@kms_plane_alpha_blend@pipe-c-coverage-7efc:
- shard-skl:  [PASS][25] -> 

[Intel-gfx] ✓ Fi.CI.IGT: success for series starting with [v10,01/11] HAX to make DSC work on the icelake test system

2020-10-08 Thread Patchwork
== Series Details ==

Series: series starting with [v10,01/11] HAX to make DSC work on the icelake 
test system
URL   : https://patchwork.freedesktop.org/series/82483/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_9113_full -> Patchwork_18662_full


Summary
---

  **SUCCESS**

  No regressions found.

  

Known issues


  Here are the changes found in Patchwork_18662_full that come from known 
issues:

### IGT changes ###

 Issues hit 

  * igt@gem_huc_copy@huc-copy:
- shard-tglb: [PASS][1] -> [SKIP][2] ([i915#2190])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-tglb7/igt@gem_huc_c...@huc-copy.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18662/shard-tglb6/igt@gem_huc_c...@huc-copy.html

  * igt@gem_tiled_pread_pwrite:
- shard-iclb: [PASS][3] -> [DMESG-WARN][4] ([i915#1982])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-iclb8/igt@gem_tiled_pread_pwrite.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18662/shard-iclb2/igt@gem_tiled_pread_pwrite.html

  * igt@gen9_exec_parse@allowed-all:
- shard-skl:  [PASS][5] -> [DMESG-WARN][6] ([i915#1436] / 
[i915#716])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-skl5/igt@gen9_exec_pa...@allowed-all.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18662/shard-skl2/igt@gen9_exec_pa...@allowed-all.html

  * igt@i915_pm_dc@dc6-psr:
- shard-skl:  [PASS][7] -> [FAIL][8] ([i915#454])
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-skl7/igt@i915_pm...@dc6-psr.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18662/shard-skl10/igt@i915_pm...@dc6-psr.html

  * igt@kms_cursor_edge_walk@pipe-b-128x128-bottom-edge:
- shard-kbl:  [PASS][9] -> [DMESG-WARN][10] ([i915#1982]) +1 
similar issue
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-kbl1/igt@kms_cursor_edge_w...@pipe-b-128x128-bottom-edge.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18662/shard-kbl6/igt@kms_cursor_edge_w...@pipe-b-128x128-bottom-edge.html

  * igt@kms_cursor_legacy@flip-vs-cursor-busy-crc-atomic:
- shard-glk:  [PASS][11] -> [DMESG-WARN][12] ([i915#1982]) +2 
similar issues
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-glk9/igt@kms_cursor_leg...@flip-vs-cursor-busy-crc-atomic.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18662/shard-glk8/igt@kms_cursor_leg...@flip-vs-cursor-busy-crc-atomic.html

  * igt@kms_cursor_legacy@pipe-c-torture-bo:
- shard-tglb: [PASS][13] -> [DMESG-WARN][14] ([i915#128])
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-tglb8/igt@kms_cursor_leg...@pipe-c-torture-bo.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18662/shard-tglb8/igt@kms_cursor_leg...@pipe-c-torture-bo.html

  * igt@kms_flip@flip-vs-blocking-wf-vblank@a-edp1:
- shard-skl:  [PASS][15] -> [DMESG-WARN][16] ([i915#1982]) +3 
similar issues
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-skl7/igt@kms_flip@flip-vs-blocking-wf-vbl...@a-edp1.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18662/shard-skl4/igt@kms_flip@flip-vs-blocking-wf-vbl...@a-edp1.html

  * igt@kms_flip@flip-vs-expired-vblank@b-edp1:
- shard-skl:  [PASS][17] -> [FAIL][18] ([i915#79])
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-skl3/igt@kms_flip@flip-vs-expired-vbl...@b-edp1.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18662/shard-skl5/igt@kms_flip@flip-vs-expired-vbl...@b-edp1.html

  * igt@kms_flip@flip-vs-suspend@a-dp1:
- shard-kbl:  [PASS][19] -> [INCOMPLETE][20] ([i915#155])
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-kbl7/igt@kms_flip@flip-vs-susp...@a-dp1.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18662/shard-kbl1/igt@kms_flip@flip-vs-susp...@a-dp1.html

  * igt@kms_flip@flip-vs-suspend@b-edp1:
- shard-skl:  [PASS][21] -> [INCOMPLETE][22] ([i915#198])
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-skl1/igt@kms_flip@flip-vs-susp...@b-edp1.html
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18662/shard-skl7/igt@kms_flip@flip-vs-susp...@b-edp1.html

  * igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-mmap-wc:
- shard-tglb: [PASS][23] -> [DMESG-WARN][24] ([i915#1982]) +2 
similar issues
   [23]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9113/shard-tglb5/igt@kms_frontbuffer_track...@fbcpsr-rgb565-draw-mmap-wc.html
   [24]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18662/shard-tglb2/igt@kms_frontbuffer_track...@fbcpsr-rgb565-draw-mmap-wc.html

  * igt@kms_hdr@bpc-switch-suspend:
- shard-skl:  [PASS][25] -> [FAIL][26] ([i915#1188]) +1 similar 
issue
   [25]: