diff options
| author | Dave Airlie <airlied@redhat.com> | 2013-01-17 20:34:08 +1000 | 
|---|---|---|
| committer | Dave Airlie <airlied@redhat.com> | 2013-01-17 20:34:08 +1000 | 
| commit | b5cc6c0387b2f8d269c1df1e68c97c958dd22fed (patch) | |
| tree | 697f2335b3a10f55e0ea226dcd044ee4ff3f0f7f /drivers/gpu/drm/i915/intel_hdmi.c | |
| parent | 9931faca02c604c22335f5a935a501bb2ace6e20 (diff) | |
| parent | c0c36b941b6f0be6ac74f340040cbb29d6a0b06c (diff) | |
| download | olio-linux-3.10-b5cc6c0387b2f8d269c1df1e68c97c958dd22fed.tar.xz olio-linux-3.10-b5cc6c0387b2f8d269c1df1e68c97c958dd22fed.zip  | |
Merge tag 'drm-intel-next-2012-12-21' of git://people.freedesktop.org/~danvet/drm-intel into drm-next
Daniel writes:
- seqno wrap fixes and debug infrastructure from Mika Kuoppala and Chris
  Wilson
- some leftover kill-agp on gen6+ patches from Ben
- hotplug improvements from Damien
- clear fb when allocated from stolen, avoids dirt on the fbcon (Chris)
- Stolen mem support from Chris Wilson, one of the many steps to get to
  real fastboot support.
- Some DDI code cleanups from Paulo.
- Some refactorings around lvds and dp code.
- some random little bits&pieces
* tag 'drm-intel-next-2012-12-21' of git://people.freedesktop.org/~danvet/drm-intel: (93 commits)
  drm/i915: Return the real error code from intel_set_mode()
  drm/i915: Make GSM void
  drm/i915: Move GSM mapping into dev_priv
  drm/i915: Move even more gtt code to i915_gem_gtt
  drm/i915: Make next_seqno debugs entry to use i915_gem_set_seqno
  drm/i915: Introduce i915_gem_set_seqno()
  drm/i915: Always clear semaphore mboxes on seqno wrap
  drm/i915: Initialize hardware semaphore state on ring init
  drm/i915: Introduce ring set_seqno
  drm/i915: Missed conversion to gtt_pte_t
  drm/i915: Bug on unsupported swizzled platforms
  drm/i915: BUG() if fences are used on unsupported platform
  drm/i915: fixup overlay stolen memory leak
  drm/i915: clean up PIPECONF bpc #defines
  drm/i915: add intel_dp_set_signal_levels
  drm/i915: remove leftover display.update_wm assignment
  drm/i915: check for the PCH when setting pch_transcoder
  drm/i915: Clear the stolen fb before enabling
  drm/i915: Access to snooped system memory through the GTT is incoherent
  drm/i915: Remove stale comment about intel_dp_detect()
  ...
Conflicts:
	drivers/gpu/drm/i915/intel_display.c
Diffstat (limited to 'drivers/gpu/drm/i915/intel_hdmi.c')
| -rw-r--r-- | drivers/gpu/drm/i915/intel_hdmi.c | 20 | 
1 files changed, 11 insertions, 9 deletions
diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c index 2ee9821b9d9..6387f9b0df9 100644 --- a/drivers/gpu/drm/i915/intel_hdmi.c +++ b/drivers/gpu/drm/i915/intel_hdmi.c @@ -48,7 +48,7 @@ assert_hdmi_port_disabled(struct intel_hdmi *intel_hdmi)  	struct drm_i915_private *dev_priv = dev->dev_private;  	uint32_t enabled_bits; -	enabled_bits = IS_HASWELL(dev) ? DDI_BUF_CTL_ENABLE : SDVO_ENABLE; +	enabled_bits = HAS_DDI(dev) ? DDI_BUF_CTL_ENABLE : SDVO_ENABLE;  	WARN(I915_READ(intel_hdmi->sdvox_reg) & enabled_bits,  	     "HDMI port enabled, expecting disabled\n"); @@ -793,16 +793,21 @@ static bool g4x_hdmi_connected(struct intel_hdmi *intel_hdmi)  static enum drm_connector_status  intel_hdmi_detect(struct drm_connector *connector, bool force)  { +	struct drm_device *dev = connector->dev;  	struct intel_hdmi *intel_hdmi = intel_attached_hdmi(connector);  	struct intel_digital_port *intel_dig_port =  		hdmi_to_dig_port(intel_hdmi);  	struct intel_encoder *intel_encoder = &intel_dig_port->base; -	struct drm_i915_private *dev_priv = connector->dev->dev_private; +	struct drm_i915_private *dev_priv = dev->dev_private;  	struct edid *edid;  	enum drm_connector_status status = connector_status_disconnected; -	if (IS_G4X(connector->dev) && !g4x_hdmi_connected(intel_hdmi)) + +	if (IS_G4X(dev) && !g4x_hdmi_connected(intel_hdmi))  		return status; +	else if (HAS_PCH_SPLIT(dev) && +		 !ibx_digital_port_connected(dev_priv, intel_dig_port)) +		 return status;  	intel_hdmi->has_hdmi_sink = false;  	intel_hdmi->has_audio = false; @@ -912,11 +917,8 @@ intel_hdmi_set_property(struct drm_connector *connector,  	return -EINVAL;  done: -	if (intel_dig_port->base.base.crtc) { -		struct drm_crtc *crtc = intel_dig_port->base.base.crtc; -		intel_set_mode(crtc, &crtc->mode, -			       crtc->x, crtc->y, crtc->fb); -	} +	if (intel_dig_port->base.base.crtc) +		intel_crtc_restore_mode(intel_dig_port->base.base.crtc);  	return 0;  } @@ -1013,7 +1015,7 @@ void intel_hdmi_init_connector(struct intel_digital_port *intel_dig_port,  		intel_hdmi->set_infoframes = cpt_set_infoframes;  	} -	if (IS_HASWELL(dev)) +	if (HAS_DDI(dev))  		intel_connector->get_hw_state = intel_ddi_connector_get_hw_state;  	else  		intel_connector->get_hw_state = intel_connector_get_hw_state;  |