Skip to content
Permalink
Matthew-Brost/…
Switch branches/tags

Commits on Jan 20, 2022

  1. drm/i915/guc: Don't check CT descriptor status before CT write / read

    Don't check CT descriptor status, unless CONFIG_DRM_I915_DEBUG_GUC is
    set, before CT write / read as this could result in a read across the
    PCIe bus thus adding latency to every CT write / read. On well behavied
    systems this vaue should always read as zero. For some reason it doesn't
    the CT channel is broken and will eventually recover from a GT reset,
    albeit the GT reset will not be triggered immediately by seeing that
    descriptor status is non-zero.
    
    Signed-off-by: Matthew Brost <matthew.brost@intel.com>
    mbrost05 authored and intel-lab-lkp committed Jan 20, 2022

Commits on Jan 17, 2022

  1. drm/i915/display/adlp: Implement new step in the TC voltage swing pro…

    …g sequence
    
    TC voltage swing programming sequence was updated with a new step.
    
    BSpec: 54956
    Cc: stable@vger.kernel.org
    Cc: Jani Nikula <jani.nikula@linux.intel.com>
    Cc: Clint Taylor <clinton.a.taylor@intel.com>
    Cc: Imre Deak <imre.deak@intel.com>
    Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
    Reviewed-by: Clint Taylor <Clinton.A.Taylor@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220113174826.50272-1-jose.souza@intel.com
    (cherry picked from commit 5ff59dd)
    Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
    zehortigoza authored and tursulin committed Jan 17, 2022
  2. drm/i915/display/ehl: Update voltage swing table

    EHL table was recently updated with some minor fixes.
    
    BSpec: 21257
    Cc: stable@vger.kernel.org
    Cc: Clint Taylor <clinton.a.taylor@intel.com>
    Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
    Reviewed-by: Clint Taylor <Clinton.A.Taylor@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220113160437.49059-1-jose.souza@intel.com
    (cherry picked from commit 5ec7bae)
    Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
    zehortigoza authored and tursulin committed Jan 17, 2022

