1. 09 Oct, 2023 29 commits
  2. 04 Oct, 2023 1 commit
    • Dave Airlie's avatar
      Merge tag 'drm-intel-next-2023-09-29' of git://anongit.freedesktop.org/drm/drm-intel into drm-next · 389af786
      Dave Airlie authored
      drm/i915 feature pull for v6.7:
      
      Features and functionality:
      - Early Xe2 LPD / Lunarlake (LNL) display enabling (Lucas, Matt, Gustavo,
        Stanislav, Luca, Clint, Juha-Pekka, Balasubramani, Ravi)
      - Plenty of various DSC improvements and fixes (Ankit)
      - Add DSC PPS state readout and verification (Suraj)
      - Improve fastsets for VRR, LRR and M/N updates (Ville)
      - Use connector->ddc to create (non-DP MST) connector sysfs ddc symlinks (Ville)
      - Various DSB improvements, load LUTs using DSB (Ville)
      - Improve shared link bandwidth management, starting with FDI (Imre)
      - Optimize get param ioctl for PXP status (Alan)
      - Remove DG2 pre-production hardware workarounds (Matt)
      - Add more RPL P/U PCI IDs (Dnyaneshwar)
      - Add new DG2-G12 stepping (Swati)
      - Add PSR sink error status to debugfs (Jouni)
      - Add DP enhanced framing to crtc state checker (Ville)
      
      Refactoring and cleanups:
      - Simplify TileY/Tile4 tiling selftest enumeration (Matt)
      - Remove some unused power domain code (Gustavo)
      - Check stepping of display IP version rather than MTL platform (Matt)
      - DP audio compute config cleanups (Vinod)
      - SDVO cleanups and refactoring, more robust failure handling (Ville)
      - Color register definition and readout cleanups (Jani)
      - Reduce header interdependencies for frontbuffer tracking (Jani)
      - Continue replacing struct edid with struct drm_edid (Jani)
      - Use source physical address instead of EDID for CEC (Jani)
      - Clean up Type-C port lane count functions (Luca)
      - Clean up DSC PPS register definitions and readout (Jani)
      - Stop using GEM_BUG_ON()/GEM_WARN_ON() in display code (Jani)
      - Move more of the display probe to display code (Jani)
      - Remove redundant runtime suspended state flag (Jouni)
      - Move display info printing to display code (Balasubramani)
      - Frontbuffer tracking improvements (Jouni)
      - Add trailing newlines to debug logging (Jim Cromie)
      - Separate display workarounds from clock gating init (Matt)
      - Reduce dmesg log spamming for combo PHY, PLL state, FEC, DP MST (Ville, Imre)
      
      Fixes:
      - Fix hotplug poll detect loops via suspend/resume (Imre)
      - Fix hotplug detect for forced connectors (Imre)
      - Fix DSC first_line_bpg_offset calculation (Suraj)
      - Fix debug prints for SDP CRC16 (Arun)
      - Fix PXP runtime resume (Alan)
      - Fix cx0 PHY lane handling (Gustavo)
      - Fix frontbuffer tracking locking in debugfs (Juha-Pekka)
      - Fix SDVO detect on some models (Ville)
      - Fix SDP split configuration for DP MST (Vinod)
      - Fix AUX usage and reads for HDCP on DP MST (Suraj)
      - Fix PSR workaround (Jouni)
      - Fix redundant AUX power get/put in DP force (Imre)
      - Fix ICL DSI TCLK POST by letting hardware handle it (William)
      - Fix IRQ reset for XE LP+ (Gustavo)
      - Fix h/vsync_end instead of h/vtotal in VBT (Ville)
      - Fix C20 PHY msgbus timeout issues (Gustavo)
      - Fix pre-TGL FEC pipe A vs. DDI A mixup (Ville)
      - Fix FEC state readout for DP MST (Ville)
      
      DRM subsystem core changes:
      - Assume sink supports 8 bpc when DSC is supported (Ankit)
      - Add drm_edid_is_digital() helper (Jani)
      - Parse source physical address from EDID (Jani)
      - Add function to attach CEC without EDID (Jani)
      - Reorder connector sysfs/debugfs remove (Ville)
      - Register connector sysfs ddc symlink later (Ville)
      
      Media subsystem changes:
      - Add comments about CEC source physical address usage (Jani)
      
      Merges:
      - Backmerge drm-next to get v6.6-rc1 (Jani)
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      # Conflicts:
      #	drivers/gpu/drm/i915/i915_drv.h
      From: Jani Nikula <jani.nikula@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/87r0mhi7a6.fsf@intel.com
      389af786
  3. 02 Oct, 2023 1 commit
    • Dave Airlie's avatar
      Merge tag 'drm-intel-gt-next-2023-09-28' of... · caacbdc2
      Dave Airlie authored
      Merge tag 'drm-intel-gt-next-2023-09-28' of git://anongit.freedesktop.org/drm/drm-intel into drm-next
      
      Driver Changes:
      
      Fixes/improvements/new stuff:
      
      - Fix TLB-Invalidation seqno store [mtl] (Alan Previn)
      - Force a reset on internal GuC error [guc] (John Harrison)
      - Define GSC fw [gsc] (Daniele Ceraolo Spurio)
      - Update workaround 14016712196 [dg2/mtl] (Tejas Upadhyay)
      - Mark requests for GuC virtual engines to avoid use-after-free (Andrzej Hajda)
      - Add Wa_14015150844 [dg2/mtl] (Shekhar Chauhan)
      - Prevent error pointer dereference (Dan Carpenter)
      - Add Wa_18022495364 [tgl,adl,rpl] (Dnyaneshwar Bhadane)
      - Fix GuC PMU by moving execlist stats initialization to execlist specific setup (Umesh Nerlige Ramappa)
      - Fix PXP firmware load [pxp/mtl] (Alan Previn)
      - Fix execution/context state of PXP contexts (Alan Previn)
      - Limit the length of an sg list to the requested length (Matthew Wilcox)
      - Fix reservation address in ggtt_reserve_guc_top [guc] (Javier Pello)
      - Add Wa_18028616096 [dg2] (Shekhar Chauhan)
      - Get runtime pm in busyness worker only if already active [guc/pmu] (Umesh Nerlige Ramappa)
      - Don't set PIPE_CONTROL_FLUSH_L3 for aux inval (Nirmoy Das)
      
      Future platform enablement:
      
      - Fix and consolidate some workaround checks, make others IP version based [mtl] (Matt Roper)
      - Replace Meteorlake subplatforms with IP version checks (Matt Roper)
      - Adding DeviceID for Arrowlake-S under MTL [mtl] (Nemesa Garg)
      - Run relevant bits of debugfs drop_caches per GT (Tvrtko Ursulin)
      
      Miscellaneous:
      
      - Remove Wa_15010599737 [dg2] (Shekhar Chauhan)
      - Align igt_spinner_create_request with hangcheck [selftests] (Jonathan Cavitt)
      - Remove pre-production workarounds [dg2] (Matt Roper)
      - Tidy some workaround definitions (Matt Roper)
      - Wait longer for tasks in migrate selftest [gt] (Jonathan Cavitt)
      - Skip WA verification for GEN7_MISCCPCTL on DG2 [gt] (Andrzej Hajda)
      - Silence injected failure in the load via GSC path [huc] (Daniele Ceraolo Spurio)
      - Refactor deprecated strncpy (Justin Stitt)
      - Update RC6 mask for mtl_drpc [debugfs/mtl] (Badal Nilawar)
      - Remove a static inline that requires including i915_drv.h [gt] (Jani Nikula)
      - Remove inlines from i915_gem_execbuffer.c [gem] (Jani Nikula)
      - Remove gtt_offset from stream->oa_buffer.head/.tail [perf] (Ashutosh Dixit)
      - Do not disable preemption for resets (Tvrtko Ursulin)
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      From: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/ZRVzL02VFuwIkcGl@tursulin-desk
      caacbdc2
  4. 29 Sep, 2023 2 commits
  5. 28 Sep, 2023 7 commits
    • Dave Airlie's avatar
      Merge tag 'drm-misc-next-2023-09-27' of git://anongit.freedesktop.org/drm/drm-misc into drm-next · 79fb229b
      Dave Airlie authored
      drm-misc-next for v6.7-rc1:
      
      UAPI Changes:
      - drm_file owner is now updated during use, in the case of a drm fd
        opened by the display server for a client, the correct owner is
        displayed.
      - Qaic gains support for the QAIC_DETACH_SLICE_BO ioctl to allow bo
        recycling.
      
      Cross-subsystem Changes:
      - Disable boot logo for au1200fb, mmpfb and unexport logo helpers.
        Only fbcon should manage display of logo.
      - Update freescale in MAINTAINERS.
      - Add some bridge files to bridge in MAINTAINERS.
      - Update gma500 driver repo in MAINTAINERS to point to drm-misc.
      
      Core Changes:
      - Move size computations to drm buddy allocator.
      - Make drm_atomic_helper_shutdown(NULL) a nop.
      - Assorted small fixes in drm_debugfs, DP-MST payload addition error handling.
      - Fix DRM_BRIDGE_ATTACH_NO_CONNECTOR handling.
      - Handle bad (h/v)sync_end in EDID by clipping to htotal.
      - Build GPUVM as a module.
      
      Driver Changes:
      - Simple drivers don't need to cache prepared result.
      - Call drm_atomic_helper_shutdown() in shutdown/unbind for a whole lot
        more drm drivers.
      - Assorted small fixes in amdgpu, ssd130x, bridge/it6621, accel/qaic,
        nouveau, tc358768.
      - Add NV12 for komeda writeback.
      - Add arbitration lost event to synopsis/dw-hdmi-cec.
      - Speed up s/r in nouveau by not restoring some big bo's.
      - Assorted nouveau display rework in preparation for GSP-RM,
        especially related to how the modeset sequence works and
        the DP sequence in relation to link training.
      - Update anx7816 panel.
      - Support NVSYNC and NHSYNC in tegra.
      - Allow multiple power domains in simple driver.
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/f1fae5eb-25b8-192a-9a53-215e1184ce81@linux.intel.com
      79fb229b
    • Imre Deak's avatar
      drm/i915/fdi: Recompute state for affected CRTCs on FDI links · f67ff36f
      Imre Deak authored
      Recompute the state of all CRTCs on an FDI link during a modeset that
      may be affected by the modeset of other CRTCs on the same link. This
      ensures that each CRTC on the link maximizes its BW use (after another
      CRTC is disabled).
      
      In practice this means recomputing pipe B's config on IVB if pipe C gets
      disabled.
      
      v2:
      - Add the change recomputing affected CRTC states in a separate patch.
        (Ville)
      v3: (Ville)
      - Constify old and new crtc states.
      - Check for fused off pipe C.
      - Fix new vs. old crtc state mixup.
      - Drop check for pipe C's enabled state.
      
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: default avatarImre Deak <imre.deak@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20230921195159.2646027-12-imre.deak@intel.com
      f67ff36f
    • Imre Deak's avatar
      drm/i915/fdi: Improve FDI BW sharing between pipe B and C · 998d2cd3
      Imre Deak authored
      At the moment modesetting pipe C on IVB will fail if pipe B uses 4 FDI
      lanes. Make the BW sharing more dynamic by trying to reduce pipe B's
      link bpp in this case, until pipe B uses only up to 2 FDI lanes.
      
      For this instead of the encoder compute config retry loop - which
      reduced link bpp only for the encoder's pipe - reduce the maximum link
      bpp for pipe B/C as required after all CRTC states are computed and
      recompute the CRTC states with the new bpp limit.
      
      Atm, all FDI encoder's compute config function returns an error if a BW
      constrain prevents increasing the pipe bpp value. The corresponding
      crtc_state->bw_constrained check can be replaced with checking
      crtc_state->max_link_bpp_x16, add TODO comments for this. SDVO is an
      exception where this case is only handled in the outer config retry
      loop, failing the modeset with a WARN, add a FIXME comment to handle
      this in the encoder code similarly to other encoders.
      
      v2:
      - Don't assume that a CRTC is already in the atomic state, while
        reducing its link bpp.
      - Add DocBook description to intel_fdi_atomic_check_link().
      v3:
      - Enable BW management for FDI links in a separate patch. (Ville)
      v4: (Ville)
      - Fail the SDVO encoder config computation if it doesn't support the
        link bpp limit.
      - Add TODO: comments about checking link_bpp_x16 instead of
        bw_constrained.
      v5:
      - Replace link bpp limit check with a FIXME: comment in
        intel_sdvo_compute_config(). (Ville)
      
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
      [Amended commit message wrt. changes in v5]
      Signed-off-by: default avatarImre Deak <imre.deak@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20230921195159.2646027-11-imre.deak@intel.com
      998d2cd3
    • Imre Deak's avatar
      drm/i915: Add helpers for BW management on shared display links · 8ca0b875
      Imre Deak authored
      At the moment a modeset fails if the config computation of a pipe can't
      fit its required BW to the available link BW even though the limitation
      may be resolved by reducing the BW requirement of other pipes.
      
      To improve the above this patch adds helper functions checking the
      overall BW limits after all CRTC states have been computed. If the check
      fails the maximum link bpp for a selected pipe will be reduced and all
      the CRTC states will be recomputed until either the overall BW limit
      check passes, or further bpp reduction is not possible (because all
      pipes/encoders sharing the link BW reached their minimum link bpp).
      
      Atm, the MST encoder allocates twice the required BW for YUV420 format
      streams. A follow-up patchset will fix that, add a code comment about
      this.
      
      This change prepares for upcoming patches enabling the above BW
      management on FDI and MST links.
      
      v2:
      - Rename intel_crtc_state::max_link_bpp to max_link_bpp_x16 and
        intel_link_bw_limits::max_bpp to max_bpp_x16. (Jani)
      v3:
      - Add the helper functions in a separate patch. (Ville)
      - Add the functions to intel_link_bw.c instead of intel_atomic.c (Ville)
      - Return -ENOSPC instead of -EINVAL to userspace in case of a link BW
        limit failure.
      v4:
      - Make intel_atomic_check_config() static.
      v5: (Ville)
      - Rename intel_link_bw_limits::min_bpp_pipes to min_bpp_reached_pipes
        and intel_link_bw_reset_pipe_limit_to_min() to
        intel_link_bw_set_min_bpp_for_pipe().
      - Rename pipe_bpp to link_bpp in intel_link_bw_reduce_bpp().
      - Add FIXME: comment about MST encoder's YUV420 BW allocation and
        tracking the link bpp limit accordingly.
      v6:
      - Move intel_link_bw_compute_pipe_bpp() to intel_fdi.c (Ville)
      - WARN_ON(BIT(pipe) & min_bpp_reached_pipes) in
        intel_link_bw_set_bpp_limit_for_pipe(). (Ville)
      - Rename intel_link_bw_set_min_bpp_for_pipe() to
        intel_link_bw_set_bpp_limit_for_pipe() and
        intel_link_bw_limits::min_bpp_reached_pipes to
        bpp_limit_reached_pipes. (Ville)
      - Remove unused header includes.
      
      Cc: Jani Nikula <jani.nikula@linux.intel.com>
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: default avatarImre Deak <imre.deak@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20230921195159.2646027-10-imre.deak@intel.com
      8ca0b875
    • Imre Deak's avatar
      drm/i915: Factor out a helper to check/compute all the CRTC states · 1050e4c2
      Imre Deak authored
      Factor out intel_atomic_check_config() to check and compute all the CRTC
      states. This will be used by a follow up patch to recompute/check the
      state until required by BW limitations between CRTCs.
      Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: default avatarImre Deak <imre.deak@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20230921195159.2646027-9-imre.deak@intel.com
      1050e4c2
    • Imre Deak's avatar
      drm/i915: Rename intel_modeset_all_pipes() to intel_modeset_all_pipes_late() · e3b26904
      Imre Deak authored
      Rename intel_modeset_all_pipes() to intel_modeset_all_pipes_late() to
      clarify when the function can be called (vs.
      intel_modeset_pipes_in_mask_early()).
      
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: default avatarImre Deak <imre.deak@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20230921195159.2646027-8-imre.deak@intel.com
      e3b26904
    • Imre Deak's avatar
      drm/i915: Add helper to modeset a set of pipes · fa7a7a1c
      Imre Deak authored
      Add intel_modeset_pipes_in_mask_early() to modeset a provided set of
      pipes, used in a follow-up patch.
      
      As opposed to intel_modeset_all_pipes() which modesets only the active
      pipes - others don't requiring programming the HW - modeset all enabled
      pipes in intel_modeset_pipes_in_mask_early() which may need to recompute
      their state even if they are not active (that is in the DPMS off state).
      
      While at it add DocBook descriptions for the two exported functions.
      
      v2:
      - Add a flag controlling if active planes are force updated as well.
      - Add DockBook descriptions.
      v3:
      - For clarity use _early/_late suffixes for the exported functions
        instead of the update_active_planes parameter. (Ville)
      v4:
      - In intel_modeset_pipes_in_mask_early() update only the crtc
        flags relevant to the early phase. (Ville)
      - Rename intel_modeset_all_pipes() in a separate patch.
      
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: default avatarImre Deak <imre.deak@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20230921195159.2646027-7-imre.deak@intel.com
      fa7a7a1c