public inbox for intel-gfx@lists.freedesktop.org
 help / color / mirror / Atom feed
* [PATCH 1/2] drm/i915: make sure south port interrupts are enabled properly
@ 2014-01-10 21:02 Jesse Barnes
  2014-01-10 21:02 ` [PATCH 2/2] drm/i915: get proper hwrawclk freq on BDW Jesse Barnes
                   ` (3 more replies)
  0 siblings, 4 replies; 8+ messages in thread
From: Jesse Barnes @ 2014-01-10 21:02 UTC (permalink / raw)
  To: intel-gfx

We were apparently relying on the defaults on BDW, which resulted in no
hotplug or AUX interrupts.

References: https://bugs.freedesktop.org/show_bug.cgi?id=72834
References: https://bugs.freedesktop.org/show_bug.cgi?id=72833
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
---
 drivers/gpu/drm/i915/i915_irq.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index 261254a..f88e265 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -2763,13 +2763,15 @@ static void ibx_irq_postinstall(struct drm_device *dev)
 		mask = SDE_GMBUS | SDE_AUX_MASK | SDE_TRANSB_FIFO_UNDER |
 		       SDE_TRANSA_FIFO_UNDER | SDE_POISON;
 	} else {
-		mask = SDE_GMBUS_CPT | SDE_AUX_MASK_CPT | SDE_ERROR_CPT;
+		mask = SDE_GMBUS_CPT | SDE_AUX_MASK_CPT | SDE_ERROR_CPT |
+			SDE_HOTPLUG_MASK_CPT;
 
 		I915_WRITE(SERR_INT, I915_READ(SERR_INT));
 	}
 
 	I915_WRITE(SDEIIR, I915_READ(SDEIIR));
 	I915_WRITE(SDEIMR, ~mask);
+	I915_WRITE(SDEIER, mask);
 }
 
 static void gen5_gt_irq_postinstall(struct drm_device *dev)
-- 
1.8.3.2

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 2/2] drm/i915: get proper hwrawclk freq on BDW
  2014-01-10 21:02 [PATCH 1/2] drm/i915: make sure south port interrupts are enabled properly Jesse Barnes
@ 2014-01-10 21:02 ` Jesse Barnes
  2014-01-10 21:05 ` [PATCH 1/2] drm/i915: make sure south port interrupts are enabled properly Jesse Barnes
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 8+ messages in thread
From: Jesse Barnes @ 2014-01-10 21:02 UTC (permalink / raw)
  To: intel-gfx

We need to read out the CDclk to calculate the DP aux divider correctly.

Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
---
 drivers/gpu/drm/i915/intel_dp.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 7df5085..4ac1da5 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -214,6 +214,9 @@ intel_hrawclk(struct drm_device *dev)
 	if (IS_VALLEYVIEW(dev))
 		return 200;
 
+	if (IS_BROADWELL(dev))
+		return intel_ddi_get_cdclk_freq(dev_priv) / 1000;
+
 	clkcfg = I915_READ(CLKCFG);
 	switch (clkcfg & CLKCFG_FSB_MASK) {
 	case CLKCFG_FSB_400:
-- 
1.8.3.2

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH 1/2] drm/i915: make sure south port interrupts are enabled properly
  2014-01-10 21:02 [PATCH 1/2] drm/i915: make sure south port interrupts are enabled properly Jesse Barnes
  2014-01-10 21:02 ` [PATCH 2/2] drm/i915: get proper hwrawclk freq on BDW Jesse Barnes
@ 2014-01-10 21:05 ` Jesse Barnes
  2014-01-10 21:10   ` Paulo Zanoni
  2014-01-10 21:09 ` Paulo Zanoni
  2014-01-10 21:13 ` [PATCH] drm/i915/bdw: make sure south port interrupts are enabled properly v2 Jesse Barnes
  3 siblings, 1 reply; 8+ messages in thread
From: Jesse Barnes @ 2014-01-10 21:05 UTC (permalink / raw)
  To: intel-gfx

On Fri, 10 Jan 2014 13:02:20 -0800
Jesse Barnes <jbarnes@virtuousgeek.org> wrote:

> We were apparently relying on the defaults on BDW, which resulted in no
> hotplug or AUX interrupts.
> 
> References: https://bugs.freedesktop.org/show_bug.cgi?id=72834
> References: https://bugs.freedesktop.org/show_bug.cgi?id=72833
> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
> ---
>  drivers/gpu/drm/i915/i915_irq.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
> index 261254a..f88e265 100644
> --- a/drivers/gpu/drm/i915/i915_irq.c
> +++ b/drivers/gpu/drm/i915/i915_irq.c
> @@ -2763,13 +2763,15 @@ static void ibx_irq_postinstall(struct drm_device *dev)
>  		mask = SDE_GMBUS | SDE_AUX_MASK | SDE_TRANSB_FIFO_UNDER |
>  		       SDE_TRANSA_FIFO_UNDER | SDE_POISON;
>  	} else {
> -		mask = SDE_GMBUS_CPT | SDE_AUX_MASK_CPT | SDE_ERROR_CPT;
> +		mask = SDE_GMBUS_CPT | SDE_AUX_MASK_CPT | SDE_ERROR_CPT |
> +			SDE_HOTPLUG_MASK_CPT;
>  
>  		I915_WRITE(SERR_INT, I915_READ(SERR_INT));
>  	}
>  
>  	I915_WRITE(SDEIIR, I915_READ(SDEIIR));
>  	I915_WRITE(SDEIMR, ~mask);
> +	I915_WRITE(SDEIER, mask);
>  }
>  
>  static void gen5_gt_irq_postinstall(struct drm_device *dev)

Note we still don't handle port A interrupts.  Not sure if that's
important since we don't really use them yet, but if we want to add
that we'd probably need to add some new code to the hpd functions to
deal with walking both CPU and PCH masks.

-- 
Jesse Barnes, Intel Open Source Technology Center

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 1/2] drm/i915: make sure south port interrupts are enabled properly
  2014-01-10 21:02 [PATCH 1/2] drm/i915: make sure south port interrupts are enabled properly Jesse Barnes
  2014-01-10 21:02 ` [PATCH 2/2] drm/i915: get proper hwrawclk freq on BDW Jesse Barnes
  2014-01-10 21:05 ` [PATCH 1/2] drm/i915: make sure south port interrupts are enabled properly Jesse Barnes
@ 2014-01-10 21:09 ` Paulo Zanoni
  2014-01-10 21:13 ` [PATCH] drm/i915/bdw: make sure south port interrupts are enabled properly v2 Jesse Barnes
  3 siblings, 0 replies; 8+ messages in thread
From: Paulo Zanoni @ 2014-01-10 21:09 UTC (permalink / raw)
  To: Jesse Barnes; +Cc: Intel Graphics Development

2014/1/10 Jesse Barnes <jbarnes@virtuousgeek.org>:
> We were apparently relying on the defaults on BDW, which resulted in no
> hotplug or AUX interrupts.
>
> References: https://bugs.freedesktop.org/show_bug.cgi?id=72834
> References: https://bugs.freedesktop.org/show_bug.cgi?id=72833
> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
> ---
>  drivers/gpu/drm/i915/i915_irq.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
> index 261254a..f88e265 100644
> --- a/drivers/gpu/drm/i915/i915_irq.c
> +++ b/drivers/gpu/drm/i915/i915_irq.c
> @@ -2763,13 +2763,15 @@ static void ibx_irq_postinstall(struct drm_device *dev)
>                 mask = SDE_GMBUS | SDE_AUX_MASK | SDE_TRANSB_FIFO_UNDER |
>                        SDE_TRANSA_FIFO_UNDER | SDE_POISON;
>         } else {
> -               mask = SDE_GMBUS_CPT | SDE_AUX_MASK_CPT | SDE_ERROR_CPT;
> +               mask = SDE_GMBUS_CPT | SDE_AUX_MASK_CPT | SDE_ERROR_CPT |
> +                       SDE_HOTPLUG_MASK_CPT;
>
>                 I915_WRITE(SERR_INT, I915_READ(SERR_INT));
>         }
>
>         I915_WRITE(SDEIIR, I915_READ(SDEIIR));
>         I915_WRITE(SDEIMR, ~mask);
> +       I915_WRITE(SDEIER, mask);

ibx_irq_preinstall contains a nice comment explaining why SDEIER needs
to be 0xffffffff.

I think the proper solution to your bug is probably to call
ibx_irq_preinstall from gen8_irq_preinstall.

>  }
>
>  static void gen5_gt_irq_postinstall(struct drm_device *dev)
> --
> 1.8.3.2
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx



-- 
Paulo Zanoni

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 1/2] drm/i915: make sure south port interrupts are enabled properly
  2014-01-10 21:05 ` [PATCH 1/2] drm/i915: make sure south port interrupts are enabled properly Jesse Barnes
@ 2014-01-10 21:10   ` Paulo Zanoni
  0 siblings, 0 replies; 8+ messages in thread
From: Paulo Zanoni @ 2014-01-10 21:10 UTC (permalink / raw)
  To: Jesse Barnes; +Cc: Intel Graphics Development

2014/1/10 Jesse Barnes <jbarnes@virtuousgeek.org>:
> On Fri, 10 Jan 2014 13:02:20 -0800
> Jesse Barnes <jbarnes@virtuousgeek.org> wrote:
>
>> We were apparently relying on the defaults on BDW, which resulted in no
>> hotplug or AUX interrupts.
>>
>> References: https://bugs.freedesktop.org/show_bug.cgi?id=72834
>> References: https://bugs.freedesktop.org/show_bug.cgi?id=72833
>> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
>> ---
>>  drivers/gpu/drm/i915/i915_irq.c | 4 +++-
>>  1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
>> index 261254a..f88e265 100644
>> --- a/drivers/gpu/drm/i915/i915_irq.c
>> +++ b/drivers/gpu/drm/i915/i915_irq.c
>> @@ -2763,13 +2763,15 @@ static void ibx_irq_postinstall(struct drm_device *dev)
>>               mask = SDE_GMBUS | SDE_AUX_MASK | SDE_TRANSB_FIFO_UNDER |
>>                      SDE_TRANSA_FIFO_UNDER | SDE_POISON;
>>       } else {
>> -             mask = SDE_GMBUS_CPT | SDE_AUX_MASK_CPT | SDE_ERROR_CPT;
>> +             mask = SDE_GMBUS_CPT | SDE_AUX_MASK_CPT | SDE_ERROR_CPT |
>> +                     SDE_HOTPLUG_MASK_CPT;
>>
>>               I915_WRITE(SERR_INT, I915_READ(SERR_INT));
>>       }
>>
>>       I915_WRITE(SDEIIR, I915_READ(SDEIIR));
>>       I915_WRITE(SDEIMR, ~mask);
>> +     I915_WRITE(SDEIER, mask);
>>  }
>>
>>  static void gen5_gt_irq_postinstall(struct drm_device *dev)
>
> Note we still don't handle port A interrupts.  Not sure if that's
> important since we don't really use them yet, but if we want to add
> that we'd probably need to add some new code to the hpd functions to
> deal with walking both CPU and PCH masks.

All the previous gens also lack this and things kinda work so far...
The BIOS sets some state, and we lose it after suspend. Of course, I'm
not suggesting we should keep it like this :)


>
> --
> Jesse Barnes, Intel Open Source Technology Center
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx



-- 
Paulo Zanoni

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH] drm/i915/bdw: make sure south port interrupts are enabled properly v2
  2014-01-10 21:02 [PATCH 1/2] drm/i915: make sure south port interrupts are enabled properly Jesse Barnes
                   ` (2 preceding siblings ...)
  2014-01-10 21:09 ` Paulo Zanoni
@ 2014-01-10 21:13 ` Jesse Barnes
  2014-01-10 21:17   ` Paulo Zanoni
  3 siblings, 1 reply; 8+ messages in thread
From: Jesse Barnes @ 2014-01-10 21:13 UTC (permalink / raw)
  To: intel-gfx

We were apparently relying on the defaults on BDW, which resulted in no
hotplug or AUX interrupts.  So be sure to call the ibx_irq_preinstall to
enable all interrupts.

v2: use preinstall instead of redundant SDIER write

References: https://bugs.freedesktop.org/show_bug.cgi?id=72834
References: https://bugs.freedesktop.org/show_bug.cgi?id=72833
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
---
 drivers/gpu/drm/i915/i915_irq.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index 261254a..69b0b71 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -2714,6 +2714,8 @@ static void gen8_irq_preinstall(struct drm_device *dev)
 #undef GEN8_IRQ_INIT_NDX
 
 	POSTING_READ(GEN8_PCU_IIR);
+
+	ibx_irq_preinstall(dev);
 }
 
 static void ibx_hpd_irq_setup(struct drm_device *dev)
-- 
1.8.3.2

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH] drm/i915/bdw: make sure south port interrupts are enabled properly v2
  2014-01-10 21:13 ` [PATCH] drm/i915/bdw: make sure south port interrupts are enabled properly v2 Jesse Barnes
@ 2014-01-10 21:17   ` Paulo Zanoni
  2014-01-10 21:19     ` Jesse Barnes
  0 siblings, 1 reply; 8+ messages in thread
From: Paulo Zanoni @ 2014-01-10 21:17 UTC (permalink / raw)
  To: Jesse Barnes; +Cc: Intel Graphics Development

2014/1/10 Jesse Barnes <jbarnes@virtuousgeek.org>:
> We were apparently relying on the defaults on BDW, which resulted in no
> hotplug or AUX interrupts.  So be sure to call the ibx_irq_preinstall to
> enable all interrupts.
>
> v2: use preinstall instead of redundant SDIER write
>
> References: https://bugs.freedesktop.org/show_bug.cgi?id=72834
> References: https://bugs.freedesktop.org/show_bug.cgi?id=72833
> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>

And this should probably go to Kernel 3.13 too, right?

Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com>

> ---
>  drivers/gpu/drm/i915/i915_irq.c | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
> index 261254a..69b0b71 100644
> --- a/drivers/gpu/drm/i915/i915_irq.c
> +++ b/drivers/gpu/drm/i915/i915_irq.c
> @@ -2714,6 +2714,8 @@ static void gen8_irq_preinstall(struct drm_device *dev)
>  #undef GEN8_IRQ_INIT_NDX
>
>         POSTING_READ(GEN8_PCU_IIR);
> +
> +       ibx_irq_preinstall(dev);
>  }
>
>  static void ibx_hpd_irq_setup(struct drm_device *dev)
> --
> 1.8.3.2
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx



-- 
Paulo Zanoni

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] drm/i915/bdw: make sure south port interrupts are enabled properly v2
  2014-01-10 21:17   ` Paulo Zanoni
@ 2014-01-10 21:19     ` Jesse Barnes
  0 siblings, 0 replies; 8+ messages in thread
From: Jesse Barnes @ 2014-01-10 21:19 UTC (permalink / raw)
  To: Paulo Zanoni; +Cc: Intel Graphics Development

On Fri, 10 Jan 2014 19:17:02 -0200
Paulo Zanoni <przanoni@gmail.com> wrote:

> 2014/1/10 Jesse Barnes <jbarnes@virtuousgeek.org>:
> > We were apparently relying on the defaults on BDW, which resulted in no
> > hotplug or AUX interrupts.  So be sure to call the ibx_irq_preinstall to
> > enable all interrupts.
> >
> > v2: use preinstall instead of redundant SDIER write
> >
> > References: https://bugs.freedesktop.org/show_bug.cgi?id=72834
> > References: https://bugs.freedesktop.org/show_bug.cgi?id=72833
> > Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
> 
> And this should probably go to Kernel 3.13 too, right?
> 
> Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com>

Yeah probably.

Daniel, please cc:stable

Thanks,
-- 
Jesse Barnes, Intel Open Source Technology Center

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2014-01-10 21:19 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-01-10 21:02 [PATCH 1/2] drm/i915: make sure south port interrupts are enabled properly Jesse Barnes
2014-01-10 21:02 ` [PATCH 2/2] drm/i915: get proper hwrawclk freq on BDW Jesse Barnes
2014-01-10 21:05 ` [PATCH 1/2] drm/i915: make sure south port interrupts are enabled properly Jesse Barnes
2014-01-10 21:10   ` Paulo Zanoni
2014-01-10 21:09 ` Paulo Zanoni
2014-01-10 21:13 ` [PATCH] drm/i915/bdw: make sure south port interrupts are enabled properly v2 Jesse Barnes
2014-01-10 21:17   ` Paulo Zanoni
2014-01-10 21:19     ` Jesse Barnes

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox