diff options
author | Dave Airlie <airlied@redhat.com> | 2016-03-11 15:53:30 -0500 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2016-03-11 15:53:30 -0500 |
commit | 125234dc8b1cc862f52d8bd5b37c36cc59b2cb86 (patch) | |
tree | 44440aac4ecaf60c1f789e912618e7783c36be5f | |
parent | 2a4fb270daa9c1f1d1b86a53d66ed86cc64ad232 (diff) | |
parent | 0bbca274a31c2366414d8d3f95e03d1c4674d93f (diff) |
Merge tag 'drm-intel-fixes-2016-03-11' of git://anongit.freedesktop.org/drm-intel into drm-next
Two i915 regression fixes.
* tag 'drm-intel-fixes-2016-03-11' of git://anongit.freedesktop.org/drm-intel:
drm/i915: Actually retry with bit-banging after GMBUS timeout
drm/i915: Fix bogus dig_port_map[] assignment for pre-HSW
-rw-r--r-- | drivers/gpu/drm/i915/intel_audio.c | 3 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_ddi.c | 1 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_dp.c | 1 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_hdmi.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_i2c.c | 6 |
5 files changed, 9 insertions, 4 deletions
diff --git a/drivers/gpu/drm/i915/intel_audio.c b/drivers/gpu/drm/i915/intel_audio.c index 31f6d212fb1b..30f921421b0c 100644 --- a/drivers/gpu/drm/i915/intel_audio.c +++ b/drivers/gpu/drm/i915/intel_audio.c | |||
@@ -527,6 +527,8 @@ void intel_audio_codec_enable(struct intel_encoder *intel_encoder) | |||
527 | 527 | ||
528 | mutex_lock(&dev_priv->av_mutex); | 528 | mutex_lock(&dev_priv->av_mutex); |
529 | intel_dig_port->audio_connector = connector; | 529 | intel_dig_port->audio_connector = connector; |
530 | /* referred in audio callbacks */ | ||
531 | dev_priv->dig_port_map[port] = intel_encoder; | ||
530 | mutex_unlock(&dev_priv->av_mutex); | 532 | mutex_unlock(&dev_priv->av_mutex); |
531 | 533 | ||
532 | if (acomp && acomp->audio_ops && acomp->audio_ops->pin_eld_notify) | 534 | if (acomp && acomp->audio_ops && acomp->audio_ops->pin_eld_notify) |
@@ -554,6 +556,7 @@ void intel_audio_codec_disable(struct intel_encoder *intel_encoder) | |||
554 | 556 | ||
555 | mutex_lock(&dev_priv->av_mutex); | 557 | mutex_lock(&dev_priv->av_mutex); |
556 | intel_dig_port->audio_connector = NULL; | 558 | intel_dig_port->audio_connector = NULL; |
559 | dev_priv->dig_port_map[port] = NULL; | ||
557 | mutex_unlock(&dev_priv->av_mutex); | 560 | mutex_unlock(&dev_priv->av_mutex); |
558 | 561 | ||
559 | if (acomp && acomp->audio_ops && acomp->audio_ops->pin_eld_notify) | 562 | if (acomp && acomp->audio_ops && acomp->audio_ops->pin_eld_notify) |
diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c index 0f3df2c39f7c..084d5586585d 100644 --- a/drivers/gpu/drm/i915/intel_ddi.c +++ b/drivers/gpu/drm/i915/intel_ddi.c | |||
@@ -3358,7 +3358,6 @@ void intel_ddi_init(struct drm_device *dev, enum port port) | |||
3358 | intel_encoder->get_config = intel_ddi_get_config; | 3358 | intel_encoder->get_config = intel_ddi_get_config; |
3359 | 3359 | ||
3360 | intel_dig_port->port = port; | 3360 | intel_dig_port->port = port; |
3361 | dev_priv->dig_port_map[port] = intel_encoder; | ||
3362 | intel_dig_port->saved_port_bits = I915_READ(DDI_BUF_CTL(port)) & | 3361 | intel_dig_port->saved_port_bits = I915_READ(DDI_BUF_CTL(port)) & |
3363 | (DDI_BUF_PORT_REVERSAL | | 3362 | (DDI_BUF_PORT_REVERSAL | |
3364 | DDI_A_4_LANES); | 3363 | DDI_A_4_LANES); |
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c index 1d8de43bed56..cdc2c15873dc 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c | |||
@@ -6045,7 +6045,6 @@ intel_dp_init(struct drm_device *dev, | |||
6045 | } | 6045 | } |
6046 | 6046 | ||
6047 | intel_dig_port->port = port; | 6047 | intel_dig_port->port = port; |
6048 | dev_priv->dig_port_map[port] = intel_encoder; | ||
6049 | intel_dig_port->dp.output_reg = output_reg; | 6048 | intel_dig_port->dp.output_reg = output_reg; |
6050 | 6049 | ||
6051 | intel_encoder->type = INTEL_OUTPUT_DISPLAYPORT; | 6050 | intel_encoder->type = INTEL_OUTPUT_DISPLAYPORT; |
diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c index cb5d1b15755c..616108c4bc3e 100644 --- a/drivers/gpu/drm/i915/intel_hdmi.c +++ b/drivers/gpu/drm/i915/intel_hdmi.c | |||
@@ -2154,7 +2154,6 @@ void intel_hdmi_init_connector(struct intel_digital_port *intel_dig_port, | |||
2154 | void intel_hdmi_init(struct drm_device *dev, | 2154 | void intel_hdmi_init(struct drm_device *dev, |
2155 | i915_reg_t hdmi_reg, enum port port) | 2155 | i915_reg_t hdmi_reg, enum port port) |
2156 | { | 2156 | { |
2157 | struct drm_i915_private *dev_priv = dev->dev_private; | ||
2158 | struct intel_digital_port *intel_dig_port; | 2157 | struct intel_digital_port *intel_dig_port; |
2159 | struct intel_encoder *intel_encoder; | 2158 | struct intel_encoder *intel_encoder; |
2160 | struct intel_connector *intel_connector; | 2159 | struct intel_connector *intel_connector; |
@@ -2223,7 +2222,6 @@ void intel_hdmi_init(struct drm_device *dev, | |||
2223 | intel_encoder->cloneable |= 1 << INTEL_OUTPUT_HDMI; | 2222 | intel_encoder->cloneable |= 1 << INTEL_OUTPUT_HDMI; |
2224 | 2223 | ||
2225 | intel_dig_port->port = port; | 2224 | intel_dig_port->port = port; |
2226 | dev_priv->dig_port_map[port] = intel_encoder; | ||
2227 | intel_dig_port->hdmi.hdmi_reg = hdmi_reg; | 2225 | intel_dig_port->hdmi.hdmi_reg = hdmi_reg; |
2228 | intel_dig_port->dp.output_reg = INVALID_MMIO_REG; | 2226 | intel_dig_port->dp.output_reg = INVALID_MMIO_REG; |
2229 | 2227 | ||
diff --git a/drivers/gpu/drm/i915/intel_i2c.c b/drivers/gpu/drm/i915/intel_i2c.c index deb8282c26d8..52fbe530fc9e 100644 --- a/drivers/gpu/drm/i915/intel_i2c.c +++ b/drivers/gpu/drm/i915/intel_i2c.c | |||
@@ -664,6 +664,12 @@ int intel_setup_gmbus(struct drm_device *dev) | |||
664 | 664 | ||
665 | bus->adapter.algo = &gmbus_algorithm; | 665 | bus->adapter.algo = &gmbus_algorithm; |
666 | 666 | ||
667 | /* | ||
668 | * We wish to retry with bit banging | ||
669 | * after a timed out GMBUS attempt. | ||
670 | */ | ||
671 | bus->adapter.retries = 1; | ||
672 | |||
667 | /* By default use a conservative clock rate */ | 673 | /* By default use a conservative clock rate */ |
668 | bus->reg0 = pin | GMBUS_RATE_100KHZ; | 674 | bus->reg0 = pin | GMBUS_RATE_100KHZ; |
669 | 675 | ||