Commit 0b45ac11 authored by Dave Airlie's avatar Dave Airlie
Browse files

Merge tag 'drm-intel-next-2023-01-12' of git://anongit.freedesktop.org/drm/drm-intel into drm-next



drm/i915 feature pull #1 for v6.3:

Features and functionality:
- Meteorlake display enabling (Animesh, Luca, Stan, Jouni, Anusha)
- DP MST DSC support (Stan)
- Gamma/degamma readout support for the state checker (Ville)
- Enable SDP split support for DP 2.0 (Vinod)
- Add probe blocking support to i915.force_probe parameter (Rodrigo)
- Enable Xe HP 4tile support (Jonathan)

Refactoring and cleanups:
- Color refactoring, especially related to DSB usage (Ville)
- DSB refactoring (Ville)
- DVO refactoring (Ville)
- Backlight register and logging cleanups (Jani)
- Avoid display direct calls to uncore (Maarten, Jani)
- Add new "soc" sub-directory (Jani)
- Refactor DSC platform support checks (Swati)

Fixes:
- Interlace modes are no longer supported starting at display version 12 (Ankit)
- Use polling read for aux control (Arun)
- DMC firmware no longer requires specific versions (Gustavo)
- Fix PSR flickering and freeze issues (Jouni)
- Fix ICL+ DSI GPIO handling (Jani)
- Ratelimit errors in display engine irqs (Lucas)
- Fix DP MST DSC bpp and timeslot calculations (Stan)
- Fix CDCLK squash and crawl sequences (Ville, Anusha)
- Fix bigjoiner checks for fused pipes (Ville)
- Fix ADP+ degamma LUT size (Ville)
- Fix DVO ch7xxx and sil164 suspend/resume (Ville)
- Fix memory leak in VBT parsing (Xia Fukun)
- Fix VBT packet port selection for dual link DSI (Mikko Kovanen)
- Fix SDP infoframe product string for discrete graphics (Clint)
- Fix VLV/CHV HDMI/DP audio enable (Ville)
- Fix VRR delays and calculations (Ville)
- No longer disable transcoder for PHY test pattern change (Khaled)
- Fix dual PPS handling (Ville)
- Fix timeout and wait for DDI BUF CTL active after enabling (Ankit)

Merges:
- Backmerge drm-next to sync up with v6.2-rc1 (Jani)

Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
From: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/87tu0wez34.fsf@intel.com
parents c37ea39c f71c9b7b
Loading
Loading
Loading
Loading
+12 −3
Original line number Diff line number Diff line
@@ -56,24 +56,33 @@ config DRM_I915
	  If "M" is selected, the module will be called i915.

config DRM_I915_FORCE_PROBE
	string "Force probe driver for selected new Intel hardware"
	string "Force probe i915 for selected Intel hardware IDs"
	depends on DRM_I915
	help
	  This is the default value for the i915.force_probe module
	  parameter. Using the module parameter overrides this option.

	  Force probe the driver for new Intel graphics devices that are
	  Force probe the i915 for Intel graphics devices that are
	  recognized but not properly supported by this kernel version. It is
	  recommended to upgrade to a kernel version with proper support as soon
	  as it is available.

	  It can also be used to block the probe of recognized and fully
	  supported devices.

	  Use "" to disable force probe. If in doubt, use this.

	  Use "<pci-id>[,<pci-id>,...]" to force probe the driver for listed
	  Use "<pci-id>[,<pci-id>,...]" to force probe the i915 for listed
	  devices. For example, "4500" or "4500,4571".

	  Use "*" to force probe the driver for all known devices.

	  Use "!" right before the ID to block the probe of the device. For
	  example, "4500,!4571" forces the probe of 4500 and blocks the probe of
	  4571.

	  Use "!*" to block the probe of the driver for all known devices.

config DRM_I915_CAPTURE_ERROR
	bool "Enable capturing GPU state following a hang"
	depends on DRM_I915
+5 −2
Original line number Diff line number Diff line
@@ -48,9 +48,7 @@ i915-y += i915_driver.o \
	  i915_sysfs.o \
	  i915_utils.o \
	  intel_device_info.o \
	  intel_dram.o \
	  intel_memory_region.o \
	  intel_pch.o \
	  intel_pcode.o \
	  intel_pm.o \
	  intel_region_ttm.o \
@@ -62,6 +60,11 @@ i915-y += i915_driver.o \
	  vlv_sideband.o \
	  vlv_suspend.o

# core peripheral code
i915-y += \
	soc/intel_dram.o \
	soc/intel_pch.o

# core library code
i915-y += \
	i915_memcpy.o \
