Merge tag 'drm-intel-next-2025-02-24' of https://gitlab.freedesktop.org/drm/i915...
authorDave Airlie <airlied@redhat.com>
Wed, 26 Feb 2025 21:13:27 +0000 (07:13 +1000)
committerDave Airlie <airlied@redhat.com>
Wed, 26 Feb 2025 21:13:41 +0000 (07:13 +1000)
drm/i915 feature pull for v6.15:

Features and functionality:
- Enable DP 128b/132b SST DSC (Jani, Imre)
- Allow DSB to perform commits when VRR is enabled (Ville)
- Compute HDMI PLLs for SNPS/C10 PHYs for rates not in fixed tables (Ankit)
- Allow DSB usage when PSR is enabled on LNL+ (Jouni)
- Enable Panel Replay mode change without full modeset (Jouni)
- Enable async flips with compressed buffers on ICL+ (Ville)
- Support luminance based brightness control via DPCD for eDP (Suraj)
- Enable VRR enable/disable without full modeset (Mitul, Ankit)
- Add debugfs facility for force testing HDCP 1.4 (Suraj)
- Add scaler tracepoints, improve plane tracepoints (Ville)
- Improve DMC wakelock debugging facilities (Gustavo)
- Allow GuC SLPC default strategies on MTL+ for performance (Rodrigo)
- Provide more information on display faults (Ville)

Refactoring and cleanups:
- Continue conversions to struct intel_display (Ville, Jani, Suraj, Imre)
- Joiner and Y plane reorganization (Ville)
- Move HDCP debugfs to intel_hdcp.c (Jani)
- Clean up and unify LSPCON interfaces (Jani)
- Move code out of intel_display.c to reduce its size (Ville)
- Clean up and simplify DDI port enabling/disabling (Imre)
- Make LPT LP a dedicated PCH type, refactor (Jani)
- Simplify DSC range BPG offset calculation (Ankit)
- Scaler cleanups (Ville)
- Remove unused code from GVT (David Alan Gilbert)
- Improve plane debugging (Ville)
- DSB and VRR refactoring (Ville)

Fixes:
- Check if vblank is sufficient for DSC prefill and scaler (Mitul)
- Fix Mesa clear color alignment regression (Ville)
- Add missing TC DP PHY lane stagger delay (Imre)
- Fix DSB + VRR usage for PTL+ (Ville)
- Improve robustness of display VT-d workarounds (Ville)
- Fix platforms for dbuf tracker state service programming (Ravi)
- Fix DMC wakelock support conditions (Gustavo)
- Amend DMC wakelock register ranges (Gustavo)
- Disable the Common Primary Timing Generator (CMTG) (Gustavo)
- Enable C20 PHY SSC (Suraj)
- Add workaround for DKL PHY DP mode write (Nemesa)
- Fix build warnings on clamp() usage (Guenter Roeck, Ankit)
- Fix error handling while adding a connector (Imre)
- Avoid full modeset at probe on vblank delay mismatches (Ville)
- Fix encoder HDMI check for HDCP line rekeying (Suraj)
- Fix HDCP repeater authentication during topology change (Suraj)
- Handle display PHY power state reset for power savings (Mika)
- Fix typos all over the place (Nitin)
- Update HDMI TMDS C20 parameters for various platforms (Dnyaneshwar)
- Guarantee a minimum hblank time for 128b/132b and 8b/10b MST (Arun, Imre)
- Do not hardcode LSPCON settle timeout (Giedrius Statkevičius)

Xe driver changes:
- Re-use display vmas when possible (Maarten)
- Remove double pageflip (Maarten)
- Enable DP tunneling (Imre)
- Separate i915 and xe tracepoints (Ville)

DRM core changes:
- Increase DPCD eDP display control CAP size to 5 bytes (Suraj)
- Add DPCD eDP version 1.5 definition (Suraj)
- Add timeout parameter to drm_lspcon_set_mode() (Giedrius Statkevičius)

Merges:
- Backmerge drm-next (Jani)

