Re: [Intel-gfx] [PATCH] Revert "drm/i915: re-order if/else ladder for hpd_irq_setup"

2020-12-01 Thread Ville Syrjälä
On Mon, Nov 30, 2020 at 09:46:18PM -0800, Lucas De Marchi wrote:
> On Mon, Nov 30, 2020 at 07:46:39PM +0200, Ville Syrjälä wrote:
> >On Mon, Nov 30, 2020 at 09:31:04AM -0800, Lucas De Marchi wrote:
> >> On Mon, Nov 30, 2020 at 04:19:54PM +0200, Ville Syrjälä wrote:
> >> >On Fri, Nov 27, 2020 at 08:52:29PM -0800, Lucas De Marchi wrote:
> >> >> On Fri, Nov 27, 2020 at 02:57:48PM +, Chris Wilson wrote:
> >> >> >We now use ilk_hpd_irq_setup for all GMCH platforms that do not have
> >> >> >hotplug. These are early gen3 and gen2 devices that now explode on boot
> >> >> >as they try to access non-existent registers.
> >> >>
> >> >> humn... true, my bad. But I don't think a revert is the right fix. It
> >> >> would be much better if we would not be setting up the hpd setup
> >> >> function at all for platforms that do not have hotplug. I think a
> >> >> separate early check for I915_HAS_HOTPLUG() would be deserved.
> >> >
> >> >I think it generally leads to much less convoluted logic when we keep
> >> >gmch vs. rest separate. So I'm confused as to what we're even trying
> >> >to achieve here?
> >>
> >> 1) Stop trying to setup hotplug in a platform that doesn't have hotplug
> >> was the main focus. Later it would be better to move some of these
> >> hotplug to display/  as they are clearly display related and account for
> >> a great portion of i915_irq.c.
> >>
> >> I left the I915_HAS_HOTPLUG() in the middle by
> >> mistake, it should had been an earlier call.
> >>
> >> 2) semi-related is the move of GMCH to the middle and I guess this is
> >> what you're complaining here. I find it's cumbersome to have it
> >> separate as we go and extend these checks for newer platforms. Almost
> >> everywhere we settled on having last platform first in the if/else
> >> ladders - this makes it much more clear on how/where to add a new
> >> platform.
> >
> >You never touch the gmch path for new platforms. What could be more
> >clear than that?
> 
> the second level branch mixing the code path for new and old platform
> instead of following the convention we settled on.

The convention I care about most is "clear code" which in many
cases is best achieved with gmch vs. not split.

> But I'm ok with
> moving it back as a HAS_* check in the middle of GEN_* check is proving
> controversial.
> 
> Lucas De Marchi
> 
> >
> >-- 
> >Ville Syrjälä
> >Intel

-- 
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] Revert "drm/i915: re-order if/else ladder for hpd_irq_setup"

2020-11-30 Thread Lucas De Marchi

On Mon, Nov 30, 2020 at 07:46:39PM +0200, Ville Syrjälä wrote:

On Mon, Nov 30, 2020 at 09:31:04AM -0800, Lucas De Marchi wrote:

On Mon, Nov 30, 2020 at 04:19:54PM +0200, Ville Syrjälä wrote:
>On Fri, Nov 27, 2020 at 08:52:29PM -0800, Lucas De Marchi wrote:
>> On Fri, Nov 27, 2020 at 02:57:48PM +, Chris Wilson wrote:
>> >We now use ilk_hpd_irq_setup for all GMCH platforms that do not have
>> >hotplug. These are early gen3 and gen2 devices that now explode on boot
>> >as they try to access non-existent registers.
>>
>> humn... true, my bad. But I don't think a revert is the right fix. It
>> would be much better if we would not be setting up the hpd setup
>> function at all for platforms that do not have hotplug. I think a
>> separate early check for I915_HAS_HOTPLUG() would be deserved.
>
>I think it generally leads to much less convoluted logic when we keep
>gmch vs. rest separate. So I'm confused as to what we're even trying
>to achieve here?

1) Stop trying to setup hotplug in a platform that doesn't have hotplug
was the main focus. Later it would be better to move some of these
hotplug to display/  as they are clearly display related and account for
a great portion of i915_irq.c.

I left the I915_HAS_HOTPLUG() in the middle by
mistake, it should had been an earlier call.

