2013/11/1 <ville.syrjala@xxxxxxxxxxxxxxx>: > From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > > All the bits in the VBT child device type have some speciifc meaning, > so looking for an exact match isn't always the right thing. On some > VLVs for example the device type for eDP panels is 0x1806. > > If we mask out the bits that could concievably change between different > eDP panels, we are left with the set of bits that should still > tell us if the port is eDP or not. > > v2: Use the named bits for VBT child device type We go with this patch until they start creating analog eDP panels or whatever else their creative minds come up with :) Reviewed-by: Paulo Zanoni <paulo.r.zanoni@xxxxxxxxx> > > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=71051 > Tested-by: Robert Hooker <robert.hooker@xxxxxxxxxxxxx> > Signed-off-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > --- > drivers/gpu/drm/i915/intel_bios.h | 18 ++++++++++++++++++ > drivers/gpu/drm/i915/intel_dp.c | 3 ++- > 2 files changed, 20 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/intel_bios.h b/drivers/gpu/drm/i915/intel_bios.h > index f439c14..f580a2b 100644 > --- a/drivers/gpu/drm/i915/intel_bios.h > +++ b/drivers/gpu/drm/i915/intel_bios.h > @@ -654,6 +654,24 @@ int intel_parse_bios(struct drm_device *dev); > #define DEVICE_TYPE_DIGITAL_OUTPUT (1 << 1) > #define DEVICE_TYPE_ANALOG_OUTPUT (1 << 0) > > +/* > + * Bits we care about when checking for DEVICE_TYPE_eDP > + * Depending on the system, the other bits may or may not > + * be set for eDP outputs. > + */ > +#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 | \ > + DEVICE_TYPE_LVDS_SINGALING | \ > + 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 */ > #define DVO_B 1 > #define DVO_C 2 > diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c > index f25a49e..ee3f573 100644 > --- a/drivers/gpu/drm/i915/intel_dp.c > +++ b/drivers/gpu/drm/i915/intel_dp.c > @@ -3284,7 +3284,8 @@ bool intel_dp_is_edp(struct drm_device *dev, enum port port) > p_child = dev_priv->vbt.child_dev + i; > > if (p_child->common.dvo_port == port_mapping[port] && > - p_child->common.device_type == DEVICE_TYPE_eDP) > + (p_child->common.device_type & DEVICE_TYPE_eDP_BITS) == > + (DEVICE_TYPE_eDP & DEVICE_TYPE_eDP_BITS)) > return true; > } > return false; > -- > 1.8.1.5 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Paulo Zanoni _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx