*/
 #define AMPERE_IED_HACK(disp) ((disp)->engine.subdev.device->card_type >= GA100)
 
+static int
+nvkm_dp_aux_pwr(struct nvkm_outp *outp, bool pu)
+{
+       outp->dp.enabled = pu;
+       nvkm_dp_enable(outp, outp->dp.enabled);
+       return 0;
+}
+
 struct lt_state {
        struct nvkm_outp *outp;
 
        .disable = nvkm_dp_disable,
        .bl.get = nvkm_outp_bl_get,
        .bl.set = nvkm_outp_bl_set,
+       .dp.aux_pwr = nvkm_dp_aux_pwr,
 };
 
 int
 
                int (*get)(struct nvkm_outp *);
                int (*set)(struct nvkm_outp *, int level);
        } bl;
+
+       struct {
+               int (*aux_pwr)(struct nvkm_outp *, bool pu);
+       } dp;
 };
 
 #define OUTP_MSG(o,l,f,a...) do {                                              \
 
 
        if (argc != sizeof(args->v0) || args->v0.version != 0)
                return -ENOSYS;
+       if (!outp->func->dp.aux_pwr)
+               return -EINVAL;
 
-       outp->dp.enabled = !!args->v0.state;
-       nvkm_dp_enable(outp, outp->dp.enabled);
-       return 0;
+       return outp->func->dp.aux_pwr(outp, !!args->v0.state);
 }
 
 static int