Signed-off-by: Dave Airlie <airlied@redhat.com>
From: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/87h64j7b7n.fsf@intel.com
20 files changed:
1  2 
MAINTAINERS
drivers/gpu/drm/i915/display/dvo_ns2501.c
drivers/gpu/drm/i915/display/icl_dsi.c
drivers/gpu/drm/i915/display/intel_crt.c
drivers/gpu/drm/i915/display/intel_ddi.c
drivers/gpu/drm/i915/display/intel_dp.c
drivers/gpu/drm/i915/display/intel_dp_link_training.c
drivers/gpu/drm/i915/display/intel_dp_mst.c
drivers/gpu/drm/i915/display/intel_dsi.c
drivers/gpu/drm/i915/display/intel_dvo.c
drivers/gpu/drm/i915/display/intel_dvo_dev.h
drivers/gpu/drm/i915/display/intel_hdmi.c
drivers/gpu/drm/i915/display/intel_lvds.c
drivers/gpu/drm/i915/display/intel_sdvo.c
drivers/gpu/drm/i915/display/intel_tv.c
drivers/gpu/drm/i915/display/vlv_dsi.c
drivers/gpu/drm/i915/gt/intel_reset.c
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
drivers/gpu/drm/i915/selftests/i915_gem_gtt.c
include/drm/display/drm_dp.h

