diff options
| -rw-r--r-- | drivers/gpu/drm/nouveau/nouveau_channel.c | 41 | ||||
| -rw-r--r-- | drivers/gpu/drm/nouveau/nouveau_drv.h | 1 |
2 files changed, 0 insertions, 42 deletions
diff --git a/drivers/gpu/drm/nouveau/nouveau_channel.c b/drivers/gpu/drm/nouveau/nouveau_channel.c index 4f378b68fe7b..d1c7f8c911c7 100644 --- a/drivers/gpu/drm/nouveau/nouveau_channel.c +++ b/drivers/gpu/drm/nouveau/nouveau_channel.c | |||
| @@ -235,47 +235,6 @@ nouveau_channel_alloc(struct drm_device *dev, struct nouveau_channel **chan_ret, | |||
| 235 | return 0; | 235 | return 0; |
| 236 | } | 236 | } |
| 237 | 237 | ||
| 238 | int | ||
| 239 | nouveau_channel_idle(struct nouveau_channel *chan) | ||
| 240 | { | ||
| 241 | struct drm_device *dev = chan->dev; | ||
| 242 | struct drm_nouveau_private *dev_priv = dev->dev_private; | ||
| 243 | struct nouveau_engine *engine = &dev_priv->engine; | ||
| 244 | uint32_t caches; | ||
| 245 | int idle; | ||
| 246 | |||
| 247 | if (!chan) { | ||
| 248 | NV_ERROR(dev, "no channel...\n"); | ||
| 249 | return 1; | ||
| 250 | } | ||
| 251 | |||
| 252 | caches = nv_rd32(dev, NV03_PFIFO_CACHES); | ||
| 253 | nv_wr32(dev, NV03_PFIFO_CACHES, caches & ~1); | ||
| 254 | |||
| 255 | if (engine->fifo.channel_id(dev) != chan->id) { | ||
| 256 | struct nouveau_gpuobj *ramfc = | ||
| 257 | chan->ramfc ? chan->ramfc->gpuobj : NULL; | ||
| 258 | |||
| 259 | if (!ramfc) { | ||
| 260 | NV_ERROR(dev, "No RAMFC for channel %d\n", chan->id); | ||
| 261 | return 1; | ||
| 262 | } | ||
| 263 | |||
| 264 | engine->instmem.prepare_access(dev, false); | ||
| 265 | if (nv_ro32(dev, ramfc, 0) != nv_ro32(dev, ramfc, 1)) | ||
| 266 | idle = 0; | ||
| 267 | else | ||
| 268 | idle = 1; | ||
| 269 | engine->instmem.finish_access(dev); | ||
| 270 | } else { | ||
| 271 | idle = (nv_rd32(dev, NV04_PFIFO_CACHE1_DMA_GET) == | ||
| 272 | nv_rd32(dev, NV04_PFIFO_CACHE1_DMA_PUT)); | ||
| 273 | } | ||
| 274 | |||
| 275 | nv_wr32(dev, NV03_PFIFO_CACHES, caches); | ||
| 276 | return idle; | ||
| 277 | } | ||
| 278 | |||
| 279 | /* stops a fifo */ | 238 | /* stops a fifo */ |
| 280 | void | 239 | void |
| 281 | nouveau_channel_free(struct nouveau_channel *chan) | 240 | nouveau_channel_free(struct nouveau_channel *chan) |
diff --git a/drivers/gpu/drm/nouveau/nouveau_drv.h b/drivers/gpu/drm/nouveau/nouveau_drv.h index 9181eaefe918..4087a9a20ba9 100644 --- a/drivers/gpu/drm/nouveau/nouveau_drv.h +++ b/drivers/gpu/drm/nouveau/nouveau_drv.h | |||
| @@ -745,7 +745,6 @@ extern int nouveau_channel_alloc(struct drm_device *dev, | |||
| 745 | struct drm_file *file_priv, | 745 | struct drm_file *file_priv, |
| 746 | uint32_t fb_ctxdma, uint32_t tt_ctxdma); | 746 | uint32_t fb_ctxdma, uint32_t tt_ctxdma); |
| 747 | extern void nouveau_channel_free(struct nouveau_channel *); | 747 | extern void nouveau_channel_free(struct nouveau_channel *); |
| 748 | extern int nouveau_channel_idle(struct nouveau_channel *chan); | ||
| 749 | 748 | ||
| 750 | /* nouveau_object.c */ | 749 | /* nouveau_object.c */ |
| 751 | extern int nouveau_gpuobj_early_init(struct drm_device *); | 750 | extern int nouveau_gpuobj_early_init(struct drm_device *); |
