diff options
| author | Dave Airlie <airlied@redhat.com> | 2009-08-20 13:38:04 +1000 | 
|---|---|---|
| committer | Dave Airlie <airlied@redhat.com> | 2009-08-20 13:38:04 +1000 | 
| commit | 51c8b4071d84d46cc100baa5931ad06b2a823c95 (patch) | |
| tree | 098cf9d41ce1c548d922708a770a9efe35e434df /drivers/gpu/drm/i915/intel_hdmi.c | |
| parent | a987fcaa805fcb24ba885c2e29fd4fdb6816f08f (diff) | |
| parent | 6c30c53fd5ae6a99a23ad78e90c428d2c8ffb07f (diff) | |
| download | olio-linux-3.10-51c8b4071d84d46cc100baa5931ad06b2a823c95.tar.xz olio-linux-3.10-51c8b4071d84d46cc100baa5931ad06b2a823c95.zip  | |
Merge Linus master to drm-next
linux-next conflict reported needed resolution.
Conflicts:
	drivers/gpu/drm/drm_crtc.c
	drivers/gpu/drm/drm_edid.c
	drivers/gpu/drm/i915/intel_sdvo.c
	drivers/gpu/drm/radeon/radeon_ttm.c
	drivers/gpu/drm/ttm/ttm_bo.c
Diffstat (limited to 'drivers/gpu/drm/i915/intel_hdmi.c')
| -rw-r--r-- | drivers/gpu/drm/i915/intel_hdmi.c | 64 | 
1 files changed, 4 insertions, 60 deletions
diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c index 9e30daae37d..1842290cded 100644 --- a/drivers/gpu/drm/i915/intel_hdmi.c +++ b/drivers/gpu/drm/i915/intel_hdmi.c @@ -130,16 +130,17 @@ static bool intel_hdmi_mode_fixup(struct drm_encoder *encoder,  }  static enum drm_connector_status -intel_hdmi_edid_detect(struct drm_connector *connector) +intel_hdmi_detect(struct drm_connector *connector)  {  	struct intel_output *intel_output = to_intel_output(connector);  	struct intel_hdmi_priv *hdmi_priv = intel_output->dev_priv;  	struct edid *edid = NULL;  	enum drm_connector_status status = connector_status_disconnected; +	hdmi_priv->has_hdmi_sink = false;  	edid = drm_get_edid(&intel_output->base,  			    intel_output->ddc_bus); -	hdmi_priv->has_hdmi_sink = false; +  	if (edid) {  		if (edid->input & DRM_EDID_INPUT_DIGITAL) {  			status = connector_status_connected; @@ -148,65 +149,8 @@ intel_hdmi_edid_detect(struct drm_connector *connector)  		intel_output->base.display_info.raw_edid = NULL;  		kfree(edid);  	} -	return status; -} - -static enum drm_connector_status -igdng_hdmi_detect(struct drm_connector *connector) -{ -	struct intel_output *intel_output = to_intel_output(connector); -	struct intel_hdmi_priv *hdmi_priv = intel_output->dev_priv; - -	/* FIXME hotplug detect */ - -	hdmi_priv->has_hdmi_sink = false; -	return intel_hdmi_edid_detect(connector); -} - -static enum drm_connector_status -intel_hdmi_detect(struct drm_connector *connector) -{ -	struct drm_device *dev = connector->dev; -	struct drm_i915_private *dev_priv = dev->dev_private; -	struct intel_output *intel_output = to_intel_output(connector); -	struct intel_hdmi_priv *hdmi_priv = intel_output->dev_priv; -	u32 temp, bit; - -	if (IS_IGDNG(dev)) -		return igdng_hdmi_detect(connector); - -	temp = I915_READ(PORT_HOTPLUG_EN); - -	switch (hdmi_priv->sdvox_reg) { -	case SDVOB: -		temp |= HDMIB_HOTPLUG_INT_EN; -		break; -	case SDVOC: -		temp |= HDMIC_HOTPLUG_INT_EN; -		break; -	default: -		return connector_status_unknown; -	} - -	I915_WRITE(PORT_HOTPLUG_EN, temp); - -	POSTING_READ(PORT_HOTPLUG_EN); - -	switch (hdmi_priv->sdvox_reg) { -	case SDVOB: -		bit = HDMIB_HOTPLUG_INT_STATUS; -		break; -	case SDVOC: -		bit = HDMIC_HOTPLUG_INT_STATUS; -		break; -	default: -		return connector_status_unknown; -	} -	if ((I915_READ(PORT_HOTPLUG_STAT) & bit) != 0) -		return intel_hdmi_edid_detect(connector); -	else -		return connector_status_disconnected; +	return status;  }  static int intel_hdmi_get_modes(struct drm_connector *connector)  |