diff --cc MAINTAINERS
Simple merge
index 9ed0924cc0fbbd7f377fca01c4b467b0283b8c24,c1b5be0f5603234c57d398c8bc40cccc7ea4be5d..5d3d54922d629da71ec82f4b743625ced2bc87b9
@@@ -1460,12 -1455,12 +1455,12 @@@ static void gen11_dsi_post_disable(stru
  }
  
  static enum drm_mode_status gen11_dsi_mode_valid(struct drm_connector *connector,
 -                                               struct drm_display_mode *mode)
 +                                               const struct drm_display_mode *mode)
  {
-       struct drm_i915_private *i915 = to_i915(connector->dev);
+       struct intel_display *display = to_intel_display(connector->dev);
        enum drm_mode_status status;
  
-       status = intel_cpu_transcoder_mode_valid(i915, mode);
+       status = intel_cpu_transcoder_mode_valid(display, mode);
        if (status != MODE_OK)
                return status;
  
index aecaaf1d0fe2e858eb180c10725feb1e9459b255,faa261c8930c3c243f8ce2e2bf56597718356b4a..167e4a70ab1216c1dd91fd3923cc192438e6e096
@@@ -1422,8 -1455,8 +1455,8 @@@ static int mst_connector_get_modes(stru
  }
  
  static int
- mst_connector_mode_valid_ctx(struct drm_connector *connector,
+ mst_connector_mode_valid_ctx(struct drm_connector *_connector,
 -                           struct drm_display_mode *mode,
 +                           const struct drm_display_mode *mode,
                             struct drm_modeset_acquire_ctx *ctx,
                             enum drm_mode_status *status)
  {
index c93a3cf75c52cc2bf2f4ba85b0cdef9e3a8ebd76,56a5a517496d01d4def27f23b38a4afcc4b37b4e..403151175a87ebe23d9bfb9624faeefdaa020283
@@@ -58,9 -58,9 +58,9 @@@ int intel_dsi_get_modes(struct drm_conn
  }
  
  enum drm_mode_status intel_dsi_mode_valid(struct drm_connector *connector,
 -                                        struct drm_display_mode *mode)
 +                                        const struct drm_display_mode *mode)
  {
-       struct drm_i915_private *dev_priv = to_i915(connector->dev);
+       struct intel_display *display = to_intel_display(connector->dev);
        struct intel_connector *intel_connector = to_intel_connector(connector);
        const struct drm_display_mode *fixed_mode =
                intel_panel_fixed_mode(intel_connector, mode);
index c310698a1a866180cc865142200c78256c40cf38,0e5728dc09b2a0a52f9053669d349e3ac4d6a9a7..c16fb34b737df5f8233342d0221b6ce46bd4ae3d
@@@ -217,10 -217,10 +217,10 @@@ static void intel_enable_dvo(struct int
  
  static enum drm_mode_status
  intel_dvo_mode_valid(struct drm_connector *_connector,
 -                   struct drm_display_mode *mode)
 +                   const struct drm_display_mode *mode)
  {
+       struct intel_display *display = to_intel_display(_connector->dev);
        struct intel_connector *connector = to_intel_connector(_connector);
-       struct drm_i915_private *i915 = to_i915(connector->base.dev);
        struct intel_dvo *intel_dvo = intel_attached_dvo(connector);
        const struct drm_display_mode *fixed_mode =
                intel_panel_fixed_mode(connector, mode);
index 4b0dce169d4e289190686cf6a4c4a597156bf6ff,12bbd7ec9d81f6678ce9dee2a892dc9a58ed31fe..7ed8625193fecf439110f74123ca44ff80689ad6
@@@ -390,16 -392,16 +392,16 @@@ static void intel_lvds_shutdown(struct 
  
  static enum drm_mode_status
  intel_lvds_mode_valid(struct drm_connector *_connector,
 -                    struct drm_display_mode *mode)
 +                    const struct drm_display_mode *mode)
  {
+       struct intel_display *display = to_intel_display(_connector->dev);
        struct intel_connector *connector = to_intel_connector(_connector);
-       struct drm_i915_private *i915 = to_i915(connector->base.dev);
        const struct drm_display_mode *fixed_mode =
                intel_panel_fixed_mode(connector, mode);
-       int max_pixclk = to_i915(connector->base.dev)->display.cdclk.max_dotclk_freq;
+       int max_pixclk = display->cdclk.max_dotclk_freq;
        enum drm_mode_status status;
  
-       status = intel_cpu_transcoder_mode_valid(i915, mode);
+       status = intel_cpu_transcoder_mode_valid(display, mode);
        if (status != MODE_OK)
                return status;
  
index 1b6040892c401aac2ec69307440f3b552f879f8b,efb439f1f6a03be04ee68d04483849e335f389e3..6e2d9929b4d7257ba60484ee035c11b966e024f3
@@@ -1938,9 -1940,9 +1940,9 @@@ static void intel_enable_sdvo(struct in
  
  static enum drm_mode_status
  intel_sdvo_mode_valid(struct drm_connector *connector,
 -                    struct drm_display_mode *mode)
 +                    const struct drm_display_mode *mode)
  {
-       struct drm_i915_private *i915 = to_i915(connector->dev);
+       struct intel_display *display = to_intel_display(connector->dev);
        struct intel_sdvo *intel_sdvo = intel_attached_sdvo(to_intel_connector(connector));
        struct intel_sdvo_connector *intel_sdvo_connector =
                to_intel_sdvo_connector(connector);
index 1c50732a099dcd312169f20e7876250a93b655e7,5964d1279a41eff3082d870af19b156e9716ed89..5dbe857ea85bbd01203be2fc59ec5c2fecbf62d3
@@@ -957,10 -957,9 +957,9 @@@ static const struct tv_mode *intel_tv_m
  
  static enum drm_mode_status
  intel_tv_mode_valid(struct drm_connector *connector,
 -                  struct drm_display_mode *mode)
 +                  const struct drm_display_mode *mode)
  {
        struct intel_display *display = to_intel_display(connector->dev);
-       struct drm_i915_private *i915 = to_i915(connector->dev);
        const struct tv_mode *tv_mode = intel_tv_mode_find(connector->state);
        int max_dotclk = display->cdclk.max_dotclk_freq;
        enum drm_mode_status status;
index c4d731ab28eb1edbd113464e3dab1eb4db742a1b,03ba63c0032b4a2a7811a63065c5c05640be7d35..7414794889e944af7c62bac46d3b2c9f975d81a8
@@@ -1541,14 -1541,14 +1541,14 @@@ static const struct drm_encoder_funcs i
  };
  
  static enum drm_mode_status vlv_dsi_mode_valid(struct drm_connector *connector,
 -                                             struct drm_display_mode *mode)
 +                                             const struct drm_display_mode *mode)
  {
-       struct drm_i915_private *i915 = to_i915(connector->dev);
+       struct intel_display *display = to_intel_display(connector->dev);
  
-       if (IS_VALLEYVIEW(i915) || IS_CHERRYVIEW(i915)) {
+       if (display->platform.valleyview || display->platform.cherryview) {
                enum drm_mode_status status;
  
-               status = intel_cpu_transcoder_mode_valid(i915, mode);
+               status = intel_cpu_transcoder_mode_valid(display, mode);
                if (status != MODE_OK)
                        return status;
        }
Simple merge
Simple merge