aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2014-12-16 06:29:59 -0500
committerGerd Hoffmann <kraxel@redhat.com>2016-09-20 08:25:35 -0400
commitde59576293f82ee285ef5edb31f7169c84403368 (patch)
treea9fa400090460d9862ee85438812d201c555894c
parent3be7988674ab33565700a37b210f502563d932e6 (diff)
bochs: ignore device if there isn't enougth memory
The qemu stdvga can be configured with a wide range of video memory, from 1 MB to 256 MB (default is 16 MB). In case it is configured with only 1 or 2 MB it isn't really usable with bochsdrm, due to depths other than 32bpp not being supported so that isn't enough memory for a reasonable sized framebuffer. So skip the device and let vgacon or vesafb+fbcon handle the it. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
-rw-r--r--drivers/gpu/drm/bochs/bochs_drv.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/gpu/drm/bochs/bochs_drv.c b/drivers/gpu/drm/bochs/bochs_drv.c
index abace82de6ea..aaae5e50d7c8 100644
--- a/drivers/gpu/drm/bochs/bochs_drv.c
+++ b/drivers/gpu/drm/bochs/bochs_drv.c
@@ -162,8 +162,15 @@ static int bochs_kick_out_firmware_fb(struct pci_dev *pdev)
162static int bochs_pci_probe(struct pci_dev *pdev, 162static int bochs_pci_probe(struct pci_dev *pdev,
163 const struct pci_device_id *ent) 163 const struct pci_device_id *ent)
164{ 164{
165 unsigned long fbsize;
165 int ret; 166 int ret;
166 167
168 fbsize = pci_resource_len(pdev, 0);
169 if (fbsize < 4 * 1024 * 1024) {
170 DRM_ERROR("less than 4 MB video memory, ignoring device\n");
171 return -ENOMEM;
172 }
173
167 ret = bochs_kick_out_firmware_fb(pdev); 174 ret = bochs_kick_out_firmware_fb(pdev);
168 if (ret) 175 if (ret)
169 return ret; 176 return ret;