Skip to content
Permalink
Andi-Shyti/Int…
Switch branches/tags

Commits on Jan 11, 2022

  1. drm/i915/gt: make a gt sysfs group and move power management files

    The GT has its own properties and in sysfs they should be grouped
    in the 'gt/' directory.
    
    Create a 'gt/' directory in sysfs which will contain gt0...gtN
    directories related to each tile configured in the GPU. Move the
    power management files inside those directories.
    
    The previous power management files are kept in their original
    root directory to avoid breaking the ABI. They point to the tile
    '0' and a warning message is printed whenever accessed to. The
    deprecated interface needs for the CONFIG_SYSFS_DEPRECATED_V2
    flag in order to be generated.
    
    The new sysfs structure will have a similar layout for the 4 tile
    case:
    
    /sys/.../card0
             ├── gt
             │   ├── gt0
             │   │   ├── id
             │   │   ├── rc6_enable
             │   │   ├── rc6_residency_ms
             │   │   ├── rps_act_freq_mhz
             │   │   ├── rps_boost_freq_mhz
             │   │   ├── rps_cur_freq_mhz
             │   │   ├── rps_max_freq_mhz
             │   │   ├── rps_min_freq_mhz
             │   │   ├── rps_RP0_freq_mhz
             │   │   ├── rps_RP1_freq_mhz
             │   │   └── rps_RPn_freq_mhz
    	 .   .
    	 .   .
    	 .   .
             │   └── gt3
             │       ├── id
             │       ├── rc6_enable
             │       ├── rc6_residency_ms
             │       ├── rps_act_freq_mhz
             │       ├── rps_boost_freq_mhz
             │       ├── rps_cur_freq_mhz
             │       ├── rps_max_freq_mhz
             │       ├── rps_min_freq_mhz
             │       ├── rps_RP0_freq_mhz
             │       ├── rps_RP1_freq_mhz
             │       └── rps_RPn_freq_mhz
             ├── gt_act_freq_mhz   -+
             ├── gt_boost_freq_mhz  |
             ├── gt_cur_freq_mhz    |    Original interface
             ├── gt_max_freq_mhz    +─-> kept as existing ABI;
             ├── gt_min_freq_mhz    |    it points to gt0/
             ├── gt_RP0_freq_mhz    |
             └── gt_RP1_freq_mhz    |
             └── gt_RPn_freq_mhz   -+
    
    Signed-off-by: Andi Shyti <andi.shyti@linux.intel.com>
    Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
    Cc: Matt Roper <matthew.d.roper@intel.com>
    Cc: Sujaritha Sundaresan <sujaritha.sundaresan@intel.com>
    Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
    Andi Shyti authored and intel-lab-lkp committed Jan 11, 2022
  2. drm/i915: Prepare for multiple GTs

    On a multi-tile platform, each tile has its own registers + GGTT
    space, and BAR 0 is extended to cover all of them.
    
    Up to four gts are supported in i915->gt[], with slot zero
    shadowing the existing i915->gt0 to enable source compatibility
    with legacy driver paths. A for_each_gt macro is added to iterate
    over the GTs and will be used by upcoming patches that convert
    various parts of the driver to be multi-gt aware.
    
    Only the primary/root tile is initialized for now; the other
    tiles will be detected and plugged in by future patches once the
    necessary infrastructure is in place to handle them.
    
    Signed-off-by: Abdiel Janulgue <abdiel.janulgue@gmail.com>
    Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
    Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
    Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
    Signed-off-by: Andi Shyti <andi.shyti@linux.intel.com>
    Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
    Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
    Cc: Matthew Auld <matthew.auld@intel.com>
    tursulin authored and intel-lab-lkp committed Jan 11, 2022

