diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2012-05-01 02:39:08 -0400 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2012-05-24 02:56:07 -0400 |
commit | 7f2062e9de357e4158645b72b472ccba229cb3aa (patch) | |
tree | ba756779daa12146fd5016965da0b24eaf497213 | |
parent | 03bd6efa1468830d1dc9380654229d427aa487d7 (diff) |
drm/nv50: remove execution engine context saves on suspend
Now triggered automagically by the GPU on PFIFO takedown.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
-rw-r--r-- | drivers/gpu/drm/nouveau/nv50_graph.c | 6 | ||||
-rw-r--r-- | drivers/gpu/drm/nouveau/nv50_mpeg.c | 1 | ||||
-rw-r--r-- | drivers/gpu/drm/nouveau/nva3_copy.c | 7 |
3 files changed, 0 insertions, 14 deletions
diff --git a/drivers/gpu/drm/nouveau/nv50_graph.c b/drivers/gpu/drm/nouveau/nv50_graph.c index d262e31c2830..6fe5962c4393 100644 --- a/drivers/gpu/drm/nouveau/nv50_graph.c +++ b/drivers/gpu/drm/nouveau/nv50_graph.c | |||
@@ -210,12 +210,6 @@ nv50_graph_init(struct drm_device *dev, int engine) | |||
210 | static int | 210 | static int |
211 | nv50_graph_fini(struct drm_device *dev, int engine, bool suspend) | 211 | nv50_graph_fini(struct drm_device *dev, int engine, bool suspend) |
212 | { | 212 | { |
213 | nv_mask(dev, 0x400500, 0x00010001, 0x00000000); | ||
214 | if (!nv_wait(dev, 0x400700, ~0, 0) && suspend) { | ||
215 | nv_mask(dev, 0x400500, 0x00010001, 0x00010001); | ||
216 | return -EBUSY; | ||
217 | } | ||
218 | nv50_graph_unload_context(dev); | ||
219 | nv_wr32(dev, 0x40013c, 0x00000000); | 213 | nv_wr32(dev, 0x40013c, 0x00000000); |
220 | return 0; | 214 | return 0; |
221 | } | 215 | } |
diff --git a/drivers/gpu/drm/nouveau/nv50_mpeg.c b/drivers/gpu/drm/nouveau/nv50_mpeg.c index b57a2d180ad2..95c3305b54c6 100644 --- a/drivers/gpu/drm/nouveau/nv50_mpeg.c +++ b/drivers/gpu/drm/nouveau/nv50_mpeg.c | |||
@@ -162,7 +162,6 @@ nv50_mpeg_init(struct drm_device *dev, int engine) | |||
162 | static int | 162 | static int |
163 | nv50_mpeg_fini(struct drm_device *dev, int engine, bool suspend) | 163 | nv50_mpeg_fini(struct drm_device *dev, int engine, bool suspend) |
164 | { | 164 | { |
165 | /*XXX: context save for s/r */ | ||
166 | nv_mask(dev, 0x00b32c, 0x00000001, 0x00000000); | 165 | nv_mask(dev, 0x00b32c, 0x00000001, 0x00000000); |
167 | nv_wr32(dev, 0x00b140, 0x00000000); | 166 | nv_wr32(dev, 0x00b140, 0x00000000); |
168 | return 0; | 167 | return 0; |
diff --git a/drivers/gpu/drm/nouveau/nva3_copy.c b/drivers/gpu/drm/nouveau/nva3_copy.c index 8f356d58e409..b63ef87173a6 100644 --- a/drivers/gpu/drm/nouveau/nva3_copy.c +++ b/drivers/gpu/drm/nouveau/nva3_copy.c | |||
@@ -143,13 +143,6 @@ static int | |||
143 | nva3_copy_fini(struct drm_device *dev, int engine, bool suspend) | 143 | nva3_copy_fini(struct drm_device *dev, int engine, bool suspend) |
144 | { | 144 | { |
145 | nv_mask(dev, 0x104048, 0x00000003, 0x00000000); | 145 | nv_mask(dev, 0x104048, 0x00000003, 0x00000000); |
146 | |||
147 | /* trigger fuc context unload */ | ||
148 | nv_wait(dev, 0x104008, 0x0000000c, 0x00000000); | ||
149 | nv_mask(dev, 0x104054, 0x40000000, 0x00000000); | ||
150 | nv_wr32(dev, 0x104000, 0x00000008); | ||
151 | nv_wait(dev, 0x104008, 0x00000008, 0x00000000); | ||
152 | |||
153 | nv_wr32(dev, 0x104014, 0xffffffff); | 146 | nv_wr32(dev, 0x104014, 0xffffffff); |
154 | return 0; | 147 | return 0; |
155 | } | 148 | } |