[2/2] drm/i915: Ignore "digital output" and "not HDMI output" bits for eDP detection
diff mbox

Message ID 1441994679-32766-2-git-send-email-ville.syrjala@linux.intel.com
State New
Headers show

Commit Message

Ville Syrjala Sept. 11, 2015, 6:04 p.m. UTC
From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Ignore DEVICE_TYPE_NOT_HDMI_OUTPUT and DEVICE_TYPE_DIGITAL_OUTPUT when
trying to determine the presence of eDP based on the VBT child device
type. Apparently a significant portion of VLV systems have these bits
set incorrectly, and so we currently fail to detect eDP on said systems.

This is based on an earlier patch [1] from Andreas Lampersperger.
Instead of ignoring the bits just on VLV as was done in the orignal
patch, we now ignore them for all platforms. We should still have
enough bits in there to avoid false positives (unless the VBT is totally
bonkers).

Quoting the orignal patch:
> When the i915.ko identify an eDP output on a valleyview
> board, it should be more slackly. The reason for that is,
> that BIOS DATA TABLES generated with intel BMP (Binary
> Modification Program) do not set bits for NOT_HDMI or
> DIGITAL_OUTPUT on the device type. Due to Adolfo
> Sanchez from Intel EMGD, this is not possible.
> To solve this problem and enable i915.ko on embedded
> vlv boards with eDP, we ignore this two bits.

[1] http://lists.freedesktop.org/archives/intel-gfx/2015-June/069416.html

Cc: Andreas Lampersperger <lampersperger.andreas@heidenhain.de>
Cc: "Sanchez, AdolfoX" <adolfox.sanchez@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/intel_bios.h | 2 --
 1 file changed, 2 deletions(-)

Comments

Jani Nikula Sept. 23, 2015, 2:08 p.m. UTC | #1
On Fri, 11 Sep 2015, ville.syrjala@linux.intel.com wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Ignore DEVICE_TYPE_NOT_HDMI_OUTPUT and DEVICE_TYPE_DIGITAL_OUTPUT when
> trying to determine the presence of eDP based on the VBT child device
> type. Apparently a significant portion of VLV systems have these bits
> set incorrectly, and so we currently fail to detect eDP on said systems.
>
> This is based on an earlier patch [1] from Andreas Lampersperger.
> Instead of ignoring the bits just on VLV as was done in the orignal
> patch, we now ignore them for all platforms. We should still have
> enough bits in there to avoid false positives (unless the VBT is totally
> bonkers).
>
> Quoting the orignal patch:
>> When the i915.ko identify an eDP output on a valleyview
>> board, it should be more slackly. The reason for that is,
>> that BIOS DATA TABLES generated with intel BMP (Binary
>> Modification Program) do not set bits for NOT_HDMI or
>> DIGITAL_OUTPUT on the device type. Due to Adolfo
>> Sanchez from Intel EMGD, this is not possible.
>> To solve this problem and enable i915.ko on embedded
>> vlv boards with eDP, we ignore this two bits.
>
> [1] http://lists.freedesktop.org/archives/intel-gfx/2015-June/069416.html
>
> Cc: Andreas Lampersperger <lampersperger.andreas@heidenhain.de>
> Cc: "Sanchez, AdolfoX" <adolfox.sanchez@intel.com>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Only testing will tell for sure.

Acked-by: Jani Nikula <jani.nikula@intel.com>