Commits on Jan 10, 2022

  1. Merge remote-tracking branch 'drm-intel/drm-intel-gt-next' into drm-tip

    # Conflicts:
    #	drivers/gpu/drm/i915/display/intel_fbc.c
    #	drivers/gpu/drm/i915/gem/i915_gem_ttm.c
    #	drivers/gpu/drm/i915/gt/intel_gt.c
    #	drivers/gpu/drm/i915/i915_driver.c
    Steven Price committed Jan 10, 2022
  2. Merge remote-tracking branch 'drm-intel/drm-intel-next-fixes' into dr…

    …m-tip
    Steven Price committed Jan 10, 2022
  3. Merge remote-tracking branch 'drm/drm-next' into drm-tip

    # Conflicts:
    #	drivers/gpu/drm/nouveau/nouveau_fence.c
    Steven Price committed Jan 10, 2022
  4. drm/panfrost: Update create_bo flags comment

    Update a comment stating create_bo took no flags, since it now takes a
    bit mask of optional flags NOEXEC and HEAP.
    
    Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
    Reviewed-by: Steven Price <steven.price@arm.com>
    Signed-off-by: Steven Price <steven.price@arm.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220109163704.2564-1-alyssa.rosenzweig@collabora.com
    Alyssa Rosenzweig authored and Steven Price committed Jan 10, 2022
  5. drm/i915: split out vlv sideband registers from i915_reg.h

    Add a dedicated file vlv_sideband_reg.h for the VLV/CHV sideband
    registers. The sideband registers macros are needed by the same files
    that need vlv_sideband.h, so include the definitions from there.
    
    v2: Fix copyright year (Matt)
    
    Cc: Matt Roper <matthew.d.roper@intel.com>
    Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220110095740.166078-2-jani.nikula@intel.com
    jnikula committed Jan 10, 2022
  6. drm/i915: split out PCI config space registers from i915_reg.h

    The PCI config space registers don't really belong next to the MMIO
    register definitions.
    
    v2: Fix	copyright year (Matt)
    
    Cc: Matt Roper <matthew.d.roper@intel.com>
    Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220110095740.166078-1-jani.nikula@intel.com
    jnikula committed Jan 10, 2022
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. drm/i915: split out gem/i915_gem_tiling.h from i915_drv.h

    We already have the gem/i915_gem_tiling.c file.
    
    Acked-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/8073a429ed1f8ade9c0cc8a6ed1a0f82183100c5.1641561552.git.jani.nikula@intel.com
    jnikula committed Jan 10, 2022
  13. drm/i915: split out gem/i915_gem_userptr.h from i915_drv.h

    We already have the gem/i915_gem_userptr.c file.
    
    Acked-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/c29f66604ebd973b8eff1cce7d7c53615a26480f.1641561552.git.jani.nikula@intel.com
    jnikula committed Jan 10, 2022
  14. drm/i915: split out i915_gem_evict.h from i915_drv.h

    We already have the i915_gem_evict.c file.
    
    v2: Fixed commit message (Tvrtko)
    
    Acked-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/ec666853171d04daeb21a93083940df36907c343.1641561552.git.jani.nikula@intel.com
    jnikula committed Jan 10, 2022
  15. drm/i915: split out i915_cmd_parser.h from i915_drv.h

    We already have the i915_cmd_parser.c file.
    
    Acked-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/1a02b8788266f4f2fd4de12808b55c4a66179e98.1641561552.git.jani.nikula@intel.com
    jnikula committed Jan 10, 2022
  16. drm/i915: split out i915_getparam.h from i915_drv.h

    We already have the i915_getparam.c file.
    
    Acked-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/27f3af2298c3cdd3cb2839c2a9a52237248e087a.1641561552.git.jani.nikula@intel.com
    jnikula committed Jan 10, 2022
  17. drm/privacy_screen_x86: Add entry for ChromeOS privacy-screen

    Add a static entry in the x86 table, to detect and wait for
    privacy-screen on some ChromeOS platforms.
    
    Please note that this means that if CONFIG_CHROMEOS_PRIVACY_SCREEN is
    enabled, and if "GOOG0010" device is found in ACPI, then the i915 probe
    shall return EPROBE_DEFER until a platform driver actually registers the
    privacy-screen: https://hansdegoede.livejournal.com/25948.html
    
    Signed-off-by: Rajat Jain <rajatja@google.com>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>
    Acked-by: Benson Leung <bleung@chromium.org>
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220107190208.95479-3-rajatja@google.com
    Rajat Jain authored and jwrdegoede committed Jan 10, 2022
  18. platform/chrome: Add driver for ChromeOS privacy-screen

    This adds the ACPI driver for the ChromeOS privacy screen that is
    present on some chromeos devices.
    
    Note that ideally, we'd want this privacy screen driver to be probed
    BEFORE the drm probe in order to avoid a drm probe deferral:
    https://hansdegoede.livejournal.com/25948.html
    
    In practise, I found that ACPI drivers are bound to their devices AFTER
    the drm probe on chromebooks. So on chromebooks with privacy-screen,
    this patch along with the other one in this series results in a probe
    deferral of about 250ms for i915 driver. However, it did not result in
    any user noticeable delay of splash screen in my personal experience.
    
    In future if this probe deferral turns out to be an issue, we can
    consider turning this ACPI driver into something that is probed
    earlier than the drm drivers.
    
    Signed-off-by: Rajat Jain <rajatja@google.com>
    Reviewed-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Acked-by: Benson Leung <bleung@chromium.org>
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220107190208.95479-2-rajatja@google.com
    Rajat Jain authored and jwrdegoede committed Jan 10, 2022
  19. drm/privacy_screen: Add drvdata in drm_privacy_screen

    Allow a privacy screen provider to stash its private data pointer in the
    drm_privacy_screen, and update the drm_privacy_screen_register() call to
    accept that. Also introduce a *_get_drvdata() so that it can retrieved
    back when needed.
    
    This also touches the IBM Thinkpad platform driver, the only user of
    privacy screen today, to pass NULL for now to the updated API.
    
    Signed-off-by: Rajat Jain <rajatja@google.com>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220107190208.95479-1-rajatja@google.com
    Rajat Jain authored and jwrdegoede committed Jan 10, 2022
  20. 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
    matt-auld committed Jan 10, 2022
  21. 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
    matt-auld committed Jan 10, 2022
  22. 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
    matt-auld committed Jan 10, 2022
  23. 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
    matt-auld committed Jan 10, 2022
  24. drm: bridge: adv7511: Fix ADV7535 HPD enablement

    Existing HPD enablement logic is not compatible with ADV7535
    bridge, thus any runtime plug-in of HDMI cable is not working
    on these bridge designs.
    
    Unlike other ADV7511 family of bridges, the ADV7535 require
    HPD_OVERRIDE bit to set and reset for proper handling of HPD
    functionality.
    
    Fix it.
    
    Fixes: 8501fe4 ("drm: bridge: adv7511: Add support for ADV7535")
    Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
    Signed-off-by: Robert Foss <robert.foss@linaro.org>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220109172949.168167-1-jagan@amarulasolutions.com
    Reviewed-by: Robert Foss <robert.foss@linaro.org>
    openedev authored and robertfoss committed Jan 10, 2022
  25. drm/bridge: anx7625: add audio codec .get_eld support

    Provide .get_eld interface in hdmi_codec_ops for hdmi-codec driver.
    
    Reviewed-by: Robert Foss <robert.foss@linaro.org>
    Signed-off-by: Xin Ji <xji@analogixsemi.com>
    Signed-off-by: Robert Foss <robert.foss@linaro.org>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220106100127.1862702-3-xji@analogixsemi.com
    Xin Ji authored and robertfoss committed Jan 10, 2022
  26. drm/bridge: anx7625: add HDCP support

    This patch provides HDCP setting interface for userspace to dynamic
    enable/disable HDCP function.
    
    Reported-by: kernel test robot <lkp@intel.com>
    Reviewed-by: Robert Foss <robert.foss@linaro.org>
    Signed-off-by: Xin Ji <xji@analogixsemi.com>
    Signed-off-by: Robert Foss <robert.foss@linaro.org>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220106100127.1862702-2-xji@analogixsemi.com
    Xin Ji authored and robertfoss committed Jan 10, 2022
  27. drm/bridge: anx7625: Add bridge helper atomic conversion

    Add bridge helper atomic conversion.
    
    Reviewed-by: Robert Foss <robert.foss@linaro.org>
    Signed-off-by: Xin Ji <xji@analogixsemi.com>
    Signed-off-by: Robert Foss <robert.foss@linaro.org>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220106100127.1862702-1-xji@analogixsemi.com
    Xin Ji authored and robertfoss committed Jan 10, 2022
Older