• T
    drm/vram-helper: Fix use of top-down placement · 01822dd1
    Thomas Zimmermann 提交于
    Commit 7053e0ea ("drm/vram-helper: stop using TTM placement flags")
    cleared the BO placement flags if top-down placement had been selected.
    Hence, BOs that were supposed to go into VRAM are now placed in a default
    location in system memory.
    
    Trying to scanout the incorrectly pinned BO results in displayed garbage
    and an error message.
    
    [  146.108127] ------------[ cut here ]------------
    [  146.1V08180] WARNING: CPU: 0 PID: 152 at drivers/gpu/drm/drm_gem_vram_helper.c:284 drm_gem_vram_offset+0x59/0x60 [drm_vram_helper]
    ...
    [  146.108591]  ast_cursor_page_flip+0x3e/0x150 [ast]
    [  146.108622]  ast_cursor_plane_helper_atomic_update+0x8a/0xc0 [ast]
    [  146.108654]  drm_atomic_helper_commit_planes+0x197/0x4c0
    [  146.108699]  drm_atomic_helper_commit_tail_rpm+0x59/0xa0
    [  146.108718]  commit_tail+0x103/0x1c0
    ...
    [  146.109302] ---[ end trace d901a1ba1d949036 ]---
    
    Fix the bug by keeping the placement flags. The top-down placement flag
    is stored in a separate variable.
    Signed-off-by: NThomas Zimmermann <tzimmermann@suse.de>
    Reviewed-by: NChristian König <christian.koenig@amd.com>
    Fixes: 7053e0ea ("drm/vram-helper: stop using TTM placement flags")
    Reported-by: Pu Wen <puwen@hygon.cn> [for 5.10-rc1]
    Tested-by: NPu Wen <puwen@hygon.cn>
    Cc: Christian König <christian.koenig@amd.com>
    Cc: Dave Airlie <airlied@redhat.com>
    Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
    Cc: Maxime Ripard <mripard@kernel.org>
    Cc: Thomas Zimmermann <tzimmermann@suse.de>
    Cc: David Airlie <airlied@linux.ie>
    Cc: Daniel Vetter <daniel@ffwll.ch>
    Cc: dri-devel@lists.freedesktop.org
    Link: https://patchwork.freedesktop.org/patch/msgid/20200921142536.4392-1-tzimmermann@suse.de
    (cherry picked from commit b8f8dbf6)
    [pulled into fixes from drm-next]
    Signed-off-by: NDave Airlie <airlied@redhat.com>
    01822dd1
drm_gem_vram_helper.c 30.9 KB