1. 19 Apr, 2022 3 commits
  2. 18 Apr, 2022 3 commits
  3. 14 Apr, 2022 17 commits
  4. 13 Apr, 2022 13 commits
  5. 12 Apr, 2022 4 commits
    • Manasi Navare's avatar
      drm/i915/display/vrr: Reset VRR capable property on a long hpd · d999ad10
      Manasi Navare authored
      With some VRR panels, user can turn VRR ON/OFF on the fly from the panel settings.
      When VRR is turned OFF ,sends a long HPD to the driver clearing the Ignore MSA bit
      in the DPCD. Currently the driver parses that onevery HPD but fails to reset
      the corresponding VRR Capable Connector property.
      Hence the userspace still sees this as VRR Capable panel which is incorrect.
      
      Fix this by explicitly resetting the connector property.
      
      v2: Reset vrr capable if status == connector_disconnected
      v3: Use i915 and use bool vrr_capable (Jani Nikula)
      v4: Move vrr_capable to after update modes call (Jani N)
      Remove the redundant comment (Jan N)
      v5: Fixes the regression on older platforms by resetting the VRR
      only if HAS_VRR
      v6: Remove the checks from driver, add in drm core before
      setting VRR prop (Ville)
      v7: Move VRR set/reset to set/unset_edid (Ville)
      
      Cc: Jani Nikula <jani.nikula@intel.com>
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Fixes: 9bc34b4d ("drm/i915/display/vrr: Reset VRR capable property on a long hpd")
      Signed-off-by: default avatarManasi Navare <manasi.d.navare@intel.com>
      Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20220303233222.4698-1-manasi.d.navare@intel.com
      d999ad10
    • Changcheng Deng's avatar
    • Matthew Auld's avatar
      drm/ttm: stop passing NULL fence in ttm_bo_move_sync_cleanup · c6346218
      Matthew Auld authored
      If we hit the sync case, like when skipping clearing for kernel internal
      objects, or when falling back to cpu clearing, like in i915, we end up
      trying to add a NULL fence, but with some recent changes in this area
      this now just results in NULL deref in dma_resv_add_fence:
      
      <1>[    5.466383] BUG: kernel NULL pointer dereference, address: 0000000000000008
      <1>[    5.466384] #PF: supervisor read access in kernel mode
      <1>[    5.466385] #PF: error_code(0x0000) - not-present page
      <6>[    5.466386] PGD 0 P4D 0
      <4>[    5.466387] Oops: 0000 [#1] PREEMPT SMP NOPTI
      <4>[    5.466389] CPU: 5 PID: 267 Comm: modprobe Not tainted 5.18.0-rc2-CI-CI_DRM_11481+ #1
      <4>[    5.466391] RIP: 0010:dma_resv_add_fence+0x63/0x260
      <4>[    5.466395] Code: 38 85 c0 0f 84 df 01 00 00 0f 88 e8 01 00 00 83 c0 01 0f 88 df 01 00 00 8b 05 35 89 10 01 49 8d 5e 68 85 c0 0f 85 45 01 00 00 <48> 8b 45 08 48 3d c0 a5 0a 82 0f 84 5c 01 00 00 48 3d 60 a5 0a 82
      <4>[    5.466396] RSP: 0018:ffffc90000e974f8 EFLAGS: 00010202
      <4>[    5.466397] RAX: 0000000000000001 RBX: ffff888123e88b28 RCX: 00000000ffffffff
      <4>[    5.466398] RDX: 0000000000000001 RSI: ffffffff822e4f50 RDI: ffffffff8233f087
      <4>[    5.466399] RBP: 0000000000000000 R08: ffff8881313dbc80 R09: 0000000000000001
      <4>[    5.466399] R10: 0000000000000001 R11: 00000000da354294 R12: 0000000000000000
      <4>[    5.466400] R13: ffff88810927dc58 R14: ffff888123e88ac0 R15: ffff88810a88d600
      <4>[    5.466401] FS:  00007f5fa1193540(0000) GS:ffff88845d880000(0000) knlGS:0000000000000000
      <4>[    5.466402] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      <4>[    5.466402] CR2: 0000000000000008 CR3: 0000000106dd6003 CR4: 00000000003706e0
      <4>[    5.466403] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      <4>[    5.466404] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
      <4>[    5.466404] Call Trace:
      <4>[    5.466405]  <TASK>
      <4>[    5.466406]  ttm_bo_move_accel_cleanup+0x62/0x270 [ttm]
      <4>[    5.466411]  ? i915_rsgt_from_buddy_resource+0x185/0x1e0 [i915]
      <4>[    5.466529]  i915_ttm_move+0xfd/0x430 [i915]
      <4>[    5.466833]  ? dma_resv_reserve_fences+0x4e/0x320
      <4>[    5.466836]  ? ttm_bo_add_move_fence.constprop.20+0xf7/0x140 [ttm]
      <4>[    5.466841]  ttm_bo_handle_move_mem+0xa1/0x140 [ttm]
      <4>[    5.466845]  ttm_bo_validate+0xee/0x160 [ttm]
      <4>[    5.466849]  __i915_ttm_get_pages+0x4f/0x210 [i915]
      <4>[    5.466976]  i915_ttm_get_pages+0xad/0x140 [i915]
      <4>[    5.467094]  ____i915_gem_object_get_pages+0x32/0xf0 [i915]
      <4>[    5.467210]  __i915_gem_object_get_pages+0x89/0xa0 [i915]
      <4>[    5.467323]  i915_vma_get_pages+0x114/0x1d0 [i915]
      <4>[    5.467446]  i915_vma_pin_ww+0xd3/0xa90 [i915]
      <4>[    5.467570]  i915_vma_pin.constprop.10+0x119/0x1b0 [i915]
      <4>[    5.467700]  ? __mutex_unlock_slowpath+0x3e/0x2b0
      <4>[    5.467704]  intel_alloc_initial_plane_obj.isra.6+0x1a9/0x390 [i915]
      <4>[    5.467833]  intel_crtc_initial_plane_config+0x83/0x340 [i915]
      
      In the ttm_bo_move_sync_cleanup() case it seems we only really care
      about calling ttm_bo_wait_free_node(), so let's instead just call that
      directly.
      Signed-off-by: default avatarMatthew Auld <matthew.auld@intel.com>
      Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
      Cc: Christian König <christian.koenig@amd.com>
      Cc: Lucas De Marchi <lucas.demarchi@intel.com>
      Cc: Nirmoy Das <nirmoy.das@linux.intel.com>
      Reviewed-by: default avatarChristian König <christian.koenig@amd.com>
      Signed-off-by: default avatarChristian König <christian.koenig@amd.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20220411085603.58156-1-matthew.auld@intel.com
      c6346218
    • Juha-Pekka Heikkilä's avatar
      drm/i915/dg2: Add support for DG2 clear color compression · 680025dc
      Juha-Pekka Heikkilä authored
      Add support for the DG2 specific render compression with clear color
      framebuffer format.
      
      DG2 onwards discrete gfx has support for new flat CCS mapping,
      which brings in display feature in to avoid Aux walk for compressed
      surface. This support build on top of Flat CCS support added in XEHPSDV.
      FLAT CCS surface base address should be 64k aligned,
      Compressed displayable surfaces must use tile4 format.
      
      HAS: 1407880786
      B.Spec : 7655
      B.Spec : 53902
      
      v2: Merge all bits required for the support of functionality into this
          patch from the patch adding the corresponding modifier.
      
      Cc: Mika Kahola <mika.kahola@intel.com>
      Signed-off-by: default avatarAnshuman Gupta <anshuman.gupta@intel.com>
      Signed-off-by: default avatarJuha-Pekka Heikkilä <juha-pekka.heikkila@intel.com>
      Signed-off-by: default avatarRamalingam C <ramalingam.c@intel.com>
      Signed-off-by: default avatarImre Deak <imre.deak@intel.com>
      Acked-by: default avatarAnshuman Gupta <anshuman.gupta@intel.com>
      Reviewed-by: default avatarImre Deak <imre.deak@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20220411143405.1073845-5-imre.deak@intel.com
      680025dc