FIFO gives us load/save/switch status, and we need to be able to determine
which direction a "switch" is failing during channel recovery.
In order to do this, we apparently need to query the engine itself.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
        int (*fini)(struct nvkm_engine *, bool suspend);
        void (*intr)(struct nvkm_engine *);
        void (*tile)(struct nvkm_engine *, int region, struct nvkm_fb_tile *);
+       bool (*chsw_load)(struct nvkm_engine *);
 
        struct {
                int (*sclass)(struct nvkm_oclass *, int index,
 struct nvkm_engine *nvkm_engine_ref(struct nvkm_engine *);
 void nvkm_engine_unref(struct nvkm_engine **);
 void nvkm_engine_tile(struct nvkm_engine *, int region);
+bool nvkm_engine_chsw_load(struct nvkm_engine *);
 #endif
 
 
 #include <subdev/fb.h>
 
+bool
+nvkm_engine_chsw_load(struct nvkm_engine *engine)
+{
+       if (engine->func->chsw_load)
+               return engine->func->chsw_load(engine);
+       return false;
+}
+
 void
 nvkm_engine_unref(struct nvkm_engine **pengine)
 {