Message ID | 20221219160516.23436-9-tzimmermann@suse.de |
---|---|
State | New |
Headers | show |
Series | drm,fbdev: Remove apertures structure and FBINFO_MISC_FIRMWARE | expand |
From: Thomas Zimmermann <tzimmermann@suse.de> Sent: Monday, December 19, 2022 8:05 AM > > Generic fbdev drivers use the apertures field in struct fb_info to > control ownership of the framebuffer memory and graphics device. Do > not set the values in hyperv-fb. > > Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> > --- > drivers/video/fbdev/hyperv_fb.c | 17 ++++++----------- > 1 file changed, 6 insertions(+), 11 deletions(-) > > diff --git a/drivers/video/fbdev/hyperv_fb.c b/drivers/video/fbdev/hyperv_fb.c > index d8edb5635f77..1c7d6ff5a6c0 100644 > --- a/drivers/video/fbdev/hyperv_fb.c > +++ b/drivers/video/fbdev/hyperv_fb.c > @@ -988,13 +988,10 @@ static int hvfb_getmem(struct hv_device *hdev, struct fb_info *info) > struct pci_dev *pdev = NULL; > void __iomem *fb_virt; > int gen2vm = efi_enabled(EFI_BOOT); > + resource_size_t base, size; > phys_addr_t paddr; > int ret; > > - info->apertures = alloc_apertures(1); > - if (!info->apertures) > - return -ENOMEM; > - > if (!gen2vm) { > pdev = pci_get_device(PCI_VENDOR_ID_MICROSOFT, > PCI_DEVICE_ID_HYPERV_VIDEO, NULL); > @@ -1003,8 +1000,8 @@ static int hvfb_getmem(struct hv_device *hdev, struct fb_info *info) > return -ENODEV; > } > > - info->apertures->ranges[0].base = pci_resource_start(pdev, 0); > - info->apertures->ranges[0].size = pci_resource_len(pdev, 0); > + base = pci_resource_start(pdev, 0); > + size = pci_resource_len(pdev, 0); > > /* > * For Gen 1 VM, we can directly use the contiguous memory > @@ -1027,8 +1024,8 @@ static int hvfb_getmem(struct hv_device *hdev, struct fb_info *info) > } > pr_info("Unable to allocate enough contiguous physical memory on Gen 1 VM. Using MMIO instead.\n"); > } else { > - info->apertures->ranges[0].base = screen_info.lfb_base; > - info->apertures->ranges[0].size = screen_info.lfb_size; > + base = screen_info.lfb_base; > + size = screen_info.lfb_size; > } > > /* > @@ -1070,9 +1067,7 @@ static int hvfb_getmem(struct hv_device *hdev, struct fb_info *info) > info->screen_size = dio_fb_size; > > getmem_done: > - aperture_remove_conflicting_devices(info->apertures->ranges[0].base, > - info->apertures->ranges[0].size, > - false, KBUILD_MODNAME); > + aperture_remove_conflicting_devices(base, size, false, KBUILD_MODNAME); > > if (gen2vm) { > /* framebuffer is reallocated, clear screen_info to avoid misuse from kexec */ > -- > 2.39.0 Reviewed-by: Michael Kelley <mikelley@microsoft.com>
diff --git a/drivers/video/fbdev/hyperv_fb.c b/drivers/video/fbdev/hyperv_fb.c index d8edb5635f77..1c7d6ff5a6c0 100644 --- a/drivers/video/fbdev/hyperv_fb.c +++ b/drivers/video/fbdev/hyperv_fb.c @@ -988,13 +988,10 @@ static int hvfb_getmem(struct hv_device *hdev, struct fb_info *info) struct pci_dev *pdev = NULL; void __iomem *fb_virt; int gen2vm = efi_enabled(EFI_BOOT); + resource_size_t base, size; phys_addr_t paddr; int ret; - info->apertures = alloc_apertures(1); - if (!info->apertures) - return -ENOMEM; - if (!gen2vm) { pdev = pci_get_device(PCI_VENDOR_ID_MICROSOFT, PCI_DEVICE_ID_HYPERV_VIDEO, NULL); @@ -1003,8 +1000,8 @@ static int hvfb_getmem(struct hv_device *hdev, struct fb_info *info) return -ENODEV; } - info->apertures->ranges[0].base = pci_resource_start(pdev, 0); - info->apertures->ranges[0].size = pci_resource_len(pdev, 0); + base = pci_resource_start(pdev, 0); + size = pci_resource_len(pdev, 0); /* * For Gen 1 VM, we can directly use the contiguous memory @@ -1027,8 +1024,8 @@ static int hvfb_getmem(struct hv_device *hdev, struct fb_info *info) } pr_info("Unable to allocate enough contiguous physical memory on Gen 1 VM. Using MMIO instead.\n"); } else { - info->apertures->ranges[0].base = screen_info.lfb_base; - info->apertures->ranges[0].size = screen_info.lfb_size; + base = screen_info.lfb_base; + size = screen_info.lfb_size; } /* @@ -1070,9 +1067,7 @@ static int hvfb_getmem(struct hv_device *hdev, struct fb_info *info) info->screen_size = dio_fb_size; getmem_done: - aperture_remove_conflicting_devices(info->apertures->ranges[0].base, - info->apertures->ranges[0].size, - false, KBUILD_MODNAME); + aperture_remove_conflicting_devices(base, size, false, KBUILD_MODNAME); if (gen2vm) { /* framebuffer is reallocated, clear screen_info to avoid misuse from kexec */
Generic fbdev drivers use the apertures field in struct fb_info to control ownership of the framebuffer memory and graphics device. Do not set the values in hyperv-fb. Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> --- drivers/video/fbdev/hyperv_fb.c | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-)