+20 −2
Original line number Diff line number Diff line
@@ -50,15 +50,26 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define CH7xxx_INPUT_CLOCK	0x1d
#define CH7xxx_GPIO		0x1e
#define CH7xxx_GPIO_HPIR	(1<<3)
#define CH7xxx_IDF		0x1f

#define CH7xxx_IDF		0x1f
#define CH7xxx_IDF_IBS		(1<<7)
#define CH7xxx_IDF_DES		(1<<6)
#define CH7xxx_IDF_HSP		(1<<3)
#define CH7xxx_IDF_VSP		(1<<4)

#define CH7xxx_CONNECTION_DETECT 0x20
#define CH7xxx_CDET_DVI		(1<<5)

#define CH7301_DAC_CNTL		0x21
#define CH7xxx_DAC_CNTL		0x21
#define CH7xxx_SYNCO_MASK	(3 << 3)
#define CH7xxx_SYNCO_VGA_HSYNC	(1 << 3)

#define CH7xxx_CLOCK_OUTPUT	0x22
#define CH7xxx_BCOEN		(1 << 4)
#define CH7xxx_BCOP		(1 << 3)
#define CH7xxx_BCO_MASK		(7 << 0)
#define CH7xxx_BCO_VGA_VSYNC	(6 << 0)

#define CH7301_HOTPLUG		0x23
#define CH7xxx_TCTL		0x31
#define CH7xxx_TVCO		0x32
@@ -301,6 +312,8 @@ static void ch7xxx_mode_set(struct intel_dvo_device *dvo,

	ch7xxx_readb(dvo, CH7xxx_IDF, &idf);

	idf |= CH7xxx_IDF_IBS;

	idf &= ~(CH7xxx_IDF_HSP | CH7xxx_IDF_VSP);
	if (mode->flags & DRM_MODE_FLAG_PHSYNC)
		idf |= CH7xxx_IDF_HSP;
@@ -309,6 +322,11 @@ static void ch7xxx_mode_set(struct intel_dvo_device *dvo,
		idf |= CH7xxx_IDF_VSP;

	ch7xxx_writeb(dvo, CH7xxx_IDF, idf);

	ch7xxx_writeb(dvo, CH7xxx_DAC_CNTL,
		      CH7xxx_SYNCO_VGA_HSYNC);
	ch7xxx_writeb(dvo, CH7xxx_CLOCK_OUTPUT,
		      CH7xxx_BCOEN | CH7xxx_BCO_VGA_VSYNC);
}

/* set the CH7xxx power state */
+11 −2
Original line number Diff line number Diff line
@@ -58,6 +58,10 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define SIL164_9_MDI (1<<0)

#define SIL164_REGC 0x0c
#define SIL164_C_SCNT (1<<7)
#define SIL164_C_PLLF_MASK (0xf<<1)
#define SIL164_C_PLLF_REC (4<<1)
#define SIL164_C_PFEN (1<<0)

struct sil164_priv {
	//I2CDevRec d;
@@ -205,7 +209,13 @@ static void sil164_mode_set(struct intel_dvo_device *dvo,
	  sil164_writeb(sil, 0x0c, 0x89);
	  sil164_writeb(sil, 0x08, 0x31);*/
	/* don't do much */
	return;

	sil164_writeb(dvo, SIL164_REG8,
		      SIL164_8_VEN | SIL164_8_HEN);
	sil164_writeb(dvo, SIL164_REG9,
		      SIL164_9_TSEL);
	sil164_writeb(dvo, SIL164_REGC,
		      SIL164_C_PLLF_REC | SIL164_C_PFEN);
}

/* set the SIL164 power state */
@@ -224,7 +234,6 @@ static void sil164_dpms(struct intel_dvo_device *dvo, bool enable)
		ch &= ~SIL164_8_PD;

	sil164_writeb(dvo, SIL164_REG8, ch);
	return;
}

static bool sil164_get_hw_state(struct intel_dvo_device *dvo)
+1 −1
Original line number Diff line number Diff line
@@ -2043,7 +2043,7 @@ void icl_dsi_init(struct drm_i915_private *dev_priv)
	/* attach connector to encoder */
	intel_connector_attach_encoder(intel_connector, encoder);

	intel_bios_init_panel(dev_priv, &intel_connector->panel, NULL, NULL);
	intel_bios_init_panel_late(dev_priv, &intel_connector->panel, NULL, NULL);

	mutex_lock(&dev_priv->drm.mode_config.mutex);
	intel_panel_add_vbt_lfp_fixed_mode(intel_connector);
Loading