Thread (7 messages) 7 messages, 5 authors, 2022-05-19

RE: [PATCH] video: hyperv_fb: Allow resolutions with size > 64 MB for Gen1

From: Haiyang Zhang <haiyangz@microsoft.com>
Date: 2022-05-04 16:43:31
Also in: dri-devel, linux-hyperv, lkml

-----Original Message-----
From: Wei Liu <wei.liu@kernel.org>
Sent: Thursday, April 28, 2022 10:38 AM
To: Saurabh Sengar <ssengar@linux.microsoft.com>
Cc: Saurabh Singh Sengar <redacted>; KY Srinivasan
[off-list ref]; Haiyang Zhang [off-list ref]; Stephen
Hemminger [off-list ref]; wei.liu@kernel.org; Dexuan Cui
[off-list ref]; deller@gmx.de; linux-hyperv@vger.kernel.org; linux-
fbdev@vger.kernel.org; dri-devel@lists.freedesktop.org; linux-
kernel@vger.kernel.org
Subject: Re: [PATCH] video: hyperv_fb: Allow resolutions with size > 64 MB for
Gen1

On Wed, Apr 27, 2022 at 06:47:53AM -0700, Saurabh Sengar wrote:
quoted
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>
---
 drivers/video/fbdev/hyperv_fb.c | 19 +------------------
 1 file changed, 1 insertion(+), 18 deletions(-)
diff --git a/drivers/video/fbdev/hyperv_fb.c
b/drivers/video/fbdev/hyperv_fb.c
quoted
index c8e0ea2..58c304a 100644
--- a/drivers/video/fbdev/hyperv_fb.c
+++ b/drivers/video/fbdev/hyperv_fb.c
@@ -1009,7 +1009,6 @@ static int hvfb_getmem(struct hv_device *hdev,
struct fb_info *info)
quoted
 	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)
quoted
 	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;
This restriction has been in place since day 1. Haiyang, you wrote this
driver. Can you comment on whether this change here is sensible?
When I initially implemented this driver 10 years ago, I believe there 
was smaller limit for the fb... But I think this patch is good for the 
newer MMIO alloc scheme. I hope to see reviews also from
 @Dexuan Cui @Michael Kelley (LINUX) who are more familiar with 
the PCI/BAR/MMIO area.

Thanks,
- Haiyang
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help