drm/ast: Fix start address computation
authorJocelyn Falempe <jfalempe@redhat.com>
Thu, 9 Feb 2023 09:44:17 +0000 (10:44 +0100)
committerJocelyn Falempe <jfalempe@redhat.com>
Fri, 10 Feb 2023 13:32:57 +0000 (14:32 +0100)
commit7484a5bc153e81a1740c06ce037fd55b7638335c
tree7aa0350eb9e9292b1b868899b299855f74e82051
parent3efc61d95259956db25347e2a9562c3e54546e20
drm/ast: Fix start address computation

During the driver conversion to shmem, the start address for the
scanout buffer was set to the base PCI address.
In most cases it works because only the lower 24bits are used, and
due to alignment it was almost always 0.
But on some unlucky hardware, it's not the case, and some uninitialized
memory is displayed on the BMC.
With shmem, the primary plane is always at offset 0 in GPU memory.

 * v2: rewrite the patch to set the offset to 0. (Thomas Zimmermann)
 * v3: move the change to plane_init() and also fix the cursor plane.
       (Jammy Huang)

Tested on a sr645 affected by this bug.

Fixes: f2fa5a99ca81 ("drm/ast: Convert ast to SHMEM")
Signed-off-by: Jocelyn Falempe <jfalempe@redhat.com>
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Jammy Huang <jammy_huang@aspeedtech.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230209094417.21630-1-jfalempe@redhat.com
drivers/gpu/drm/ast/ast_mode.c