diff options
| -rw-r--r-- | drivers/gpu/drm/i915/i915_gem.c | 8 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/i915_gpu_error.c | 6 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/intel_display.c | 4 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/intel_dp.c | 13 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/intel_tv.c | 8 |
5 files changed, 32 insertions, 7 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index df9253d890ee..cdfb9da0e4ce 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c | |||
| @@ -4800,10 +4800,10 @@ i915_gem_inactive_count(struct shrinker *shrinker, struct shrink_control *sc) | |||
| 4800 | 4800 | ||
| 4801 | if (!mutex_trylock(&dev->struct_mutex)) { | 4801 | if (!mutex_trylock(&dev->struct_mutex)) { |
| 4802 | if (!mutex_is_locked_by(&dev->struct_mutex, current)) | 4802 | if (!mutex_is_locked_by(&dev->struct_mutex, current)) |
| 4803 | return SHRINK_STOP; | 4803 | return 0; |
| 4804 | 4804 | ||
| 4805 | if (dev_priv->mm.shrinker_no_lock_stealing) | 4805 | if (dev_priv->mm.shrinker_no_lock_stealing) |
| 4806 | return SHRINK_STOP; | 4806 | return 0; |
| 4807 | 4807 | ||
| 4808 | unlock = false; | 4808 | unlock = false; |
| 4809 | } | 4809 | } |
| @@ -4901,10 +4901,10 @@ i915_gem_inactive_scan(struct shrinker *shrinker, struct shrink_control *sc) | |||
| 4901 | 4901 | ||
| 4902 | if (!mutex_trylock(&dev->struct_mutex)) { | 4902 | if (!mutex_trylock(&dev->struct_mutex)) { |
| 4903 | if (!mutex_is_locked_by(&dev->struct_mutex, current)) | 4903 | if (!mutex_is_locked_by(&dev->struct_mutex, current)) |
| 4904 | return 0; | 4904 | return SHRINK_STOP; |
| 4905 | 4905 | ||
| 4906 | if (dev_priv->mm.shrinker_no_lock_stealing) | 4906 | if (dev_priv->mm.shrinker_no_lock_stealing) |
| 4907 | return 0; | 4907 | return SHRINK_STOP; |
| 4908 | 4908 | ||
| 4909 | unlock = false; | 4909 | unlock = false; |
| 4910 | } | 4910 | } |
diff --git a/drivers/gpu/drm/i915/i915_gpu_error.c b/drivers/gpu/drm/i915/i915_gpu_error.c index aba9d7498996..dae364f0028c 100644 --- a/drivers/gpu/drm/i915/i915_gpu_error.c +++ b/drivers/gpu/drm/i915/i915_gpu_error.c | |||
| @@ -143,8 +143,10 @@ static void i915_error_vprintf(struct drm_i915_error_state_buf *e, | |||
| 143 | 143 | ||
| 144 | /* Seek the first printf which is hits start position */ | 144 | /* Seek the first printf which is hits start position */ |
| 145 | if (e->pos < e->start) { | 145 | if (e->pos < e->start) { |
| 146 | len = vsnprintf(NULL, 0, f, args); | 146 | va_list tmp; |
| 147 | if (!__i915_error_seek(e, len)) | 147 | |
| 148 | va_copy(tmp, args); | ||
| 149 | if (!__i915_error_seek(e, vsnprintf(NULL, 0, f, tmp))) | ||
| 148 | return; | 150 | return; |
| 149 | } | 151 | } |
| 150 | 152 | ||
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index d8a1d98693e7..e5822e79f912 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c | |||
| @@ -4775,6 +4775,10 @@ static void i9xx_set_pipeconf(struct intel_crtc *intel_crtc) | |||
| 4775 | 4775 | ||
| 4776 | pipeconf = 0; | 4776 | pipeconf = 0; |
| 4777 | 4777 | ||
| 4778 | if (dev_priv->quirks & QUIRK_PIPEA_FORCE && | ||
| 4779 | I915_READ(PIPECONF(intel_crtc->pipe)) & PIPECONF_ENABLE) | ||
| 4780 | pipeconf |= PIPECONF_ENABLE; | ||
| 4781 | |||
| 4778 | if (intel_crtc->pipe == 0 && INTEL_INFO(dev)->gen < 4) { | 4782 | if (intel_crtc->pipe == 0 && INTEL_INFO(dev)->gen < 4) { |
| 4779 | /* Enable pixel doubling when the dot clock is > 90% of the (display) | 4783 | /* Enable pixel doubling when the dot clock is > 90% of the (display) |
| 4780 | * core speed. | 4784 | * core speed. |
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c index 2151d13772b8..79c14e298ba6 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c | |||
| @@ -588,7 +588,18 @@ intel_dp_i2c_aux_ch(struct i2c_adapter *adapter, int mode, | |||
| 588 | DRM_DEBUG_KMS("aux_ch native nack\n"); | 588 | DRM_DEBUG_KMS("aux_ch native nack\n"); |
| 589 | return -EREMOTEIO; | 589 | return -EREMOTEIO; |
| 590 | case AUX_NATIVE_REPLY_DEFER: | 590 | case AUX_NATIVE_REPLY_DEFER: |
| 591 | udelay(100); | 591 | /* |
| 592 | * For now, just give more slack to branch devices. We | ||
| 593 | * could check the DPCD for I2C bit rate capabilities, | ||
| 594 | * and if available, adjust the interval. We could also | ||
| 595 | * be more careful with DP-to-Legacy adapters where a | ||
| 596 | * long legacy cable may force very low I2C bit rates. | ||
| 597 | */ | ||
| 598 | if (intel_dp->dpcd[DP_DOWNSTREAMPORT_PRESENT] & | ||
| 599 | DP_DWN_STRM_PORT_PRESENT) | ||
| 600 | usleep_range(500, 600); | ||
| 601 | else | ||
| 602 | usleep_range(300, 400); | ||
| 592 | continue; | 603 | continue; |
| 593 | default: | 604 | default: |
| 594 | DRM_ERROR("aux_ch invalid native reply 0x%02x\n", | 605 | DRM_ERROR("aux_ch invalid native reply 0x%02x\n", |
diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c index f2c6d7909ae2..dd6f84bf6c22 100644 --- a/drivers/gpu/drm/i915/intel_tv.c +++ b/drivers/gpu/drm/i915/intel_tv.c | |||
| @@ -916,6 +916,14 @@ intel_tv_compute_config(struct intel_encoder *encoder, | |||
| 916 | DRM_DEBUG_KMS("forcing bpc to 8 for TV\n"); | 916 | DRM_DEBUG_KMS("forcing bpc to 8 for TV\n"); |
| 917 | pipe_config->pipe_bpp = 8*3; | 917 | pipe_config->pipe_bpp = 8*3; |
| 918 | 918 | ||
| 919 | /* TV has it's own notion of sync and other mode flags, so clear them. */ | ||
| 920 | pipe_config->adjusted_mode.flags = 0; | ||
| 921 | |||
| 922 | /* | ||
| 923 | * FIXME: We don't check whether the input mode is actually what we want | ||
| 924 | * or whether userspace is doing something stupid. | ||
| 925 | */ | ||
| 926 | |||
| 919 | return true; | 927 | return true; |
| 920 | } | 928 | } |
| 921 | 929 | ||