2) semi-related is the move of GMCH to the middle and I guess this is
what you're complaining here. I find it's cumbersome to have it
separate as we go and extend these checks for newer platforms. Almost
everywhere we settled on having last platform first in the if/else
ladders - this makes it much more clear on how/where to add a new
platform.


You never touch the gmch path for new platforms. What could be more
clear than that?


the second level branch mixing the code path for new and old platform
instead of following the convention we settled on.  But I'm ok with
moving it back as a HAS_* check in the middle of GEN_* check is proving
controversial.

Lucas De Marchi



--
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] Revert "drm/i915: re-order if/else ladder for hpd_irq_setup"

2020-11-30 Thread Ville Syrjälä
On Mon, Nov 30, 2020 at 09:31:04AM -0800, Lucas De Marchi wrote:
> On Mon, Nov 30, 2020 at 04:19:54PM +0200, Ville Syrjälä wrote:
> >On Fri, Nov 27, 2020 at 08:52:29PM -0800, Lucas De Marchi wrote:
> >> On Fri, Nov 27, 2020 at 02:57:48PM +, Chris Wilson wrote:
> >> >We now use ilk_hpd_irq_setup for all GMCH platforms that do not have
> >> >hotplug. These are early gen3 and gen2 devices that now explode on boot
> >> >as they try to access non-existent registers.
> >>
> >> humn... true, my bad. But I don't think a revert is the right fix. It
> >> would be much better if we would not be setting up the hpd setup
> >> function at all for platforms that do not have hotplug. I think a
> >> separate early check for I915_HAS_HOTPLUG() would be deserved.
> >
> >I think it generally leads to much less convoluted logic when we keep
> >gmch vs. rest separate. So I'm confused as to what we're even trying
> >to achieve here?
> 
> 1) Stop trying to setup hotplug in a platform that doesn't have hotplug
> was the main focus. Later it would be better to move some of these
> hotplug to display/  as they are clearly display related and account for
> a great portion of i915_irq.c.
> 
> I left the I915_HAS_HOTPLUG() in the middle by
> mistake, it should had been an earlier call.
> 
> 2) semi-related is the move of GMCH to the middle and I guess this is
> what you're complaining here. I find it's cumbersome to have it
> separate as we go and extend these checks for newer platforms. Almost
> everywhere we settled on having last platform first in the if/else
> ladders - this makes it much more clear on how/where to add a new
> platform.

You never touch the gmch path for new platforms. What could be more
clear than that?

-- 
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] Revert "drm/i915: re-order if/else ladder for hpd_irq_setup"

2020-11-30 Thread Lucas De Marchi

On Mon, Nov 30, 2020 at 04:19:54PM +0200, Ville Syrjälä wrote:

On Fri, Nov 27, 2020 at 08:52:29PM -0800, Lucas De Marchi wrote:

On Fri, Nov 27, 2020 at 02:57:48PM +, Chris Wilson wrote:
>We now use ilk_hpd_irq_setup for all GMCH platforms that do not have
>hotplug. These are early gen3 and gen2 devices that now explode on boot
>as they try to access non-existent registers.

humn... true, my bad. But I don't think a revert is the right fix. It
would be much better if we would not be setting up the hpd setup
function at all for platforms that do not have hotplug. I think a
separate early check for I915_HAS_HOTPLUG() would be deserved.


I think it generally leads to much less convoluted logic when we keep
gmch vs. rest separate. So I'm confused as to what we're even trying
to achieve here?


1) Stop trying to setup hotplug in a platform that doesn't have hotplug
was the main focus. Later it would be better to move some of these
hotplug to display/  as they are clearly display related and account for
a great portion of i915_irq.c.

I left the I915_HAS_HOTPLUG() in the middle by
mistake, it should had been an earlier call.

2) semi-related is the move of GMCH to the middle and I guess this is
what you're complaining here. I find it's cumbersome to have it
separate as we go and extend these checks for newer platforms. Almost
everywhere we settled on having last platform first in the if/else
ladders - this makes it much more clear on how/where to add a new
platform.

Lucas De Marchi





Lucas De Marchi

>
>Fixes: 794d61a19090 ("drm/i915: re-order if/else ladder for hpd_irq_setup")
>Signed-off-by: Chris Wilson 
>Cc: Lucas De Marchi 
>Cc: José Roberto de Souza 
>Cc: Jani Nikula 


