#include <nvfw/flcn.h>
 #include <nvfw/sec2.h>
 
+int
+gp102_sec2_nofw(struct nvkm_sec2 *sec2, int ver,
+               const struct nvkm_sec2_fwif *fwif)
+{
+       nvkm_warn(&sec2->engine.subdev, "firmware unavailable\n");
+       return 0;
+}
+
 static int
 gp102_sec2_acr_bootstrap_falcon_callback(void *priv, struct nvfw_falcon_msg *hdr)
 {
 
 static const struct nvkm_sec2_fwif
 gp102_sec2_fwif[] = {
-       { 1, gp102_sec2_load, &gp102_sec2, &gp102_sec2_acr_1 },
-       { 0, gp102_sec2_load, &gp102_sec2, &gp102_sec2_acr_0 },
+       {  1, gp102_sec2_load, &gp102_sec2, &gp102_sec2_acr_1 },
+       {  0, gp102_sec2_load, &gp102_sec2, &gp102_sec2_acr_0 },
+       { -1, gp102_sec2_nofw, &gp102_sec2 },
        {}
 };
 
 
        const struct nvkm_acr_lsf_func *acr;
 };
 
+int gp102_sec2_nofw(struct nvkm_sec2 *, int, const struct nvkm_sec2_fwif *);
 int gp102_sec2_load(struct nvkm_sec2 *, int, const struct nvkm_sec2_fwif *);
 extern const struct nvkm_sec2_func gp102_sec2;
 extern const struct nvkm_acr_lsf_func gp102_sec2_acr_1;
 
        .initmsg = gp102_sec2_initmsg,
 };
 
-static int
-tu102_sec2_nofw(struct nvkm_sec2 *sec2, int ver,
-               const struct nvkm_sec2_fwif *fwif)
-{
-       return 0;
-}
-
 MODULE_FIRMWARE("nvidia/tu102/sec2/desc.bin");
 MODULE_FIRMWARE("nvidia/tu102/sec2/image.bin");
 MODULE_FIRMWARE("nvidia/tu102/sec2/sig.bin");
 static const struct nvkm_sec2_fwif
 tu102_sec2_fwif[] = {
        {  0, gp102_sec2_load, &tu102_sec2, &gp102_sec2_acr_1 },
-       { -1, tu102_sec2_nofw, &tu102_sec2 }
+       { -1, gp102_sec2_nofw, &tu102_sec2 }
 };
 
 int