[SRU][Xenial][PATCH 1/1] UBUNTU: SAUCE: drm: check for supported chipset before booting fbdev off the hw

Kamal Mostafa kamal at canonical.com
Tue Jul 12 22:18:10 UTC 2016


From: Ben Skeggs <bskeggs at redhat.com>

BugLink: http://bugs.launchpad.net/bugs/1602340

Signed-off-by: Ben Skeggs <bskeggs at redhat.com>
(back-ported from https://github.com/skeggsb/nouveau.git 11fcd1624b0a1c73fe3b2fa15c3cc45816da0470)
Signed-off-by: Kamal Mostafa <kamal at canonical.com>
---
 drivers/gpu/drm/nouveau/nouveau_drm.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.c b/drivers/gpu/drm/nouveau/nouveau_drm.c
index 1d3ee51..d236fc7 100644
--- a/drivers/gpu/drm/nouveau/nouveau_drm.c
+++ b/drivers/gpu/drm/nouveau/nouveau_drm.c
@@ -308,7 +308,16 @@ static int nouveau_drm_probe(struct pci_dev *pdev,
 	bool boot = false;
 	int ret;
 
-	/* 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;
-- 
2.7.4





More information about the kernel-team mailing list