Commit 778e73d2 authored by Thomas Zimmermann's avatar Thomas Zimmermann Committed by Helge Deller

drm/hyperv: Remove firmware framebuffers with aperture helper

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: default avatarThomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: default avatarJavier Martinez Canillas <javierm@redhat.com>
Signed-off-by: default avatarHelge Deller <deller@gmx.de>
parent 7452b319
...@@ -7,7 +7,6 @@ ...@@ -7,7 +7,6 @@
#include <linux/hyperv.h> #include <linux/hyperv.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/pci.h> #include <linux/pci.h>
#include <linux/screen_info.h>
#include <drm/drm_aperture.h> #include <drm/drm_aperture.h>
#include <drm/drm_atomic_helper.h> #include <drm/drm_atomic_helper.h>
...@@ -73,11 +72,6 @@ static int hyperv_setup_vram(struct hyperv_drm_device *hv, ...@@ -73,11 +72,6 @@ static int hyperv_setup_vram(struct hyperv_drm_device *hv,
struct drm_device *dev = &hv->dev; struct drm_device *dev = &hv->dev;
int ret; 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; hv->fb_size = (unsigned long)hv->mmio_megabytes * 1024 * 1024;
ret = vmbus_allocate_mmio(&hv->mem, hdev, 0, -1, hv->fb_size, 0x100000, ret = vmbus_allocate_mmio(&hv->mem, hdev, 0, -1, hv->fb_size, 0x100000,
...@@ -130,6 +124,8 @@ static int hyperv_vmbus_probe(struct hv_device *hdev, ...@@ -130,6 +124,8 @@ static int hyperv_vmbus_probe(struct hv_device *hdev,
goto err_hv_set_drv_data; goto err_hv_set_drv_data;
} }
drm_aperture_remove_framebuffers(&hyperv_driver);
ret = hyperv_setup_vram(hv, hdev); ret = hyperv_setup_vram(hv, hdev);
if (ret) if (ret)
goto err_vmbus_close; goto err_vmbus_close;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment