diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.c b/drivers/gpu/drm/nouveau/nouveau_drm.c index d021a3049be1..82a8061e6d3e 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)