Skip to content

Commit

Permalink
drm/hyperv: Remove firmware framebuffers with aperture helper
Browse files Browse the repository at this point in the history
Replace use of screen_info state with the correct interface from
the aperture helpers. The state is only for architecture and firmware
code. It is not guaranteed to contain valid data. Drivers are thus
not allowed to use it.

For removing conflicting firmware framebuffers, there are aperture
helpers. Hence replace screen_info with the correct function that will
remove conflicting framebuffers for the hyperv-drm driver. Also
move the call to the correct place within the driver.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>
Signed-off-by: Helge Deller <deller@gmx.de>
  • Loading branch information
Thomas Zimmermann authored and Helge Deller committed Jan 12, 2024
1 parent 7452b31 commit 778e73d
Showing 1 changed file with 2 additions and 6 deletions.
8 changes: 2 additions & 6 deletions drivers/gpu/drm/hyperv/hyperv_drm_drv.c
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
#include <linux/hyperv.h>
#include <linux/module.h>
#include <linux/pci.h>
#include <linux/screen_info.h>

#include <drm/drm_aperture.h>
#include <drm/drm_atomic_helper.h>
Expand Down Expand Up @@ -73,11 +72,6 @@ static int hyperv_setup_vram(struct hyperv_drm_device *hv,
struct drm_device *dev = &hv->dev;
int ret;

if (IS_ENABLED(CONFIG_SYSFB))
drm_aperture_remove_conflicting_framebuffers(screen_info.lfb_base,
screen_info.lfb_size,
&hyperv_driver);

hv->fb_size = (unsigned long)hv->mmio_megabytes * 1024 * 1024;

ret = vmbus_allocate_mmio(&hv->mem, hdev, 0, -1, hv->fb_size, 0x100000,
Expand Down Expand Up @@ -130,6 +124,8 @@ static int hyperv_vmbus_probe(struct hv_device *hdev,
goto err_hv_set_drv_data;
}

drm_aperture_remove_framebuffers(&hyperv_driver);

ret = hyperv_setup_vram(hv, hdev);
if (ret)
goto err_vmbus_close;
Expand Down

0 comments on commit 778e73d

Please sign in to comment.