浏览代码

drm/nouveau: check for supported chipset before booting fbdev off the hw

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Cc: stable@vger.kernel.org
Ben Skeggs 9 年之前
父节点
当前提交
0e67bed2c7
共有 1 个文件被更改,包括 10 次插入1 次删除
  1. 10 1
      drivers/gpu/drm/nouveau/nouveau_drm.c

+ 10 - 1
drivers/gpu/drm/nouveau/nouveau_drm.c

@@ -317,7 +317,16 @@ static int nouveau_drm_probe(struct pci_dev *pdev,
 	if (vga_switcheroo_client_probe_defer(pdev))
 		return -EPROBE_DEFER;
 
-	/* remove conflicting drivers (vesafb, efifb etc) */
+	/* We need to check that the chipset is supported before booting
+	 * fbdev off the hardware, as there's no way to put it back.
+	 */
+	ret = nvkm_device_pci_new(pdev, NULL, "error", true, false, 0, &device);
+	if (ret)
+		return ret;
+
+	nvkm_device_del(&device);
+
+	/* Remove conflicting drivers (vesafb, efifb etc). */
 	aper = alloc_apertures(3);
 	if (!aper)
 		return -ENOMEM;