Commit 1cc4af41 authored by Dave Airlie's avatar Dave Airlie
Browse files

Merge tag 'drm-intel-next-2020-07-02' of git://anongit.freedesktop.org/drm/drm-intel into drm-next



drm/i915 features for v5.9

Highlights:
- Rocket Lake (RKL) platform enabling (Matt Roper, Lucas, José, Aditya)

Gem/GT:
- Numerous selftest fixes and improvements (Chris)
- TGL, RKL, EHL workaround updates (Matts Atwood and Roper, Clint, Swathi Dhanavanthri, Chris)
- Retry faulthandlers on ENOSPC to avoid oomkiller (Chris)
- Numerous refactorings and cleanups (Chris)
- Several GT fixes around init/suspend/resume/shutdown (Chris)
- Whitelist CTX_TIMESTAMP register on non-RCS (Chris)
- Track if an engine requires forcewake w/a (Chris)
- Locking improvements (Chris)
- Timeslicing improvements (Chris)
- Add a safety submission flush in the heartbeat (Chris)
- Flush gen3 relocs harder (Chris)
- Discard a misplaced GGTT vma (Chris)
- Reduce relocation paths to async GPU relocations only (Chris)
- It's all build up with no pay off (Chris' own words...)

Display:
- A plethora of DP MST fixes (Imre)
- Implement proper dbuf global state (Ville)
- Consider dbuf bandwidth when calculating CDCLK (Stan)
- FBC fixes and refactoring (Ville)
- PSR fixes and improvements (José, Gwan-gyeong)
- Cursor size fixes (Ville)
- Overlay color and gamma fixes (Ville)
- Fix and improve FSB and HRAWCLK read out (Ville)
- Pre allocate and late cleanup of DSB cmd buffer (Animesh)
- Stop using mode->private_flags (Ville)
- Add plane color encoding support for YCBCR_BT2020 (Kishore Kadiyala)
- Update TGL Type-C DP and DKL HBR and HBR+ vswing tables (José)
- Fix DSI connector init error path (Vivek)
- A plethora of DP vswing/preemph fixes and refactoring (Ville)
- Fix TGL DKL vswing sequence selection (Vandita)
- Fix ICL hotplug interrupt disabling after storm detection (Imre)
- Retry HDCP link integrity check on failure (Oliver Barta)
- Fix TBT DPLL fractional divider (Imre)
- Fix ICL+ HBR3 source rate (Matt Atwood)
- Fix gen2 spurious underruns (Ville)
- Fix potential NULL dereference, some spelling fixes (Colin Ian King)
- Fix NULL dereference on encoder state probe (Chris)

Other:
- Backmerge to get mmap locking API (Jani)
- Distinguish Comet Lake from Coffee Lake (Chris)
- Various compiler warning fixes (Arnd Bergmann, Nathan Chancellor)
- WARN* conversions to drm_WARN* (Pankaj)
- Switch to device specific parameters with debugfs access (Jani)
- Fix agp/intel error path leak (Qiushi Wu)
- Forcewake power optimization (Chris)
- Irq handler optimization (Chris)

Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
From: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/87wo3lkbxt.fsf@intel.com
parents 9555152b d524b87f
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -550,6 +550,7 @@ static const struct pci_device_id intel_early_ids[] __initconst = {
	INTEL_ICL_11_IDS(&gen11_early_ops),
	INTEL_EHL_IDS(&gen11_early_ops),
	INTEL_TGL_12_IDS(&gen11_early_ops),
	INTEL_RKL_IDS(&gen11_early_ops),
};

struct resource intel_graphics_stolen_res __ro_after_init = DEFINE_RES_MEM(0, 0);
+3 −1
Original line number Diff line number Diff line
@@ -304,8 +304,10 @@ static int intel_gtt_setup_scratch_page(void)
	if (intel_private.needs_dmar) {
		dma_addr = pci_map_page(intel_private.pcidev, page, 0,
				    PAGE_SIZE, PCI_DMA_BIDIRECTIONAL);
		if (pci_dma_mapping_error(intel_private.pcidev, dma_addr))
		if (pci_dma_mapping_error(intel_private.pcidev, dma_addr)) {
			__free_page(page);
			return -EINVAL;
		}

		intel_private.scratch_page_dma = dma_addr;
	} else
+1 −1
Original line number Diff line number Diff line
@@ -5,7 +5,7 @@
 * a module parameter. It must be unique and legal for a C identifier.
 *
 * The function should be of type int function(void). It may be conditionally
 * compiled using #if IS_ENABLED(DRM_I915_SELFTEST).
 * compiled using #if IS_ENABLED(CONFIG_DRM_I915_SELFTEST).
 *
 * Tests are executed in order by igt/dmabuf_selftest
 */
+2 −0
Original line number Diff line number Diff line
@@ -78,6 +78,8 @@ gt-y += \
	gt/debugfs_engines.o \
	gt/debugfs_gt.o \
	gt/debugfs_gt_pm.o \
	gt/gen2_engine_cs.o \
	gt/gen6_engine_cs.o \
	gt/gen6_ppgtt.o \
	gt/gen7_renderclear.o \
	gt/gen8_ppgtt.o \
+5 −9
Original line number Diff line number Diff line
@@ -1469,8 +1469,7 @@ static void gen11_dsi_get_config(struct intel_encoder *encoder,
	pipe_config->pipe_bpp = bdw_get_pipemisc_bpp(crtc);

	if (gen11_dsi_is_periodic_cmd_mode(intel_dsi))
		pipe_config->hw.adjusted_mode.private_flags |=
					I915_MODE_FLAG_DSI_PERIODIC_CMD_MODE;
		pipe_config->mode_flags |= I915_MODE_FLAG_DSI_PERIODIC_CMD_MODE;
}

static int gen11_dsi_dsc_compute_config(struct intel_encoder *encoder,
@@ -1558,10 +1557,6 @@ static int gen11_dsi_compute_config(struct intel_encoder *encoder,

	pipe_config->port_clock = afe_clk(encoder, pipe_config) / 5;

	/* We would not operate in periodic command mode */
	pipe_config->hw.adjusted_mode.private_flags &=
					~I915_MODE_FLAG_DSI_PERIODIC_CMD_MODE;

	/*
	 * In case of TE GATE cmd mode, we
	 * receive TE from the slave if
@@ -1569,14 +1564,14 @@ static int gen11_dsi_compute_config(struct intel_encoder *encoder,
	 */
	if (is_cmd_mode(intel_dsi)) {
		if (intel_dsi->ports == (BIT(PORT_B) | BIT(PORT_A)))
			pipe_config->hw.adjusted_mode.private_flags |=
			pipe_config->mode_flags |=
						I915_MODE_FLAG_DSI_USE_TE1 |
						I915_MODE_FLAG_DSI_USE_TE0;
		else if (intel_dsi->ports == BIT(PORT_B))
			pipe_config->hw.adjusted_mode.private_flags |=
			pipe_config->mode_flags |=
						I915_MODE_FLAG_DSI_USE_TE1;
		else
			pipe_config->hw.adjusted_mode.private_flags |=
			pipe_config->mode_flags |=
						I915_MODE_FLAG_DSI_USE_TE0;
	}

@@ -1954,6 +1949,7 @@ void icl_dsi_init(struct drm_i915_private *dev_priv)
	return;

err:
	drm_connector_cleanup(connector);
	drm_encoder_cleanup(&encoder->base);
	kfree(intel_dsi);
	kfree(intel_connector);
Loading