projects
/
firefly-linux-kernel-4.4.55.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
drm/nouveau: Add module options to disable acceleration.
[firefly-linux-kernel-4.4.55.git]
/
drivers
/
gpu
/
drm
/
nouveau
/
nouveau_state.c
diff --git
a/drivers/gpu/drm/nouveau/nouveau_state.c
b/drivers/gpu/drm/nouveau/nouveau_state.c
index f2d0187ba152fb8c7018b7c0d925c1cc60704cf6..241e24d60eb49ae7898ea5ca4b83ccb599d991be 100644
(file)
--- a/
drivers/gpu/drm/nouveau/nouveau_state.c
+++ b/
drivers/gpu/drm/nouveau/nouveau_state.c
@@
-427,15
+427,19
@@
nouveau_card_init(struct drm_device *dev)
if (ret)
goto out_timer;
if (ret)
goto out_timer;
- /* PGRAPH */
- ret = engine->graph.init(dev);
- if (ret)
- goto out_fb;
+ if (nouveau_noaccel)
+ engine->graph.accel_blocked = true;
+ else {
+ /* PGRAPH */
+ ret = engine->graph.init(dev);
+ if (ret)
+ goto out_fb;
- /* PFIFO */
- ret = engine->fifo.init(dev);
- if (ret)
- goto out_graph;
+ /* PFIFO */
+ ret = engine->fifo.init(dev);
+ if (ret)
+ goto out_graph;
+ }
/* this call irq_preinstall, register irq handler and
* call irq_postinstall
/* this call irq_preinstall, register irq handler and
* call irq_postinstall
@@
-479,9
+483,11
@@
nouveau_card_init(struct drm_device *dev)
out_irq:
drm_irq_uninstall(dev);
out_fifo:
out_irq:
drm_irq_uninstall(dev);
out_fifo:
- engine->fifo.takedown(dev);
+ if (!nouveau_noaccel)
+ engine->fifo.takedown(dev);
out_graph:
out_graph:
- engine->graph.takedown(dev);
+ if (!nouveau_noaccel)
+ engine->graph.takedown(dev);
out_fb:
engine->fb.takedown(dev);
out_timer:
out_fb:
engine->fb.takedown(dev);
out_timer:
@@
-518,8
+524,10
@@
static void nouveau_card_takedown(struct drm_device *dev)
dev_priv->channel = NULL;
}
dev_priv->channel = NULL;
}
- engine->fifo.takedown(dev);
- engine->graph.takedown(dev);
+ if (!nouveau_noaccel) {
+ engine->fifo.takedown(dev);
+ engine->graph.takedown(dev);
+ }
engine->fb.takedown(dev);
engine->timer.takedown(dev);
engine->mc.takedown(dev);
engine->fb.takedown(dev);
engine->timer.takedown(dev);
engine->mc.takedown(dev);