Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b97b869a authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux

Pull drm fixes from Dave Airlie:
 "Nothing too major, radeon still has some dpm changes for off by
  default.

  Radeon, intel, msm:
   - radeon: a few more dpm fixes (still off by default), uvd fixes
   - i915: runtime warn backtrace and regression fix
   - msm: iommu changes fallout"

* 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: (27 commits)
  drm/msm: use drm_gem_dumb_destroy helper
  drm/msm: deal with mach/iommu.h removal
  drm/msm: Remove iommu include from mdp4_kms.c
  drm/msm: Odd PTR_ERR usage
  drm/i915: Fix up usage of SHRINK_STOP
  drm/radeon: fix hdmi audio on DCE3.0/3.1 asics
  drm/i915: preserve pipe A quirk in i9xx_set_pipeconf
  drm/i915/tv: clear adjusted_mode.flags
  drm/i915/dp: increase i2c-over-aux retry interval on AUX DEFER
  drm/radeon/cik: fix overflow in vram fetch
  drm/radeon: add missing hdmi callbacks for rv6xx
  drm/i915: Use a temporary va_list for two-pass string handling
  drm/radeon/uvd: lower msg&fb buffer requirements on UVD3
  drm/radeon: disable tests/benchmarks if accel is disabled
  drm/radeon: don't set default clocks for SI when DPM is disabled
  drm/radeon/dpm/ci: filter clocks based on voltage/clk dep tables
  drm/radeon/dpm/si: filter clocks based on voltage/clk dep tables
  drm/radeon/dpm/ni: filter clocks based on voltage/clk dep tables
  drm/radeon/dpm/btc: filter clocks based on voltage/clk dep tables
  drm/radeon/dpm: fetch the max clk from voltage dep tables helper
  ...
parents 669fc2f0 66544179
Loading
Loading
Loading
Loading
+4 −4
Original line number Original line Diff line number Diff line
@@ -4800,10 +4800,10 @@ i915_gem_inactive_count(struct shrinker *shrinker, struct shrink_control *sc)


	if (!mutex_trylock(&dev->struct_mutex)) {
	if (!mutex_trylock(&dev->struct_mutex)) {
		if (!mutex_is_locked_by(&dev->struct_mutex, current))
		if (!mutex_is_locked_by(&dev->struct_mutex, current))
			return SHRINK_STOP;
			return 0;


		if (dev_priv->mm.shrinker_no_lock_stealing)
		if (dev_priv->mm.shrinker_no_lock_stealing)
			return SHRINK_STOP;
			return 0;


		unlock = false;
		unlock = false;
	}
	}
@@ -4901,10 +4901,10 @@ i915_gem_inactive_scan(struct shrinker *shrinker, struct shrink_control *sc)


	if (!mutex_trylock(&dev->struct_mutex)) {
	if (!mutex_trylock(&dev->struct_mutex)) {
		if (!mutex_is_locked_by(&dev->struct_mutex, current))
		if (!mutex_is_locked_by(&dev->struct_mutex, current))
			return 0;
			return SHRINK_STOP;


		if (dev_priv->mm.shrinker_no_lock_stealing)
		if (dev_priv->mm.shrinker_no_lock_stealing)
			return 0;
			return SHRINK_STOP;


		unlock = false;
		unlock = false;
	}
	}
+4 −2
Original line number Original line Diff line number Diff line
@@ -143,8 +143,10 @@ static void i915_error_vprintf(struct drm_i915_error_state_buf *e,


	/* Seek the first printf which is hits start position */
	/* Seek the first printf which is hits start position */
	if (e->pos < e->start) {
	if (e->pos < e->start) {
		len = vsnprintf(NULL, 0, f, args);
		va_list tmp;
		if (!__i915_error_seek(e, len))

		va_copy(tmp, args);
		if (!__i915_error_seek(e, vsnprintf(NULL, 0, f, tmp)))
			return;
			return;
	}
	}


+4 −0
Original line number Original line Diff line number Diff line
@@ -4775,6 +4775,10 @@ static void i9xx_set_pipeconf(struct intel_crtc *intel_crtc)


	pipeconf = 0;
	pipeconf = 0;


	if (dev_priv->quirks & QUIRK_PIPEA_FORCE &&
	    I915_READ(PIPECONF(intel_crtc->pipe)) & PIPECONF_ENABLE)
		pipeconf |= PIPECONF_ENABLE;

	if (intel_crtc->pipe == 0 && INTEL_INFO(dev)->gen < 4) {
	if (intel_crtc->pipe == 0 && INTEL_INFO(dev)->gen < 4) {
		/* Enable pixel doubling when the dot clock is > 90% of the (display)
		/* Enable pixel doubling when the dot clock is > 90% of the (display)
		 * core speed.
		 * core speed.
+12 −1
Original line number Original line Diff line number Diff line
@@ -588,7 +588,18 @@ intel_dp_i2c_aux_ch(struct i2c_adapter *adapter, int mode,
			DRM_DEBUG_KMS("aux_ch native nack\n");
			DRM_DEBUG_KMS("aux_ch native nack\n");
			return -EREMOTEIO;
			return -EREMOTEIO;
		case AUX_NATIVE_REPLY_DEFER:
		case AUX_NATIVE_REPLY_DEFER:
			udelay(100);
			/*
			 * For now, just give more slack to branch devices. We
			 * could check the DPCD for I2C bit rate capabilities,
			 * and if available, adjust the interval. We could also
			 * be more careful with DP-to-Legacy adapters where a
			 * long legacy cable may force very low I2C bit rates.
			 */
			if (intel_dp->dpcd[DP_DOWNSTREAMPORT_PRESENT] &
			    DP_DWN_STRM_PORT_PRESENT)
				usleep_range(500, 600);
			else
				usleep_range(300, 400);
			continue;
			continue;
		default:
		default:
			DRM_ERROR("aux_ch invalid native reply 0x%02x\n",
			DRM_ERROR("aux_ch invalid native reply 0x%02x\n",
+8 −0
Original line number Original line Diff line number Diff line
@@ -916,6 +916,14 @@ intel_tv_compute_config(struct intel_encoder *encoder,
	DRM_DEBUG_KMS("forcing bpc to 8 for TV\n");
	DRM_DEBUG_KMS("forcing bpc to 8 for TV\n");
	pipe_config->pipe_bpp = 8*3;
	pipe_config->pipe_bpp = 8*3;


	/* TV has it's own notion of sync and other mode flags, so clear them. */
	pipe_config->adjusted_mode.flags = 0;

	/*
	 * FIXME: We don't check whether the input mode is actually what we want
	 * or whether userspace is doing something stupid.
	 */

	return true;
	return true;
}
}


Loading