1. 05 Jan, 2024 3 commits
    • José Roberto de Souza's avatar
      drm/xe: Use intel_wakeref_t in intel_runtime_pm functions · 9bab383d
      José Roberto de Souza authored
      Now intel_wakeref_t is a unsigned long and Xe KMD version of those
      functions should use the same type, so changing from bool to
      intel_wakeref_t.
      
      Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Reviewed-by: default avatarJani Nikula <jani.nikula@intel.com>
      Signed-off-by: default avatarJosé Roberto de Souza <jose.souza@intel.com>
      9bab383d
    • José Roberto de Souza's avatar
      drm/xe: Fix definition of intel_wakeref_t · fdbadf50
      José Roberto de Souza authored
      i915 defines it as unsigned long so Xe should do the same to avoid
      compilation warnings:
      
        CC [M]  drivers/gpu/drm/i915/i915_gem.o
        CC [M]  drivers/gpu/drm/xe/i915-display/intel_display_power_well.o
      In file included from ./include/drm/drm_mm.h:51,
                       from drivers/gpu/drm/xe/xe_bo_types.h:11,
                       from drivers/gpu/drm/xe/xe_bo.h:11,
                       from ./drivers/gpu/drm/xe/compat-i915-headers/gem/i915_gem_object.h:11,
                       from ./drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h:15,
                       from drivers/gpu/drm/i915/display/intel_display_power.c:8:
      drivers/gpu/drm/i915/display/intel_display_power.c: In function ‘print_async_put_domains_state’:
      drivers/gpu/drm/i915/display/intel_display_power.c:408:29: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 5 has type ‘int’ [-Wformat=]
        408 |         drm_dbg(&i915->drm, "async_put_wakeref %lu\n",
            |                             ^~~~~~~~~~~~~~~~~~~~~~~~~
        409 |                 power_domains->async_put_wakeref);
            |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            |                              |
            |                              int
      ./include/drm/drm_print.h:410:39: note: in definition of macro ‘drm_dev_dbg’
        410 |         __drm_dev_dbg(NULL, dev, cat, fmt, ##__VA_ARGS__)
            |                                       ^~~
      ./include/drm/drm_print.h:510:33: note: in expansion of macro ‘drm_dbg_driver’
        510 | #define drm_dbg(drm, fmt, ...)  drm_dbg_driver(drm, fmt, ##__VA_ARGS__)
            |                                 ^~~~~~~~~~~~~~
      drivers/gpu/drm/i915/display/intel_display_power.c:408:9: note: in expansion of macro ‘drm_dbg’
        408 |         drm_dbg(&i915->drm, "async_put_wakeref %lu\n",
            |         ^~~~~~~
      drivers/gpu/drm/i915/display/intel_display_power.c:408:50: note: format string is defined here
        408 |         drm_dbg(&i915->drm, "async_put_wakeref %lu\n",
            |                                                ~~^
            |                                                  |
            |                                                  long unsigned int
            |                                                %u
        CC [M]  drivers/gpu/drm/i915/i915_gem_evict.o
        CC [M]  drivers/gpu/drm/i915/i915_gem_gtt.o
        CC [M]  drivers/gpu/drm/xe/i915-display/intel_display_trace.o
        CC [M]  drivers/gpu/drm/xe/i915-display/intel_display_wa.o
        CC [M]  drivers/gpu/drm/i915/i915_query.o
      
      Fixes: 44e69495 ("drm/xe/display: Implement display support")
      Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Reviewed-by: default avatarJani Nikula <jani.nikula@intel.com>
      Signed-off-by: default avatarJosé Roberto de Souza <jose.souza@intel.com>
      fdbadf50
    • Jani Nikula's avatar
      drm/i915: don't make assumptions about intel_wakeref_t type · fe761f34
      Jani Nikula authored
      intel_wakeref_t is supposed to be a mostly opaque cookie to its
      users. It should only be checked for being non-zero and set to
      zero. Debug logging its actual value is meaningless. Switch to just
      debug logging whether the async_put_wakeref is non-zero.
      
      The issue dates back to much earlier than
      commit b49e894c ("drm/i915: Replace custom intel runtime_pm tracker
      with ref_tracker library"), but this is the one that brought about a
      build failure due to the printf format.
      Reported-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
      Closes: https://lore.kernel.org/r/20240102111222.2db11208@canb.auug.org.au
      Fixes: b49e894c ("drm/i915: Replace custom intel runtime_pm tracker with ref_tracker library")
      Cc: Andrzej Hajda <andrzej.hajda@intel.com>
      Cc: Imre Deak <imre.deak@intel.com>
      Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
      Reviewed-by: default avatarImre Deak <imre.deak@intel.com>
      Reviewed-by: default avatarAndrzej Hajda <andrzej.hajda@intel.com>
      Reviewed-by: default avatarAndi Shyti <andi.shyti@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20240104164600.783371-1-jani.nikula@intel.com
      fe761f34
  2. 27 Dec, 2023 1 commit
  3. 26 Dec, 2023 1 commit
  4. 22 Dec, 2023 1 commit
  5. 21 Dec, 2023 23 commits
  6. 26 Dec, 2023 2 commits
    • Lucas De Marchi's avatar
      drm/xe: Fix warning on impossible condition · 717cf0a7
      Lucas De Marchi authored
      Having a different value for op is not possible: this is already kept
      out of user-visible warning by the check in xe_wait_user_fence_ioctl()
      if op > MAX_OP. The warning is useful as if this switch() is not update
      when a new op is added, it should be triggered.
      
      Fix warning as reported by 0-DAY CI Kernel:
      
      	drivers/gpu/drm/xe/xe_wait_user_fence.c:46:2: warning: variable 'passed' is used uninitialized whenever switch default is taken [-Wsometimes-uninitialized]
      
      Closes: https://lore.kernel.org/oe-kbuild-all/202312170357.KPSinwPs-lkp@intel.com/
      Fixes: dd08ebf6 ("drm/xe: Introduce a new DRM driver for Intel GPUs")
      Reviewed-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
      Link: https://lore.kernel.org/r/20231218163301.3453285-1-lucas.demarchi@intel.comSigned-off-by: default avatarLucas De Marchi <lucas.demarchi@intel.com>
      Signed-off-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
      717cf0a7
    • Matthew Brost's avatar
      drm/xe: Fix UBSAN splat in add_preempt_fences() · 20277d8c
      Matthew Brost authored
      add_preempt_fences() calls dma_resv_reserve_fences() with num_fences ==
      0 resulting in the below UBSAN splat. Short circuit add_preempt_fences()
      if num_fences == 0.
      
      [   58.652241] ================================================================================
      [   58.660736] UBSAN: shift-out-of-bounds in ./include/linux/log2.h:57:13
      [   58.667281] shift exponent 64 is too large for 64-bit type 'long unsigned int'
      [   58.674539] CPU: 2 PID: 1170 Comm: xe_gpgpu_fill Not tainted 6.6.0-rc3-guc+ #630
      [   58.674545] Hardware name: Intel Corporation Tiger Lake Client Platform/TigerLake U DDR4 SODIMM RVP, BIOS TGLSFWI1.R00.3243.A01.2006102133 06/10/2020
      [   58.674547] Call Trace:
      [   58.674548]  <TASK>
      [   58.674550]  dump_stack_lvl+0x92/0xb0
      [   58.674555]  __ubsan_handle_shift_out_of_bounds+0x15a/0x300
      [   58.674559]  ? rcu_is_watching+0x12/0x60
      [   58.674564]  ? software_resume+0x141/0x210
      [   58.674575]  ? new_vma+0x44b/0x600 [xe]
      [   58.674606]  dma_resv_reserve_fences.cold+0x40/0x66
      [   58.674612]  new_vma+0x4b3/0x600 [xe]
      [   58.674638]  xe_vm_bind_ioctl+0xffd/0x1e00 [xe]
      [   58.674663]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
      [   58.674680]  drm_ioctl_kernel+0xc1/0x170
      [   58.674686]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
      [   58.674703]  drm_ioctl+0x247/0x4c0
      [   58.674709]  ? find_held_lock+0x2b/0x80
      [   58.674716]  __x64_sys_ioctl+0x8c/0xb0
      [   58.674720]  do_syscall_64+0x3c/0x90
      [   58.674723]  entry_SYSCALL_64_after_hwframe+0x6e/0xd8
      [   58.674727] RIP: 0033:0x7fce4bd1aaff
      [   58.674730] Code: 00 48 89 44 24 18 31 c0 48 8d 44 24 60 c7 04 24 10 00 00 00 48 89 44 24 08 48 8d 44 24 20 48 89 44 24 10 b8 10 00 00 00 0f 05 <41> 89 c0 3d 00 f0 ff ff 77 1f 48 8b 44 24 18 64 48 2b 04 25 28 00
      [   58.674731] RSP: 002b:00007ffc57434050 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
      [   58.674734] RAX: ffffffffffffffda RBX: 00007ffc574340e0 RCX: 00007fce4bd1aaff
      [   58.674736] RDX: 00007ffc574340e0 RSI: 0000000040886445 RDI: 0000000000000003
      [   58.674737] RBP: 0000000040886445 R08: 0000000000000002 R09: 00007ffc574341b0
      [   58.674739] R10: 000055de43eb3780 R11: 0000000000000246 R12: 00007ffc574340e0
      [   58.674740] R13: 0000000000000003 R14: 00007ffc574341b0 R15: 0000000000000001
      [   58.674747]  </TASK>
      [   58.674748] ================================================================================
      
      Fixes: dd08ebf6 ("drm/xe: Introduce a new DRM driver for Intel GPUs")
      Cc: Lucas De Marchi <lucas.demarchi@intel.com>
      Signed-off-by: default avatarMatthew Brost <matthew.brost@intel.com>
      Reviewed-by: default avatarLucas De Marchi <lucas.demarchi@intel.com>
      Link: https://lore.kernel.org/r/20231215230203.719244-1-matthew.brost@intel.comSigned-off-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
      20277d8c
  7. 21 Dec, 2023 9 commits