@@ -76,7 +76,7 @@ int nouveau_ignorelid = 0;
module_param_named(ignorelid, nouveau_ignorelid, int, 0400);
MODULE_PARM_DESC(noaccel, "Disable all acceleration");
-int nouveau_noaccel = 0;
+int nouveau_noaccel = -1;
module_param_named(noaccel, nouveau_noaccel, int, 0400);
MODULE_PARM_DESC(nofbaccel, "Disable fbcon acceleration");
@@ -686,6 +686,15 @@ static int nouveau_remove_conflicting_drivers(struct drm_device *dev)
return 0;
}
+static void nouveau_apply_noaccel_quirks (struct drm_device *dev)
+{
+ struct drm_nouveau_private *dev_priv = dev->dev_private;
+ if (nouveau_noaccel == -1) {
+ /* If not specified, noaccel should default off */
+ nouveau_noaccel = 0;
+ }
+}
+
int nouveau_load(struct drm_device *dev, unsigned long flags)
{
struct drm_nouveau_private *dev_priv;
@@ -811,6 +820,9 @@ int nouveau_load(struct drm_device *dev, unsigned long flags)
else if (dev->pci_device == 0x01f0)
dev_priv->flags |= NV_NFORCE2;
+ /* Apply noaccel quirks */
+ nouveau_apply_noaccel_quirks(dev);
+
/* For kernel modesetting, init card now and bring up fbcon */
if (drm_core_check_feature(dev, DRIVER_MODESET)) {
int ret = nouveau_card_init(dev);