mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-26 04:16:39 +00:00
video: fbdev: hyperv_fb: Allow resolutions with size > 64 MB for Gen1
This patch fixes a bug where GEN1 VMs doesn't allow resolutions greater than 64 MB size (eg 7680x4320). Unnecessary PCI check limits Gen1 VRAM to legacy PCI BAR size only (ie 64MB). Thus any, resolution requesting greater then 64MB (eg 7680x4320) would fail. MMIO region assigning this memory shouldn't be limited by PCI bar size. Signed-off-by: Saurabh Sengar <ssengar@linux.microsoft.com> Reviewed-by: Dexuan Cui <decui@microsoft.com> Signed-off-by: Helge Deller <deller@gmx.de>
This commit is contained in:
parent
42226c9897
commit
c4b4d7047f
1 changed files with 1 additions and 18 deletions
|
@ -1009,7 +1009,6 @@ 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 pot_start, pot_end;
|
||||
phys_addr_t paddr;
|
||||
int ret;
|
||||
|
||||
|
@ -1060,23 +1059,7 @@ static int hvfb_getmem(struct hv_device *hdev, struct fb_info *info)
|
|||
dio_fb_size =
|
||||
screen_width * screen_height * screen_depth / 8;
|
||||
|
||||
if (gen2vm) {
|
||||
pot_start = 0;
|
||||
pot_end = -1;
|
||||
} else {
|
||||
if (!(pci_resource_flags(pdev, 0) & IORESOURCE_MEM) ||
|
||||
pci_resource_len(pdev, 0) < screen_fb_size) {
|
||||
pr_err("Resource not available or (0x%lx < 0x%lx)\n",
|
||||
(unsigned long) pci_resource_len(pdev, 0),
|
||||
(unsigned long) screen_fb_size);
|
||||
goto err1;
|
||||
}
|
||||
|
||||
pot_end = pci_resource_end(pdev, 0);
|
||||
pot_start = pot_end - screen_fb_size + 1;
|
||||
}
|
||||
|
||||
ret = vmbus_allocate_mmio(&par->mem, hdev, pot_start, pot_end,
|
||||
ret = vmbus_allocate_mmio(&par->mem, hdev, 0, -1,
|
||||
screen_fb_size, 0x100000, true);
|
||||
if (ret != 0) {
|
||||
pr_err("Unable to allocate framebuffer memory\n");
|
||||
|
|
Loading…
Reference in a new issue