> ---
>  drivers/gpu/drm/i915/intel_bios.h | 2 --
>  1 file changed, 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_bios.h b/drivers/gpu/drm/i915/intel_bios.h
> index 1b7417e..7ec8c9a 100644
> --- a/drivers/gpu/drm/i915/intel_bios.h
> +++ b/drivers/gpu/drm/i915/intel_bios.h
> @@ -741,7 +741,6 @@ int intel_parse_bios(struct drm_device *dev);
>   */
>  #define DEVICE_TYPE_eDP_BITS \
>  	(DEVICE_TYPE_INTERNAL_CONNECTOR | \
> -	 DEVICE_TYPE_NOT_HDMI_OUTPUT | \
>  	 DEVICE_TYPE_MIPI_OUTPUT | \
>  	 DEVICE_TYPE_COMPOSITE_OUTPUT | \
>  	 DEVICE_TYPE_DUAL_CHANNEL | \
> @@ -749,7 +748,6 @@ int intel_parse_bios(struct drm_device *dev);
>  	 DEVICE_TYPE_TMDS_DVI_SIGNALING | \
>  	 DEVICE_TYPE_VIDEO_SIGNALING | \
>  	 DEVICE_TYPE_DISPLAYPORT_OUTPUT | \
> -	 DEVICE_TYPE_DIGITAL_OUTPUT | \
>  	 DEVICE_TYPE_ANALOG_OUTPUT)
>  
>  /* define the DVO port for HDMI output type */
> -- 
> 2.4.6
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
Daniel Vetter Sept. 23, 2015, 3 p.m. UTC | #2
On Wed, Sep 23, 2015 at 05:08:15PM +0300, Jani Nikula wrote:
> On Fri, 11 Sep 2015, ville.syrjala@linux.intel.com wrote:
> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> >
> > Ignore DEVICE_TYPE_NOT_HDMI_OUTPUT and DEVICE_TYPE_DIGITAL_OUTPUT when
> > trying to determine the presence of eDP based on the VBT child device
> > type. Apparently a significant portion of VLV systems have these bits
> > set incorrectly, and so we currently fail to detect eDP on said systems.
> >
> > This is based on an earlier patch [1] from Andreas Lampersperger.
> > Instead of ignoring the bits just on VLV as was done in the orignal
> > patch, we now ignore them for all platforms. We should still have
> > enough bits in there to avoid false positives (unless the VBT is totally
> > bonkers).
> >
> > Quoting the orignal patch:
> >> When the i915.ko identify an eDP output on a valleyview
> >> board, it should be more slackly. The reason for that is,
> >> that BIOS DATA TABLES generated with intel BMP (Binary
> >> Modification Program) do not set bits for NOT_HDMI or
> >> DIGITAL_OUTPUT on the device type. Due to Adolfo
> >> Sanchez from Intel EMGD, this is not possible.
> >> To solve this problem and enable i915.ko on embedded
> >> vlv boards with eDP, we ignore this two bits.
> >
> > [1] http://lists.freedesktop.org/archives/intel-gfx/2015-June/069416.html
> >
> > Cc: Andreas Lampersperger <lampersperger.andreas@heidenhain.de>
> > Cc: "Sanchez, AdolfoX" <adolfox.sanchez@intel.com>
> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Only testing will tell for sure.
> 
> Acked-by: Jani Nikula <jani.nikula@intel.com>

Both applied to dinq, thanks.
-Daniel

> 
> 
> > ---
> >  drivers/gpu/drm/i915/intel_bios.h | 2 --
> >  1 file changed, 2 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/intel_bios.h b/drivers/gpu/drm/i915/intel_bios.h
> > index 1b7417e..7ec8c9a 100644
> > --- a/drivers/gpu/drm/i915/intel_bios.h
> > +++ b/drivers/gpu/drm/i915/intel_bios.h
> > @@ -741,7 +741,6 @@ int intel_parse_bios(struct drm_device *dev);
> >   */
> >  #define DEVICE_TYPE_eDP_BITS \
> >  	(DEVICE_TYPE_INTERNAL_CONNECTOR | \
> > -	 DEVICE_TYPE_NOT_HDMI_OUTPUT | \
> >  	 DEVICE_TYPE_MIPI_OUTPUT | \
> >  	 DEVICE_TYPE_COMPOSITE_OUTPUT | \
> >  	 DEVICE_TYPE_DUAL_CHANNEL | \
> > @@ -749,7 +748,6 @@ int intel_parse_bios(struct drm_device *dev);
> >  	 DEVICE_TYPE_TMDS_DVI_SIGNALING | \
> >  	 DEVICE_TYPE_VIDEO_SIGNALING | \
> >  	 DEVICE_TYPE_DISPLAYPORT_OUTPUT | \
> > -	 DEVICE_TYPE_DIGITAL_OUTPUT | \
> >  	 DEVICE_TYPE_ANALOG_OUTPUT)
> >  
> >  /* define the DVO port for HDMI output type */
> > -- 
> > 2.4.6
> >
> > _______________________________________________
> > Intel-gfx mailing list
> > Intel-gfx@lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/intel-gfx
> 
> -- 
> Jani Nikula, Intel Open Source Technology Center
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Patch
diff mbox

diff --git a/drivers/gpu/drm/i915/intel_bios.h b/drivers/gpu/drm/i915/intel_bios.h
index 1b7417e..7ec8c9a 100644
--- a/drivers/gpu/drm/i915/intel_bios.h
+++ b/drivers/gpu/drm/i915/intel_bios.h
@@ -741,7 +741,6 @@  int intel_parse_bios(struct drm_device *dev);
  */
 #define DEVICE_TYPE_eDP_BITS \
 	(DEVICE_TYPE_INTERNAL_CONNECTOR | \
-	 DEVICE_TYPE_NOT_HDMI_OUTPUT | \
 	 DEVICE_TYPE_MIPI_OUTPUT | \
 	 DEVICE_TYPE_COMPOSITE_OUTPUT | \
 	 DEVICE_TYPE_DUAL_CHANNEL | \
@@ -749,7 +748,6 @@  int intel_parse_bios(struct drm_device *dev);
 	 DEVICE_TYPE_TMDS_DVI_SIGNALING | \
 	 DEVICE_TYPE_VIDEO_SIGNALING | \
 	 DEVICE_TYPE_DISPLAYPORT_OUTPUT | \
-	 DEVICE_TYPE_DIGITAL_OUTPUT | \
 	 DEVICE_TYPE_ANALOG_OUTPUT)
 
 /* define the DVO port for HDMI output type */