Hi Dave and Daniel, Here goes the first pull request targeting 5.20. Kudos to Jani and Ville for a good driver clean-up. And many other fixes and improvements from the team. drm-intel-next-2022-06-22: - General driver clean-up (Jani, Ville, Julia) - DG2 enabling (Anusha, Vandita) - Fix sparse warnings (Imre, Jani) - DMC MMIO range checks (Anusha) - Audio related fixes (Jani) - Runtime PM fixes (Anshuman) - PSR fixes (Jouni, Jose) - Media freq factor and per-gt enhancements (Ashutosh, Dale) - DSI fixes for ICL+ (Jani) - Disable DMC flip queue handlers (Imre) - ADL_P voltage swing updates (Balasubramani) - Use more the VBT for panel information (Ville, Animesh) - Fix on Type-C ports with TBT mode (Vivek) - Improve fastset and allow seamless M/N changes (Ville) - Accept more fixed modes with VRR/DMRRS panels (Ville) - FBC fix (Jose) - Remove noise logs (Luca) - Disable connector polling for a headless SKU (Jouni) - Sanitize display underrun reporting (Ville) - ADL-S display PLL w/a (Ville) Thanks, Rodrigo. The following changes since commit 949665a6e237a6fd49ff207e3876d71b20b7e9f2: drm/i915: Respect VBT seamless DRRS min refresh rate (2022-05-05 18:27:53 +0300) are available in the Git repository at: git://anongit.freedesktop.org/drm/drm-intel tags/drm-intel-next-2022-06-22 for you to fetch changes up to 6434cf630086eea2d091f122f5802582a05d9d1c: drm/i915/bios: calculate panel type as per child device index in VBT (2022-06-20 19:56:06 +0300) ---------------------------------------------------------------- - General driver clean-up (Jani, Ville, Julia) - DG2 enabling (Anusha, Vandita) - Fix sparse warnings (Imre, Jani) - DMC MMIO range checks (Anusha) - Audio related fixes (Jani) - Runtime PM fixes (Anshuman) - PSR fixes (Jouni, Jose) - Media freq factor and per-gt enhancements (Ashutosh, Dale) - DSI fixes for ICL+ (Jani) - Disable DMC flip queue handlers (Imre) - ADL_P voltage swing updates (Balasubramani) - Use more the VBT for panel information (Ville, Animesh) - Fix on Type-C ports with TBT mode (Vivek) - Improve fastset and allow seamless M/N changes (Ville) - Accept more fixed modes with VRR/DMRRS panels (Ville) - FBC fix (Jose) - Remove noise logs (Luca) - Disable connector polling for a headless SKU (Jouni) - Sanitize display underrun reporting (Ville) - ADL-S display PLL w/a (Ville) ---------------------------------------------------------------- Animesh Manna (1): drm/i915/bios: calculate panel type as per child device index in VBT Anshuman Gupta (1): drm/i915: Use drm_dbg for rpm logging Anusha Srivatsa (2): drm/i915/dmc: Load DMC on DG2 drm/i915/dmc: Add MMIO range restrictions Ashutosh Dixit (2): drm/i915: Introduce has_media_ratio_mode drm/i915/pcode: Extend pcode functions for multiple gt's Balasubramani Vivekanandan (2): drm/i915/display/adl_p: Updates to HDMI combo PHY voltage swing table drm/i915/display/adlp: More updates to voltage swing table Dale B Stimson (1): drm/i915/pcode: Add a couple of pcode helpers Imre Deak (2): drm/i915: Fix 'mixing different enum types' warnings in intel_display_power.c drm/i915/d12+: Disable DMC firmware flip queue handlers Jani Nikula (26): drm/i915: remove unused GEM_DEBUG_DECL() and GEM_DEBUG_BUG_ON() drm/i915: remove single-use GEM_DEBUG_EXEC() drm/i915/audio: fix audio code enable/disable pipe logging drm/i915/reg: fix undefined behavior due to shift overflowing the constant drm/i915/dsi: fix VBT send packet port selection for ICL+ drm/i915/display: stop using BUG() drm/i915/regs: split out intel audio register definitions drm/i915/tasklet: separate local hacks around struct tasklet_struct drm/i915/drv: drop intel_bios.h include drm/i915/utils: throw out unused stuff drm/i915/pxp: fix sparse warning for not declared symbol drm/i915/overlay: remove redundant GEM_BUG_ON() drm/i915/bios: use dvi and hdmi support helpers drm/i915/bios: no need to pass i915 to parse_ddi_port() drm/i915/bios: split ddi port parsing and debug printing drm/i915/wm: move wm state verification to intel_pm.c drm/i915/dpll: move shared dpll state verification to intel_dpll_mgr.c drm/i915/mpllb: use I915_STATE_WARN() for state mismatch warnings drm/i915/mpllb: move mpllb state check to intel_snps_phy.c drm/i915/display: split out modeset verification code drm/i915/display: split out crtc state dump to a separate file drm/i915/display: change who adds [] around crtc state dump context string drm/i915/display: rename dev_priv -> i915 in crtc state dump drm/i915/display: some struct drm_i915_private *i915 conversions drm/i915/display: split out hw state readout and sanitize drm/i915/display: convert modeset setup to struct drm_i915_private *i915 Jason A. Donenfeld (1): drm/i915/display: Re-add check for low voltage sku for max dp source rate José Roberto de Souza (2): drm/i915/display/fbc: Do not apply WA 22014263786 to DG2 drm/i915/display: Fix handling of enable_psr parameter Jouni Högander (5): drm/i915/psr: Use full update In case of area calculation fails drm/i915: Ensure damage clip area is within pipe area drm/i915/opregion: add function to check if headless sku drm/i915: Do not start connector polling if display is disabled drm/i915: Do not start connector polling on headless sku Julia Lawall (1): drm/i915: fix typos in comments Luca Coelho (1): drm/i915: remove noisy logs in intel_dp_dsc_get_output_bpp() Vandita Kulkarni (1): drm/i915/dg2: Support 4k@30 on HDMI Ville Syrjälä (42): drm/i915: Rename block_size()/block_offset() drm/i915: Pass intel_connector to intel_vrr_is_capable() drm/i915: Extract intel_edp_fixup_vbt_bpp() drm/i915/pps: Split pps_init_delays() into distinct parts drm/i915/pps: Introduce pps_delays_valid() drm/i915/pps: Don't apply quirks/etc. to the VBT PPS delays if they haven't been initialized drm/i915/pps: Stash away original BIOS programmed PPS delays drm/i915/pps: Split PPS init+sanitize in two drm/i915/pps: Reinit PPS delays after VBT has been fully parsed drm/i915/pps: Keep VDD enabled during eDP probe drm/i915/bios: Split parse_driver_features() into two parts drm/i915/bios: Split VBT parsing to global vs. panel specific parts drm/i915/bios: Split VBT data into per-panel vs. global parts drm/i915/bios: Determine panel type via PNPID match drm/i915: Split shared dpll .get_dplls() into compute and get phases drm/i915: Clean up DPLL related debugs drm/i915: Extract PIPE_CONF_CHECK_TIMINGS() drm/i915: Extract PIPE_CONF_CHECK_RECT() drm/i915: Adjust intel_modeset_pipe_config() & co. calling convention drm/i915: s/pipe_config/crtc_state/ drm/i915: Improve modeset debugs drm/i915: Check hw.enable and hw.active in intel_pipe_config_compare() drm/i915: Require an exact DP link freq match for the DG2 PLL drm/i915: Parse VRR capability from VBT drm/i915: Print out rejected fixed modes drm/i915: Accept more fixed modes with VRR panels drm/i915/bios: Fix aggressiveness typos drm/i915/bios: Define more BDB contents drm/i915: Treat DMRRS as static DRRS drm/i915: Initialize eDP source rates after per-panel VBT parsing drm/i915: Update eDP fast link training link rate parsing drm/i915: Parse max link rate from the eDP BDB block drm/i915: Extract intel_crtc_dotclock() drm/i915: Introduce struct iclkip_params drm/i915: Skip FDI vs. dotclock sanity check during readout drm/i915: Extract intel_sanitize_fifo_underrun_reporting() drm/i915: Sanitize underrun reporting before turning off any pipes drm/i915: Remove bogus LPT iCLKIP WARN drm/i915/bios: Move panel_type stuff out of parse_panel_options() drm/i915/bios: Don't parse the DPS panel type when the VBT does not have it drm/i915/bios: Introduce panel_bits() and panel_bool() drm/i915: Implement w/a 22010492432 for adl-s Vivek Kasireddy (1): drm/i915/tc: Don't default disconnected legacy Type-C ports to TBT mode (v2) drivers/gpu/drm/i915/Makefile | 3 + drivers/gpu/drm/i915/TODO.txt | 2 +- drivers/gpu/drm/i915/display/g4x_dp.c | 22 +- drivers/gpu/drm/i915/display/hsw_ips.c | 4 +- drivers/gpu/drm/i915/display/icl_dsi.c | 11 +- drivers/gpu/drm/i915/display/intel_audio.c | 5 +- drivers/gpu/drm/i915/display/intel_audio_regs.h | 160 ++ drivers/gpu/drm/i915/display/intel_backlight.c | 23 +- drivers/gpu/drm/i915/display/intel_bios.c | 652 ++++--- drivers/gpu/drm/i915/display/intel_bios.h | 7 + drivers/gpu/drm/i915/display/intel_bw.c | 6 +- drivers/gpu/drm/i915/display/intel_cdclk.c | 16 +- drivers/gpu/drm/i915/display/intel_color.c | 2 +- .../gpu/drm/i915/display/intel_crtc_state_dump.c | 314 ++++ .../gpu/drm/i915/display/intel_crtc_state_dump.h | 16 + drivers/gpu/drm/i915/display/intel_ddi.c | 52 +- drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c | 37 +- drivers/gpu/drm/i915/display/intel_display.c | 1826 ++------------------ drivers/gpu/drm/i915/display/intel_display.h | 19 + drivers/gpu/drm/i915/display/intel_display_power.c | 14 +- .../drm/i915/display/intel_display_power_well.c | 4 +- drivers/gpu/drm/i915/display/intel_display_types.h | 89 +- drivers/gpu/drm/i915/display/intel_dmc.c | 147 +- drivers/gpu/drm/i915/display/intel_dmc_regs.h | 59 +- drivers/gpu/drm/i915/display/intel_dp.c | 126 +- drivers/gpu/drm/i915/display/intel_dp.h | 2 + .../gpu/drm/i915/display/intel_dp_aux_backlight.c | 6 +- drivers/gpu/drm/i915/display/intel_dpll.c | 89 +- drivers/gpu/drm/i915/display/intel_dpll_mgr.c | 413 +++-- drivers/gpu/drm/i915/display/intel_dpll_mgr.h | 8 + drivers/gpu/drm/i915/display/intel_drrs.c | 3 - drivers/gpu/drm/i915/display/intel_dsi.c | 2 +- .../gpu/drm/i915/display/intel_dsi_dcs_backlight.c | 9 +- drivers/gpu/drm/i915/display/intel_dsi_vbt.c | 89 +- drivers/gpu/drm/i915/display/intel_fbc.c | 4 +- drivers/gpu/drm/i915/display/intel_hdcp.c | 2 +- drivers/gpu/drm/i915/display/intel_hotplug.c | 3 +- drivers/gpu/drm/i915/display/intel_lvds.c | 8 +- drivers/gpu/drm/i915/display/intel_modeset_setup.c | 734 ++++++++ drivers/gpu/drm/i915/display/intel_modeset_setup.h | 15 + .../gpu/drm/i915/display/intel_modeset_verify.c | 246 +++ .../gpu/drm/i915/display/intel_modeset_verify.h | 21 + drivers/gpu/drm/i915/display/intel_opregion.c | 14 + drivers/gpu/drm/i915/display/intel_opregion.h | 7 + drivers/gpu/drm/i915/display/intel_overlay.c | 2 - drivers/gpu/drm/i915/display/intel_panel.c | 66 +- drivers/gpu/drm/i915/display/intel_panel.h | 3 +- drivers/gpu/drm/i915/display/intel_pch_refclk.c | 91 +- drivers/gpu/drm/i915/display/intel_pps.c | 129 +- drivers/gpu/drm/i915/display/intel_pps.h | 1 + drivers/gpu/drm/i915/display/intel_psr.c | 72 +- drivers/gpu/drm/i915/display/intel_sdvo.c | 5 +- drivers/gpu/drm/i915/display/intel_snps_phy.c | 77 +- drivers/gpu/drm/i915/display/intel_snps_phy.h | 5 +- drivers/gpu/drm/i915/display/intel_tc.c | 3 +- drivers/gpu/drm/i915/display/intel_vbt_defs.h | 67 +- drivers/gpu/drm/i915/display/intel_vrr.c | 30 +- drivers/gpu/drm/i915/display/intel_vrr.h | 4 +- drivers/gpu/drm/i915/display/vlv_dsi.c | 14 +- .../gpu/drm/i915/gt/intel_execlists_submission.c | 2 +- drivers/gpu/drm/i915/gt/intel_gt_pm_debugfs.c | 4 +- drivers/gpu/drm/i915/gt/intel_llc.c | 3 +- drivers/gpu/drm/i915/gt/intel_rc6.c | 4 +- drivers/gpu/drm/i915/gt/intel_ring.c | 3 +- drivers/gpu/drm/i915/gt/intel_rps.c | 5 +- drivers/gpu/drm/i915/gt/selftest_llc.c | 2 +- drivers/gpu/drm/i915/gt/selftest_rps.c | 2 +- drivers/gpu/drm/i915/gt/uc/intel_guc_log.c | 2 +- drivers/gpu/drm/i915/i915_driver.c | 12 +- drivers/gpu/drm/i915/i915_drv.h | 70 +- drivers/gpu/drm/i915/i915_gem.h | 39 - drivers/gpu/drm/i915/i915_pci.c | 2 + drivers/gpu/drm/i915/i915_reg.h | 186 +- drivers/gpu/drm/i915/i915_scheduler.h | 1 + drivers/gpu/drm/i915/i915_tasklet.h | 43 + drivers/gpu/drm/i915/i915_utils.h | 40 - drivers/gpu/drm/i915/intel_device_info.h | 1 + drivers/gpu/drm/i915/intel_dram.c | 2 +- drivers/gpu/drm/i915/intel_gvt_mmio_table.c | 2 + drivers/gpu/drm/i915/intel_pcode.c | 93 +- drivers/gpu/drm/i915/intel_pcode.h | 20 +- drivers/gpu/drm/i915/intel_pm.c | 148 +- drivers/gpu/drm/i915/intel_pm.h | 14 +- drivers/gpu/drm/i915/pxp/intel_pxp_debugfs.c | 5 +- 84 files changed, 3769 insertions(+), 2796 deletions(-) create mode 100644 drivers/gpu/drm/i915/display/intel_audio_regs.h create mode 100644 drivers/gpu/drm/i915/display/intel_crtc_state_dump.c create mode 100644 drivers/gpu/drm/i915/display/intel_crtc_state_dump.h create mode 100644 drivers/gpu/drm/i915/display/intel_modeset_setup.c create mode 100644 drivers/gpu/drm/i915/display/intel_modeset_setup.h create mode 100644 drivers/gpu/drm/i915/display/intel_modeset_verify.c create mode 100644 drivers/gpu/drm/i915/display/intel_modeset_verify.h create mode 100644 drivers/gpu/drm/i915/i915_tasklet.h