>---
> drivers/gpu/drm/i915/i915_irq.c | 27 +++
> 1 file changed, 15 insertions(+), 12 deletions(-)
>
>diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
>index dc6febc63f1c..c80eeac53952 100644
>--- a/drivers/gpu/drm/i915/i915_irq.c
>+++ b/drivers/gpu/drm/i915/i915_irq.c
>@@ -4242,18 +4242,21 @@ void intel_irq_init(struct drm_i915_private *dev_priv)
> */
>dev_priv->hotplug.hpd_short_storm_enabled = !HAS_DP_MST(dev_priv);
>
>-   if (HAS_PCH_DG1(dev_priv))
>-   dev_priv->display.hpd_irq_setup = dg1_hpd_irq_setup;
>-   else if (INTEL_GEN(dev_priv) >= 11)
>-   dev_priv->display.hpd_irq_setup = gen11_hpd_irq_setup;
>-   else if (IS_GEN9_LP(dev_priv))
>-   dev_priv->display.hpd_irq_setup = bxt_hpd_irq_setup;
>-   else if (INTEL_PCH_TYPE(dev_priv) >= PCH_SPT)
>-   dev_priv->display.hpd_irq_setup = spt_hpd_irq_setup;
>-   else if (HAS_GMCH(dev_priv) && I915_HAS_HOTPLUG(dev_priv))
>-   dev_priv->display.hpd_irq_setup = i915_hpd_irq_setup;
>-   else
>-   dev_priv->display.hpd_irq_setup = ilk_hpd_irq_setup;
>+   if (HAS_GMCH(dev_priv)) {
>+   if (I915_HAS_HOTPLUG(dev_priv))
>+   dev_priv->display.hpd_irq_setup = i915_hpd_irq_setup;
>+   } else {
>+   if (HAS_PCH_DG1(dev_priv))
>+   dev_priv->display.hpd_irq_setup = dg1_hpd_irq_setup;
>+   else if (INTEL_GEN(dev_priv) >= 11)
>+   dev_priv->display.hpd_irq_setup = gen11_hpd_irq_setup;
>+   else if (IS_GEN9_LP(dev_priv))
>+   dev_priv->display.hpd_irq_setup = bxt_hpd_irq_setup;
>+   else if (INTEL_PCH_TYPE(dev_priv) >= PCH_SPT)
>+   dev_priv->display.hpd_irq_setup = spt_hpd_irq_setup;
>+   else
>+   dev_priv->display.hpd_irq_setup = ilk_hpd_irq_setup;
>+   }
> }
>
> /**
>--
>2.20.1
>
___
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] Revert "drm/i915: re-order if/else ladder for hpd_irq_setup"

2020-11-30 Thread Ville Syrjälä
On Fri, Nov 27, 2020 at 08:52:29PM -0800, Lucas De Marchi wrote:
> On Fri, Nov 27, 2020 at 02:57:48PM +, Chris Wilson wrote:
> >We now use ilk_hpd_irq_setup for all GMCH platforms that do not have
> >hotplug. These are early gen3 and gen2 devices that now explode on boot
> >as they try to access non-existent registers.
> 
> humn... true, my bad. But I don't think a revert is the right fix. It
> would be much better if we would not be setting up the hpd setup
> function at all for platforms that do not have hotplug. I think a
> separate early check for I915_HAS_HOTPLUG() would be deserved.

I think it generally leads to much less convoluted logic when we keep
gmch vs. rest separate. So I'm confused as to what we're even trying
to achieve here?

> 
> Lucas De Marchi
> 
> >
> >Fixes: 794d61a19090 ("drm/i915: re-order if/else ladder for hpd_irq_setup")
> >Signed-off-by: Chris Wilson 
> >Cc: Lucas De Marchi 
> >Cc: José Roberto de Souza 
> >Cc: Jani Nikula 
> 
> 
> >---
> > drivers/gpu/drm/i915/i915_irq.c | 27 +++
> > 1 file changed, 15 insertions(+), 12 deletions(-)
> >
> >diff --git a/drivers/gpu/drm/i915/i915_irq.c 
> >b/drivers/gpu/drm/i915/i915_irq.c
> >index dc6febc63f1c..c80eeac53952 100644
> >--- a/drivers/gpu/drm/i915/i915_irq.c
> >+++ b/drivers/gpu/drm/i915/i915_irq.c
> >@@ -4242,18 +4242,21 @@ void intel_irq_init(struct drm_i915_private 
> >*dev_priv)
> >  */
> > dev_priv->hotplug.hpd_short_storm_enabled = !HAS_DP_MST(dev_priv);
> >
> >-if (HAS_PCH_DG1(dev_priv))
> >-dev_priv->display.hpd_irq_setup = dg1_hpd_irq_setup;
> >-else if (INTEL_GEN(dev_priv) >= 11)
> >-dev_priv->display.hpd_irq_setup = gen11_hpd_irq_setup;
> >-else if (IS_GEN9_LP(dev_priv))
> >-dev_priv->display.hpd_irq_setup = bxt_hpd_irq_setup;
> >-else if (INTEL_PCH_TYPE(dev_priv) >= PCH_SPT)
> >-dev_priv->display.hpd_irq_setup = spt_hpd_irq_setup;
> >-else if (HAS_GMCH(dev_priv) && I915_HAS_HOTPLUG(dev_priv))
> >-dev_priv->display.hpd_irq_setup = i915_hpd_irq_setup;
> >-else
> >-dev_priv->display.hpd_irq_setup = ilk_hpd_irq_setup;
> >+if (HAS_GMCH(dev_priv)) {
> >+if (I915_HAS_HOTPLUG(dev_priv))
> >+dev_priv->display.hpd_irq_setup = i915_hpd_irq_setup;
> >+} else {
> >+if (HAS_PCH_DG1(dev_priv))
> >+dev_priv->display.hpd_irq_setup = dg1_hpd_irq_setup;
> >+else if (INTEL_GEN(dev_priv) >= 11)
> >+dev_priv->display.hpd_irq_setup = gen11_hpd_irq_setup;
> >+else if (IS_GEN9_LP(dev_priv))
> >+dev_priv->display.hpd_irq_setup = bxt_hpd_irq_setup;
> >+else if (INTEL_PCH_TYPE(dev_priv) >= PCH_SPT)
> >+dev_priv->display.hpd_irq_setup = spt_hpd_irq_setup;
> >+else
> >+dev_priv->display.hpd_irq_setup = ilk_hpd_irq_setup;
> >+}
> > }
> >
> > /**
> >-- 
> >2.20.1
> >
> ___
> 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] Revert "drm/i915: re-order if/else ladder for hpd_irq_setup"

2020-11-27 Thread Lucas De Marchi

On Fri, Nov 27, 2020 at 02:57:48PM +, Chris Wilson wrote:

We now use ilk_hpd_irq_setup for all GMCH platforms that do not have
hotplug. These are early gen3 and gen2 devices that now explode on boot
as they try to access non-existent registers.


humn... true, my bad. But I don't think a revert is the right fix. It
would be much better if we would not be setting up the hpd setup
function at all for platforms that do not have hotplug. I think a
separate early check for I915_HAS_HOTPLUG() would be deserved.

Lucas De Marchi



Fixes: 794d61a19090 ("drm/i915: re-order if/else ladder for hpd_irq_setup")
Signed-off-by: Chris Wilson 
Cc: Lucas De Marchi 
Cc: José Roberto de Souza 
Cc: Jani Nikula 




---
drivers/gpu/drm/i915/i915_irq.c | 27 +++
1 file changed, 15 insertions(+), 12 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index dc6febc63f1c..c80eeac53952 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -4242,18 +4242,21 @@ void intel_irq_init(struct drm_i915_private *dev_priv)
 */
