v2: explicitly set nr_push to 0 as well
Signed-off-by: Karol Herbst <kherbst@redhat.com>
nouveau_bufctx_new
nouveau_bufctx_refn
nouveau_bufctx_reset
+nouveau_check_dead_channel
nouveau_client_del
nouveau_client_new
nouveau_device_del
uint32_t offset;
uint32_t length;
};
+
+bool
+nouveau_check_dead_channel(struct nouveau_drm *, struct nouveau_object *chan);
+
#endif
pushbuf_flush(push);
return pushbuf_validate(push, false);
}
+
+drm_public bool
+nouveau_check_dead_channel(struct nouveau_drm *drm, struct nouveau_object *chan)
+{
+ struct drm_nouveau_gem_pushbuf req = {};
+ struct nouveau_fifo *fifo = chan->data;
+ int ret;
+
+ req.channel = fifo->channel;
+ req.nr_push = 0;
+
+ ret = drmCommandWriteRead(drm->fd, DRM_NOUVEAU_GEM_PUSHBUF,
+ &req, sizeof(req));
+ /* nouveau returns ENODEV once the channel was killed */
+ return ret == -ENODEV;
+}