Commits on Jan 10, 2022

  1. drm/i915/ttm: ensure we unmap when purging

    Purging can happen during swapping out, or directly invoked with the
    madvise ioctl. In such cases this doesn't involve a ttm move, which
    skips umapping the object.
    
    v2(Thomas):
    - add ttm_truncate helper, and just call into i915_ttm_move_notify() to
      handle the unmapping step
    
    Fixes: 213d509 ("drm/i915/ttm: Introduce a TTM i915 gem object backend")
    Signed-off-by: Matthew Auld <matthew.auld@intel.com>
    Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
    Reviewed-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220106174910.280616-4-matthew.auld@intel.com
    (cherry picked from commit ab4911b)
    Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
    matt-auld authored and tursulin committed Jan 10, 2022
  2. drm/i915/ttm: add unmap_virtual callback

    Ensure we call ttm_bo_unmap_virtual when releasing the pages.
    Importantly this should now handle the ttm swapping case, and all other
    places that already call into i915_ttm_move_notify().
    
    v2: fix up the selftest
    
    Fixes: cf3e3e8 ("drm/i915: Use ttm mmap handling for ttm bo's.")
    Signed-off-by: Matthew Auld <matthew.auld@intel.com>
    Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
    Reviewed-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220106174910.280616-3-matthew.auld@intel.com
    (cherry picked from commit 903e038)
    Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
    matt-auld authored and tursulin committed Jan 10, 2022
  3. drm/i915/ttm: only fault WILLNEED objects

    Don't attempt to fault and re-populate purged objects. By some fluke
    this passes the dontneed-after-mmap IGT, but for the wrong reasons.
    
    Fixes: cf3e3e8 ("drm/i915: Use ttm mmap handling for ttm bo's.")
    Signed-off-by: Matthew Auld <matthew.auld@intel.com>
    Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
    Reviewed-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220106174910.280616-2-matthew.auld@intel.com
    (cherry picked from commit f3cb4a2)
    Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
    matt-auld authored and tursulin committed Jan 10, 2022
  4. drm/i915: don't call free_mmap_offset when purging

    The TTM backend is in theory the only user here(also purge should only
    be called once we have dropped the pages), where it is setup at object
    creation and is only removed once the object is destroyed. Also
    resetting the node here might be iffy since the ttm fault handler
    uses the stored fake offset to determine the page offset within the pages
    array.
    
    This also blows up in the dontneed-before-mmap test, since the
    expectation is that the vma_node will live on, until the object is
    destroyed:
    
    <2> [749.062902] kernel BUG at drivers/gpu/drm/i915/gem/i915_gem_ttm.c:943!
    <4> [749.062923] invalid opcode: 0000 [#1] PREEMPT SMP NOPTI
    <4> [749.062928] CPU: 0 PID: 1643 Comm: gem_madvise Tainted: G     U  W         5.16.0-rc8-CI-CI_DRM_11046+ #1
    <4> [749.062933] Hardware name: Gigabyte Technology Co., Ltd. GB-Z390 Garuda/GB-Z390 Garuda-CF, BIOS IG1c 11/19/2019
    <4> [749.062937] RIP: 0010:i915_ttm_mmap_offset.cold.35+0x5b/0x5d [i915]
    <4> [749.063044] Code: 00 48 c7 c2 a0 23 4e a0 48 c7 c7 26 df 4a a0 e8 95 1d d0 e0 bf 01 00 00 00 e8 8b ec cf e0 31 f6 bf 09 00 00 00 e8 5f 30 c0 e0 <0f> 0b 48 c7 c1 24 4b 56 a0 ba 5b 03 00 00 48 c7 c6 c0 23 4e a0 48
    <4> [749.063052] RSP: 0018:ffffc90002ab7d38 EFLAGS: 00010246
    <4> [749.063056] RAX: 0000000000000240 RBX: ffff88811f2e61c0 RCX: 0000000000000006
    <4> [749.063060] RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000009
    <4> [749.063063] RBP: ffffc90002ab7e58 R08: 0000000000000001 R09: 0000000000000001
    <4> [749.063067] R10: 000000000123d0f8 R11: ffffc90002ab7b20 R12: ffff888112a1a000
    <4> [749.063071] R13: 0000000000000004 R14: ffff88811f2e61c0 R15: ffff888112a1a000
    <4> [749.063074] FS:  00007f6e5fcad500(0000) GS:ffff8884ad600000(0000) knlGS:0000000000000000
    <4> [749.063078] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    <4> [749.063081] CR2: 00007efd264e39f0 CR3: 0000000115fd6005 CR4: 00000000003706f0
    <4> [749.063085] Call Trace:
    <4> [749.063087]  <TASK>
    <4> [749.063089]  __assign_mmap_offset+0x41/0x300 [i915]
    <4> [749.063171]  __assign_mmap_offset_handle+0x159/0x270 [i915]
    <4> [749.063248]  ? i915_gem_dumb_mmap_offset+0x70/0x70 [i915]
    <4> [749.063325]  drm_ioctl_kernel+0xae/0x140
    <4> [749.063330]  drm_ioctl+0x201/0x3d0
    <4> [749.063333]  ? i915_gem_dumb_mmap_offset+0x70/0x70 [i915]
    <4> [749.063409]  ? do_user_addr_fault+0x200/0x670
    <4> [749.063415]  __x64_sys_ioctl+0x6d/0xa0
    <4> [749.063419]  do_syscall_64+0x3a/0xb0
    <4> [749.063423]  entry_SYSCALL_64_after_hwframe+0x44/0xae
    <4> [749.063428] RIP: 0033:0x7f6e5f100317
    
    Testcase: igt/gem_madvise/dontneed-before-mmap
    Fixes: cf3e3e8 ("drm/i915: Use ttm mmap handling for ttm bo's.")
    Signed-off-by: Matthew Auld <matthew.auld@intel.com>
    Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
    Reviewed-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220106174910.280616-1-matthew.auld@intel.com
    (cherry picked from commit 658a0c6)
    Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
    matt-auld authored and tursulin committed Jan 10, 2022
  5. drm/i915/pxp: Hold RPM wakelock during PXP unbind

    Similar to commit b8d8436 ("drm/i915/gt: Hold RPM wakelock during
    PXP suspend") but to fix the same warning for unbind during shutdown:
    
    ------------[ cut here ]------------
    RPM wakelock ref not held during HW access
    WARNING: CPU: 0 PID: 4139 at drivers/gpu/drm/i915/intel_runtime_pm.h:115
    gen12_fwtable_write32+0x1b7/0
    Modules linked in: 8021q ccm rfcomm cmac algif_hash algif_skcipher
    af_alg uinput snd_hda_codec_hdmi vf industrialio iwl7000_mac80211
    cros_ec_sensorhub lzo_rle lzo_compress zram iwlwifi cfg80211 joydev
    CPU: 0 PID: 4139 Comm: halt Tainted: G     U  W
    5.10.84 torvalds#13 344e11e079c4a03940d949e537eab645f6
    RIP: 0010:gen12_fwtable_write32+0x1b7/0x200
    Code: 48 c7 c7 fc b3 b5 89 31 c0 e8 2c f3 ad ff 0f 0b e9 04 ff ff ff c6
    05 71 e9 1d 01 01 48 c7 c7 d67
    RSP: 0018:ffffa09ec0bb3bb0 EFLAGS: 00010246
    RAX: 12dde97bbd260300 RBX: 00000000000320f0 RCX: ffffffff89e60ea0
    RDX: 0000000000000000 RSI: 00000000ffffdfff RDI: ffffffff89e60e70
    RBP: ffffa09ec0bb3bd8 R08: 0000000000000000 R09: ffffa09ec0bb3950
    R10: 00000000ffffdfff R11: ffffffff89e91160 R12: 0000000000000000
    R13: 0000000028121969 R14: ffff9515c32f0990 R15: 0000000040000000
    FS:  0000790dcf225740(0000) GS:ffff951737800000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 000058b25efae147 CR3: 0000000133ea6001 CR4: 0000000000770ef0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000ffff07f0 DR7: 0000000000000400
    PKRU: 55555554
    Call Trace:
     intel_pxp_fini_hw+0x2f/0x39
     i915_pxp_tee_component_unbind+0x1c/0x42
     component_unbind+0x32/0x48
     component_unbind_all+0x80/0x9d
     take_down_master+0x24/0x36
     component_master_del+0x56/0x70
     mei_pxp_remove+0x2c/0x68
     mei_cl_device_remove+0x35/0x68
     device_release_driver_internal+0x100/0x1a1
     mei_cl_bus_remove_device+0x21/0x79
     mei_cl_bus_remove_devices+0x3b/0x51
     mei_stop+0x3b/0xae
     mei_me_shutdown+0x23/0x58
     device_shutdown+0x144/0x1d3
     kernel_power_off+0x13/0x4c
     __se_sys_reboot+0x1d4/0x1e9
     do_syscall_64+0x43/0x55
     entry_SYSCALL_64_after_hwframe+0x44/0xa9
    RIP: 0033:0x790dcf316273
    Code: 64 89 01 48 83 c8 ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00
    00 89 fa be 69 19 12 28 bf ad8
    RSP: 002b:00007ffca0df9198 EFLAGS: 00000202 ORIG_RAX: 00000000000000a9
    RAX: ffffffffffffffda RBX: 000000004321fedc RCX: 0000790dcf316273
    RDX: 000000004321fedc RSI: 0000000028121969 RDI: 00000000fee1dead
    RBP: 00007ffca0df9200 R08: 0000000000000007 R09: 0000563ce8cd8970
    R10: 0000000000000000 R11: 0000000000000202 R12: 00007ffca0df9308
    R13: 0000000000000001 R14: 0000000000000000 R15: 0000000000000003
    ---[ end trace 2f501b01b348f114 ]---
    ACPI: Preparing to enter system sleep state S5
    reboot: Power down
    
    Changes since v1:
     - Rebase to latest drm-tip
    
    Fixes: 0cfab4c ("drm/i915/pxp: Enable PXP power management")
    Suggested-by: Lee Shawn C <shawn.c.lee@intel.com>
    Signed-off-by: Juston Li <juston.li@intel.com>
    Reviewed-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
    Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220106200236.489656-2-juston.li@intel.com
    (cherry picked from commit 57ded5f)
    Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
    Juston Li authored and tursulin committed Jan 10, 2022

Commits on Dec 27, 2021

  1. drm/i915/fbc: Remember to update FBC state even when not reallocating…

    … CFB
    
    We mustn't forget to update our FBC state even if we don't have
    to reallocate the CFB. Otherwise we won't refresh our notion
    of what eg. the new fence or the new override CFB stride
    should be. Using the wrong CFB stride in particular can cause
    underruns and could even corrupt other stuff in stolen.
    
    Fixes: f4cfdbb ("drm/i915/fbc: Nuke state_cache")
    Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/4774
    Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20211216110822.8461-1-ville.syrjala@linux.intel.com
    Reviewed-by: Mika Kahola <mika.kahola@intel.com>
    (cherry picked from commit 798c5da)
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>
    vsyrjala authored and jnikula committed Dec 27, 2021

Commits on Dec 23, 2021

  1. Merge tag 'drm-misc-next-fixes-2021-12-23' of git://anongit.freedeskt…

    …op.org/drm/drm-misc into drm-next
    
    Short summary of fixes pull:
    
     * bridge/lvds: Fix DT bindings
     * vmwgfx: Fix several issues with the recent conversion to GEM
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    
    From: Thomas Zimmermann <tzimmermann@suse.de>
    Link: https://patchwork.freedesktop.org/patch/msgid/YcRAH8lYbsoSCeY9@linux-uq9g.fritz.box
    airlied committed Dec 23, 2021
  2. Merge tag 'drm-intel-gt-next-2021-12-23' of git://anongit.freedesktop…

    ….org/drm/drm-intel into drm-next
    
    Driver Changes:
    
    - Added bits of DG2 support around page table handling (Stuart Summers, Matthew Auld)
    - Fixed wakeref leak in PMU busyness during reset in GuC mode (Umesh Nerlige Ramappa)
    - Fixed debugfs access crash if GuC failed to load (John Harrison)
    - Bring back GuC error log to error capture, undoing accidental earlier breakage (Thomas Hellström)
    - Fixed memory leak in error capture caused by earlier refactoring (Thomas Hellström)
    - Exclude reserved stolen from driver use (Chris Wilson)
    - Add memory region sanity checking and optional full test (Chris Wilson)
    - Fixed buffer size truncation in TTM shmemfs backend (Robert Beckett)
    - Use correct lock and don't overwrite internal data structures when stealing GuC context ids (Matthew Brost)
    - Don't hog IRQs when destroying GuC contexts (John Harrison)
    - Make GuC to Host communication more robust (Matthew Brost)
    - Continuation of locking refactoring around VMA and backing store handling (Maarten Lankhorst)
    - Improve performance of reading GuC log from debugfs (John Harrison)
    - Log when GuC fails to reset an engine (John Harrison)
    - Speed up GuC/HuC firmware loading by requesting RP0 (Vinay Belgaumkar)
    - Further work on asynchronous VMA unbinding (Thomas Hellström, Christian König)
    
    - Refactor GuC/HuC firmware handling to prepare for future platforms (John Harrison)
    - Prepare for future different GuC/HuC firmware signing key sizes (Daniele Ceraolo Spurio, Michal Wajdeczko)
    - Add noreclaim annotations (Matthew Auld)
    - Remove racey GEM_BUG_ON between GPU reset and GuC communication handling (Matthew Brost)
    - Refactor i915->gt with to_gt(i915) to prepare for future platforms (Michał Winiarski, Andi Shyti)
    - Increase GuC log size for CONFIG_DEBUG_GEM (John Harrison)
    
    - Fixed engine busyness in selftests when in GuC mode (Umesh Nerlige Ramappa)
    - Make engine parking work with PREEMPT_RT (Sebastian Andrzej Siewior)
    - Replace X86_FEATURE_PAT with pat_enabled() (Lucas De Marchi)
    - Selftest for stealing of guc ids (Matthew Brost)
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    
    From: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/YcRvKO5cyPvIxVCi@tursulin-mobl2
    airlied committed Dec 23, 2021
  3. Merge branch 'etnaviv/next' of https://git.pengutronix.de/git/lst/linux

    … into drm-next
    
    - make etnaviv work on IOMMU enabled systems
    - fix mapping of command buffers on systems with more than 4GB RAM
    - close a DoS vector
    - fix spurious GPU resets
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    From: Lucas Stach <l.stach@pengutronix.de>
    Link: https://patchwork.freedesktop.org/patch/msgid/59619f8e9eb1d7ed7ea72cbead1f0aabc49f4e68.camel@pengutronix.de
    airlied committed Dec 23, 2021
  4. drm/etnaviv: consider completed fence seqno in hang check

    Some GPU heavy test programs manage to trigger the hangcheck quite often.
    If there are no other GPU users in the system and the test program
    exhibits a very regular structure in the commandstreams that are being
    submitted, we can end up with two distinct submits managing to trigger
    the hangcheck with the FE in a very similar address range. This leads
    the hangcheck to believe that the GPU is stuck, while in reality the GPU
    is already busy working on a different job. To avoid those spurious
    GPU resets, also remember and consider the last completed fence seqno
    in the hang check.
    
    Reported-by: Joerg Albert <joerg.albert@iav.de>
    Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
    Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
    lynxeye-dev committed Dec 23, 2021
  5. drm/i915: Use trylock instead of blocking lock for __i915_gem_free_ob…

    …jects.
    
    Convert free_work into delayed_work, similar to ttm to allow converting the
    blocking lock in __i915_gem_free_objects to a trylock.
    
    Unlike ttm, the object should already be idle, as it's kept alive
    by a reference through struct i915_vma->active, which is dropped
    after all vma's are idle.
    
    Because of this, we can use a no wait by default, or when the lock
    is contested, we use ttm's 10 ms.
    
    The trylock should only fail when the object is sharing it's resv with
    other objects, and typically objects are not kept locked for a long
    time, so we can safely retry on failure.
    
    Fixes: be7612f ("drm/i915: Require object lock when freeing pages during destruction")
    Testcase: igt/gem_exec_alignment/pi*
    Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
    Reviewed-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20211222155622.2960379-1-maarten.lankhorst@linux.intel.com
    mlankhorst committed Dec 23, 2021
  6. Merge tag 'exynos-drm-next-for-v5.17' of git://git.kernel.org/pub/scm…

    …/linux/kernel/git/daeinki/drm-exynos into drm-next
    
    Four cleanups
    - Replacing lagacy gpio interface of dsi driver with gpiod one.
    - Implementing a generic GEM object mmap and use it instead of
      exynos specific one.
    - Dropping the use of label from dsi driver. Which also fixes
      a build warning.
    - Just trivial cleanup by dropping unnecessay code.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    
    From: Inki Dae <inki.dae@samsung.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20211222035345.26595-1-inki.dae@samsung.com
    airlied committed Dec 23, 2021
  7. Merge tag 'drm/tegra/for-5.17-rc1' of https://gitlab.freedesktop.org/…

    …drm/tegra into drm-next
    
    drm/tegra: Changes for v5.17-rc1
    
    This contains a fairly large rework that makes the buffer objects behave
    more according to what the DMA-BUF infrastructure expects. A buffer
    object cache is implemented on top of that to make certain operations
    such as page-flipping more efficient by avoiding needless map/unmap
    operations. This in turn is useful to implement asynchronous commits to
    support legacy cursor updates.
    
    Another fairly big addition is the NVDEC driver. This uses the updated
    UABI introduced in v5.15-rc1 to provide access to the video decode
    engines found on Tegra210 and later.
    
    This also includes some power management improvements that are useful on
    older devices in particular because they, together with a bunch of other
    changes across the kernel, allow the system to scale down frequency and
    voltages when mostly idle and prevent these devices from becoming
    excessively hot.
    
    The remainder of these changes is an assortment of cleanups and minor
    fixes.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    
    From: Thierry Reding <thierry.reding@gmail.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20211217142912.558095-1-thierry.reding@gmail.com
    airlied committed Dec 23, 2021
  8. Merge tag 'amd-drm-next-5.17-2021-12-16' of https://gitlab.freedeskto…

    …p.org/agd5f/linux into drm-next
    
    amdgpu:
    - Add some display debugfs entries
    - RAS fixes
    - SR-IOV fixes
    - W=1 fixes
    - Documentation fixes
    - IH timestamp fix
    - Misc power fixes
    - IP discovery fixes
    - Large driver documentation updates
    - Multi-GPU memory use reductions
    - Misc display fixes and cleanups
    - Add new SMU debug option
    
    amdkfd:
    - SVM fixes
    
    radeon:
    - Fix typo in comment
    
    From: Alex Deucher <alexander.deucher@amd.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20211216202731.5900-1-alexander.deucher@amd.com
    airlied committed Dec 23, 2021

Commits on Dec 22, 2021

  1. dt-bindings: display: bridge: lvds-codec: Fix duplicate key

    In order to validate multiple "if" conditionals, they must be part of an
    "allOf:" list, otherwise they will cause a failure in parsing the schema
    because of the duplicated "if" property.
    
    Fixes: d7df394 ("dt-bindings: display: bridge: lvds-codec: Document pixel data sampling edge select")
    Signed-off-by: Thierry Reding <treding@nvidia.com>
    Signed-off-by: Rob Herring <robh@kernel.org>
    Link: https://lore.kernel.org/r/20211220125147.519880-1-thierry.reding@gmail.com
    Thierry Reding authored and robherring committed Dec 22, 2021
  2. drm/i915: Require the vm mutex for i915_vma_bind()

    Protect updates of struct i915_vma flags and async binding / unbinding
    with the vm::mutex. This means that i915_vma_bind() needs to assert
    vm::mutex held. In order to make that possible drop the caching of
    kmap_atomic() maps around i915_vma_bind().
    
    An alternative would be to use kmap_local() but since we block cpu
    unplugging during sleeps inside kmap_local() sections this may have
    unwanted side-effects. Particularly since we might wait for gpu while
    holding the vm mutex.
    
    This change may theoretically increase execbuf cpu-usage on snb, but
    at least on non-highmem systems that increase should be very small.
    
    Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
    Reviewed-by: Matthew Auld <matthew.auld@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20211221200050.436316-5-thomas.hellstrom@linux.intel.com
    Thomas Hellström committed Dec 22, 2021
  3. drm/i915: Break out the i915_deps utility

    Since it's starting to be used outside the i915 TTM move code, move it
    to a separate set of files.
    
    v2:
    - Update the documentation.
    v4:
    - Rebase.
    
    Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
    Reviewed-by: Matthew Auld <matthew.auld@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20211221200050.436316-4-thomas.hellstrom@linux.intel.com
    Thomas Hellström committed Dec 22, 2021
  4. drm/i915: remove questionable fence optimization during copy

    First of all as discussed multiple times now kernel copies *must* always
    wait for all fences in a BO before actually doing the copy. This is
    mandatory.
    
    Additional to that drop the handling when there can't be a shared slot
    allocated on the source BO and just properly return an error code.
    Otherwise this code path would only be tested under out of memory
    conditions.
    
    Signed-off-by: Christian König <christian.koenig@amd.com>
    Reviewed-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20211221200050.436316-3-thomas.hellstrom@linux.intel.com
    Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
    ChristianKoenigAMD authored and Thomas Hellström committed Dec 22, 2021
  5. drm/i915: Avoid using the i915_fence_array when collecting dependencies

    Since the gt migration code was using only a single fence for
    dependencies, these were collected in a dma_fence_array. However, it
    turns out that it's illegal to use some dma_fences in a dma_fence_array,
    in particular other dma_fence_arrays and dma_fence_chains, and this
    causes trouble for us moving forward.
    
    Have the gt migration code instead take a const struct i915_deps for
    dependencies. This means we can skip the dma_fence_array creation
    and instead pass the struct i915_deps instead to circumvent the
    problem.
    
    v2:
    - Make the prev_deps() function static. (kernel test robot <lkp@intel.com>)
    - Update the struct i915_deps kerneldoc.
    v4:
    - Rebase.
    
    Fixes: 5652df8 ("drm/i915/ttm: Update i915_gem_obj_copy_ttm() to be asynchronous")
    Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
    Reviewed-by: Matthew Auld <matthew.auld@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20211221200050.436316-2-thomas.hellstrom@linux.intel.com
    Thomas Hellström committed Dec 22, 2021
  6. drm/exynos: drop the use of label from exynos_dsi_register_te_irq

    Dropped the use of 'out' label from exynos_dsi_register_te_irq function
    because the label isn't needed. This patch returns an error in each
    error case directly not going to 'out' label.
    
    With this patch build warning[1] is also fixed, which was reported by
    kernel test robot <lkp@intel.com>
    
    [1] https://www.spinics.net/lists/dri-devel/msg323803.html
    
    Reported-by: kernel test robot <lkp@intel.com>
    Signed-off-by: Inki Dae <inki.dae@samsung.com>
    daeinki committed Dec 22, 2021
  7. drm/exynos: remove useless type conversion

    This change is to cleanup the code a bit.
    
    Signed-off-by: Bernard Zhao <bernard@vivo.com>
    Signed-off-by: Inki Dae <inki.dae@samsung.com>
    Bernard Zhao authored and daeinki committed Dec 22, 2021
  8. drm/exynos: Implement mmap as GEM object function

    Moving the driver-specific mmap code into a GEM object function allows
    for using DRM helpers for various mmap callbacks.
    
    The respective exynos functions are being removed. The file_operations
    structure exynos_drm_driver_fops is now being created by the helper macro
    DEFINE_DRM_GEM_FOPS().
    
    Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
    Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Fixed merge conflict.
    Signed-off-by: Inki Dae <inki.dae@samsung.com>
    Thomas Zimmermann authored and daeinki committed Dec 22, 2021
  9. drm/exynos: Replace legacy gpio interface for gpiod interface

    Considering the current transition of the GPIO subsystem, remove all
    dependencies of the legacy GPIO interface (linux/gpio.h and linux
    /of_gpio.h) and replace it with the descriptor-based GPIO approach.
    
    Signed-off-by: Maíra Canal <maira.canal@usp.br>
    Signed-off-by: Inki Dae <inki.dae@samsung.com>
    mairacanal authored and daeinki committed Dec 22, 2021

Commits on Dec 21, 2021

  1. drm/i915/guc: Request RP0 before loading firmware

    By default, GT (and GuC) run at RPn. Requesting for RP0
    before firmware load can speed up DMA and HuC auth as well.
    In addition to writing to 0xA008, we also need to enable
    swreq in 0xA024 so that Punit will pay heed to our request.
    
    SLPC will restore the frequency back to RPn after initialization,
    but we need to manually do that for the non-SLPC path.
    
    We don't need a manual override in the SLPC disabled case, just
    use the intel_rps_set function to ensure consistent RPS state.
    
    Signed-off-by: Vinay Belgaumkar <vinay.belgaumkar@intel.com>
    Reviewed-by: Sujaritha Sundaresan <sujaritha.sundaresan@intel.com>
    Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20211216233022.21351-1-vinay.belgaumkar@intel.com
    vsbelgaum authored and johnharr-intel committed Dec 21, 2021
  2. drm/i915: Add ww ctx to i915_gem_object_trylock

    This is required for i915_gem_evict_vm, to be able to evict the entire VM,
    including objects that are already locked to the current ww ctx.
    
    Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
    Reviewed-by: Matthew Auld <matthew.auld@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20211216142749.1966107-12-maarten.lankhorst@linux.intel.com
    mlankhorst committed Dec 21, 2021
  3. drm/i915: Require object lock when freeing pages during destruction

    TTM already requires this, and we require it for delayed destroy.
    
    Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
    Reviewed-by: Matthew Auld <matthew.auld@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20211216142749.1966107-11-maarten.lankhorst@linux.intel.com
    mlankhorst committed Dec 21, 2021
  4. drm/i915: Trylock the object when shrinking

    We're working on requiring the obj->resv lock during unbind, fix
    the shrinker to take the object lock.
    
    Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
    Reviewed-by: Matthew Auld <matthew.auld@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20211216142749.1966107-10-maarten.lankhorst@linux.intel.com
    mlankhorst committed Dec 21, 2021

Commits on Dec 20, 2021

  1. drm/i915/guc: Flag an error if an engine reset fails

    If GuC encounters an error during engine reset, the i915 driver
    promotes to full GT reset. This includes an info message about why the
    reset is happening. However, that is not treated as a failure by any
    of the CI systems because resets are an expected occurrance during
    testing. This kind of failure is a major problem and should never
    happen. So, complain more loudly and make sure CI notices.
    
    Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
    Reviewed-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20211211065859.2248188-4-John.C.Harrison@Intel.com
    johnharr-intel committed Dec 20, 2021
  2. drm/i915/guc: Increase GuC log size for CONFIG_DEBUG_GEM

    Lots of testing is done with the DEBUG_GEM config option enabled but
    not the DEBUG_GUC option. That means we only get teeny-tiny GuC logs
    which are not hugely useful. Enabling full DEBUG_GUC also spews lots
    of other detailed output that is not generally desired. However,
    bigger GuC logs are extremely useful for almost any regression debug.
    So enable bigger logs for DEBUG_GEM builds as well.
    
    Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
    Reviewed-by: Matthew Brost <matthew.brost@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20211211065859.2248188-3-John.C.Harrison@Intel.com
    johnharr-intel committed Dec 20, 2021
  3. drm/i915/guc: Speed up GuC log dumps

    Add support for telling the debugfs interface the size of the GuC log
    dump in advance. Without that, the underlying framework keeps calling
    the 'show' function with larger and larger buffer allocations until it
    fits. That means reading the log from graphics memory many times - 16
    times with the full 18MB log size.
    
    v2: Don't return error codes from size query. Report overflow in the
    error dump as well (review feedback from Daniele).
    
    Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
    Reviewed-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20211211065859.2248188-2-John.C.Harrison@Intel.com
    johnharr-intel committed Dec 20, 2021
  4. drm/etnaviv: limit submit sizes

    Currently we allow rediculous amounts of kernel memory being allocated
    via the etnaviv GEM_SUBMIT ioctl, which is a pretty easy DoS vector. Put
    some reasonable limits in to fix this.
    
    The commandstream size is limited to 64KB, which was already a soft limit
    on older kernels after which the kernel only took submits on a best effort
    base, so there is no userspace that tries to submit commandstreams larger
    than this. Even if the whole commandstream is a single incrementing address
    load, the size limit also limits the number of potential relocs and
    referenced buffers to slightly under 64K, so use the same limit for those
    arguments. The performance monitoring infrastructure currently supports
    less than 50 performance counter signals, so limiting them to 128 on a
    single submit seems like a reasonably future-proof number for now. This
    number can be bumped if needed without breaking the interface.
    
    Cc: stable@vger.kernel.org
    Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
    Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
    lynxeye-dev committed Dec 20, 2021
  5. drm/i915: Ensure i915_vma tests do not get -ENOSPC with the locking c…

    …hanges.
    
    Now that we require locking to evict, multiple vmas from the same object
    might not be evicted. This is expected and required, because execbuf will
    move to short-term pinning by using the lock only. This will cause these
    tests to fail, because they create a ton of vma's for the same object.
    
    Unbind manually to prevent spurious -ENOSPC in those mock tests.
    
    Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
    Reviewed-by: Matthew Auld <matthew.auld@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20211216142749.1966107-8-maarten.lankhorst@linux.intel.com
    mlankhorst committed Dec 20, 2021
Older