dev_priv->hotplug.hpd_short_storm_enabled = !HAS_DP_MST(dev_priv);

-   if (HAS_PCH_DG1(dev_priv))
-   dev_priv->display.hpd_irq_setup = dg1_hpd_irq_setup;
-   else if (INTEL_GEN(dev_priv) >= 11)
-   dev_priv->display.hpd_irq_setup = gen11_hpd_irq_setup;
-   else if (IS_GEN9_LP(dev_priv))
-   dev_priv->display.hpd_irq_setup = bxt_hpd_irq_setup;
-   else if (INTEL_PCH_TYPE(dev_priv) >= PCH_SPT)
-   dev_priv->display.hpd_irq_setup = spt_hpd_irq_setup;
-   else if (HAS_GMCH(dev_priv) && I915_HAS_HOTPLUG(dev_priv))
-   dev_priv->display.hpd_irq_setup = i915_hpd_irq_setup;
-   else
-   dev_priv->display.hpd_irq_setup = ilk_hpd_irq_setup;
+   if (HAS_GMCH(dev_priv)) {
+   if (I915_HAS_HOTPLUG(dev_priv))
+   dev_priv->display.hpd_irq_setup = i915_hpd_irq_setup;
+   } else {
+   if (HAS_PCH_DG1(dev_priv))
+   dev_priv->display.hpd_irq_setup = dg1_hpd_irq_setup;
+   else if (INTEL_GEN(dev_priv) >= 11)
+   dev_priv->display.hpd_irq_setup = gen11_hpd_irq_setup;
+   else if (IS_GEN9_LP(dev_priv))
+   dev_priv->display.hpd_irq_setup = bxt_hpd_irq_setup;
+   else if (INTEL_PCH_TYPE(dev_priv) >= PCH_SPT)
+   dev_priv->display.hpd_irq_setup = spt_hpd_irq_setup;
+   else
+   dev_priv->display.hpd_irq_setup = ilk_hpd_irq_setup;
+   }
}

