Atomic modesetting support was never added for pre-nv50 chipsets, so make
sure we don't allow it to be forced on. Additionally, print a small warning
when it's not supported.

Signed-off-by: Lyude Paul <[email protected]>

---
V2:
* Check against info.family, not info.chipset
V6:
* Check against device->card_type so we can perform the check before
  setting up nvif

 drivers/gpu/drm/nouveau/nouveau_drm.c | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.c 
b/drivers/gpu/drm/nouveau/nouveau_drm.c
index d021a3049be1a..82a8061e6d3e2 100644
--- a/drivers/gpu/drm/nouveau/nouveau_drm.c
+++ b/drivers/gpu/drm/nouveau/nouveau_drm.c
@@ -739,10 +739,17 @@ nouveau_drm_device_new(struct device *parent, struct 
nvkm_device *device)
        struct nouveau_drm *drm;
        int ret;
 
-       if (nouveau_atomic)
-               driver = &driver_atomic_kms;
-       else
+       if (device->card_type >= NV_50) {
+               if (nouveau_atomic)
+                       driver = &driver_atomic_kms;
+               else
+                       driver = &driver_legacy_kms;
+       } else {
+               if (nouveau_atomic)
+                       dev_warn(parent, "Atomic modesetting not supported 
(needs nv50+)\n");
+
                driver = &driver_legacy_kms;
+       }
 
        drm = kzalloc_obj(*drm);
        if (!drm)
-- 
2.55.0

Reply via email to