diff mbox

drm/i915/skl: port A fuse straps don't work on early SKL steppings

Message ID 1425686012-1824-1-git-send-email-jbarnes@virtuousgeek.org (mailing list archive)
State New, archived
Headers show

Commit Message

Jesse Barnes March 6, 2015, 11:53 p.m. UTC
So try to enumerate eDP unconditionally in those cases.

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

Comments

Lespiau, Damien March 7, 2015, 12:09 a.m. UTC | #1
On Fri, Mar 06, 2015 at 03:53:32PM -0800, Jesse Barnes wrote:
> So try to enumerate eDP unconditionally in those cases.
> 
> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>

That's WaIgnoreDDIAStrap, I assumed it actually worked since my eDP
panel was detected... I see it listed without a stepping check but I
guess you have a good source for that one.

So, maybe with the WaIgnoreDDIAStrap mention:

Reviewed-by: Damien Lespiau <damien.lespiau@intel.com>
Shuang He March 7, 2015, 3:21 a.m. UTC | #2
Tested-By: PRC QA PRTS (Patch Regression Test System Contact: shuang.he@intel.com)
Task id: 5909
-------------------------------------Summary-------------------------------------
Platform          Delta          drm-intel-nightly          Series Applied
PNV                 -5              275/275              270/275
ILK                                  307/307              307/307
SNB                 -1              284/284              283/284
IVB                                  375/375              375/375
BYT                                  294/294              294/294
HSW                                  385/385              385/385
BDW                 -3              314/314              311/314
-------------------------------------Detailed-------------------------------------
Platform  Test                                drm-intel-nightly          Series Applied
*PNV  igt_gen3_render_tiledx_blits      FAIL(1)PASS(6)      FAIL(1)NRUN(1)
 PNV  igt_gen3_render_tiledy_blits      FAIL(1)PASS(3)      FAIL(1)PASS(1)
 PNV  igt_gem_fence_thrash_bo-write-verify-threaded-none      FAIL(1)CRASH(1)PASS(1)      CRASH(1)PASS(1)
*PNV  igt_gem_partial_pwrite_pread_reads      PASS(2)      NRUN(1)PASS(1)
*PNV  igt_gem_userptr_blits_forked-unsync-multifd-mempressure-normal      PASS(2)      NRUN(1)
*SNB  igt_gem_fence_thrash_bo-write-verify-x      PASS(2)      DMESG_WARN(1)PASS(1)
*BDW  igt_drv_debugfs_reader      PASS(4)      DMESG_WARN(1)PASS(1)
*BDW  igt_drv_hangman_error-state-sysfs-entry      PASS(4)      TIMEOUT(1)PASS(1)
*BDW  igt_gem_gtt_hog      PASS(6)      DMESG_WARN(1)PASS(1)
Note: You need to pay more attention to line start with '*'
Daniel Vetter March 9, 2015, 9:03 a.m. UTC | #3
On Sat, Mar 07, 2015 at 12:09:08AM +0000, Damien Lespiau wrote:
> On Fri, Mar 06, 2015 at 03:53:32PM -0800, Jesse Barnes wrote:
> > So try to enumerate eDP unconditionally in those cases.
> > 
> > Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
> 
> That's WaIgnoreDDIAStrap, I assumed it actually worked since my eDP
> panel was detected... I see it listed without a stepping check but I
> guess you have a good source for that one.
> 
> So, maybe with the WaIgnoreDDIAStrap mention:

Done ...
> 
> Reviewed-by: Damien Lespiau <damien.lespiau@intel.com>
> 
and applied, thanks.
-Daniel

> -- 
> Damien
> 
> > ---
> >  drivers/gpu/drm/i915/intel_display.c | 9 +++++++--
> >  1 file changed, 7 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> > index 597c10b..8820e8a 100644
> > --- a/drivers/gpu/drm/i915/intel_display.c
> > +++ b/drivers/gpu/drm/i915/intel_display.c
> > @@ -12563,10 +12563,15 @@ static void intel_setup_outputs(struct drm_device *dev)
> >  	if (HAS_DDI(dev)) {
> >  		int found;
> >  
> > -		/* Haswell uses DDI functions to detect digital outputs */
> > +		/*
> > +		 * Haswell uses DDI functions to detect digital outputs.
> > +		 * On SKL pre-D0 the strap isn't connected, so we assume
> > +		 * it's there.
> > +		 */
> >  		found = I915_READ(DDI_BUF_CTL_A) & DDI_INIT_DISPLAY_DETECTED;
> >  		/* DDI A only supports eDP */
> > -		if (found)
> > +		if (found ||
> > +		    (IS_SKYLAKE(dev) && INTEL_REVID(dev) < SKL_REVID_D0))
> >  			intel_ddi_init(dev, PORT_A);
> >  
> >  		/* DDI B, C and D detection is indicated by the SFUSE_STRAP
> > -- 
> > 1.9.1
> > 
> > _______________________________________________
> > Intel-gfx mailing list
> > Intel-gfx@lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/intel-gfx
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
Jesse Barnes March 9, 2015, 3:18 p.m. UTC | #4
On 03/09/2015 02:03 AM, Daniel Vetter wrote:
> On Sat, Mar 07, 2015 at 12:09:08AM +0000, Damien Lespiau wrote:
>> On Fri, Mar 06, 2015 at 03:53:32PM -0800, Jesse Barnes wrote:
>>> So try to enumerate eDP unconditionally in those cases.
>>>
>>> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
>>
>> That's WaIgnoreDDIAStrap, I assumed it actually worked since my eDP
>> panel was detected... I see it listed without a stepping check but I
>> guess you have a good source for that one.
>>
>> So, maybe with the WaIgnoreDDIAStrap mention:
> 
> Done ...
>>
>> Reviewed-by: Damien Lespiau <damien.lespiau@intel.com>
>>
> and applied, thanks.

Cool, thanks.  I didn't see the wa named in the bspec (or even mentioned
until I pinged Art); I suppose this one came from the wa db?

Thanks,
Jesse
Lespiau, Damien March 9, 2015, 3:56 p.m. UTC | #5
On Mon, Mar 09, 2015 at 08:18:05AM -0700, Jesse Barnes wrote:
> On 03/09/2015 02:03 AM, Daniel Vetter wrote:
> > On Sat, Mar 07, 2015 at 12:09:08AM +0000, Damien Lespiau wrote:
> >> On Fri, Mar 06, 2015 at 03:53:32PM -0800, Jesse Barnes wrote:
> >>> So try to enumerate eDP unconditionally in those cases.
> >>>
> >>> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
> >>
> >> That's WaIgnoreDDIAStrap, I assumed it actually worked since my eDP
> >> panel was detected... I see it listed without a stepping check but I
> >> guess you have a good source for that one.
> >>
> >> So, maybe with the WaIgnoreDDIAStrap mention:
> > 
> > Done ...
> >>
> >> Reviewed-by: Damien Lespiau <damien.lespiau@intel.com>
> >>
> > and applied, thanks.
> 
> Cool, thanks.  I didn't see the wa named in the bspec (or even mentioned
> until I pinged Art); I suppose this one came from the wa db?

Indeed.
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 597c10b..8820e8a 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -12563,10 +12563,15 @@  static void intel_setup_outputs(struct drm_device *dev)
 	if (HAS_DDI(dev)) {
 		int found;
 
-		/* Haswell uses DDI functions to detect digital outputs */
+		/*
+		 * Haswell uses DDI functions to detect digital outputs.
+		 * On SKL pre-D0 the strap isn't connected, so we assume
+		 * it's there.
+		 */
 		found = I915_READ(DDI_BUF_CTL_A) & DDI_INIT_DISPLAY_DETECTED;
 		/* DDI A only supports eDP */
-		if (found)
+		if (found ||
+		    (IS_SKYLAKE(dev) && INTEL_REVID(dev) < SKL_REVID_D0))
 			intel_ddi_init(dev, PORT_A);
 
 		/* DDI B, C and D detection is indicated by the SFUSE_STRAP