/**
--
2.20.1


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


Re: [Intel-gfx] [PATCH] Revert "drm/i915: re-order if/else ladder for hpd_irq_setup"

2020-11-27 Thread Jani Nikula
On Fri, 27 Nov 2020, Chris Wilson  wrote:
> We now use ilk_hpd_irq_setup for all GMCH platforms that do not have
> hotplug. These are early gen3 and gen2 devices that now explode on boot
> as they try to access non-existent registers.
>
> Fixes: 794d61a19090 ("drm/i915: re-order if/else ladder for hpd_irq_setup")
> Signed-off-by: Chris Wilson 
> Cc: Lucas De Marchi 
> Cc: José Roberto de Souza 
> Cc: Jani Nikula 

Reviewed-by: Jani Nikula 

> ---
>  drivers/gpu/drm/i915/i915_irq.c | 27 +++
>  1 file changed, 15 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
> index dc6febc63f1c..c80eeac53952 100644
> --- a/drivers/gpu/drm/i915/i915_irq.c
> +++ b/drivers/gpu/drm/i915/i915_irq.c
> @@ -4242,18 +4242,21 @@ void intel_irq_init(struct drm_i915_private *dev_priv)
>*/
>   dev_priv->hotplug.hpd_short_storm_enabled = !HAS_DP_MST(dev_priv);
>  
> - if (HAS_PCH_DG1(dev_priv))
> - dev_priv->display.hpd_irq_setup = dg1_hpd_irq_setup;
> - else if (INTEL_GEN(dev_priv) >= 11)
> - dev_priv->display.hpd_irq_setup = gen11_hpd_irq_setup;
> - else if (IS_GEN9_LP(dev_priv))
> - dev_priv->display.hpd_irq_setup = bxt_hpd_irq_setup;
> - else if (INTEL_PCH_TYPE(dev_priv) >= PCH_SPT)
> - dev_priv->display.hpd_irq_setup = spt_hpd_irq_setup;
> - else if (HAS_GMCH(dev_priv) && I915_HAS_HOTPLUG(dev_priv))
> - dev_priv->display.hpd_irq_setup = i915_hpd_irq_setup;
> - else
> - dev_priv->display.hpd_irq_setup = ilk_hpd_irq_setup;
> + if (HAS_GMCH(dev_priv)) {
> + if (I915_HAS_HOTPLUG(dev_priv))
> + dev_priv->display.hpd_irq_setup = i915_hpd_irq_setup;
> + } else {
> + if (HAS_PCH_DG1(dev_priv))
> + dev_priv->display.hpd_irq_setup = dg1_hpd_irq_setup;
> + else if (INTEL_GEN(dev_priv) >= 11)
> + dev_priv->display.hpd_irq_setup = gen11_hpd_irq_setup;
> + else if (IS_GEN9_LP(dev_priv))
> + dev_priv->display.hpd_irq_setup = bxt_hpd_irq_setup;
> + else if (INTEL_PCH_TYPE(dev_priv) >= PCH_SPT)
> + dev_priv->display.hpd_irq_setup = spt_hpd_irq_setup;
> + else
> + dev_priv->display.hpd_irq_setup = ilk_hpd_irq_setup;
> + }
>  }
>  
>  /**

-- 
Jani Nikula, Intel Open Source Graphics Center
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx