const char *name = connector->name;
        struct nouveau_encoder *nv_encoder;
        int ret;
+       bool plugged = (rep->mask != NVIF_NOTIFY_CONN_V0_UNPLUG);
+
+       if (rep->mask & NVIF_NOTIFY_CONN_V0_IRQ) {
+               NV_DEBUG(drm, "service %s\n", name);
+               drm_dp_cec_irq(&nv_connector->aux);
+               if ((nv_encoder = find_encoder(connector, DCB_OUTPUT_DP)))
+                       nv50_mstm_service(nv_encoder->dp.mstm);
+
+               return NVIF_NOTIFY_KEEP;
+       }
 
        ret = pm_runtime_get(drm->dev->dev);
        if (ret == 0) {
                return NVIF_NOTIFY_DROP;
        }
 
-       if (rep->mask & NVIF_NOTIFY_CONN_V0_IRQ) {
-               NV_DEBUG(drm, "service %s\n", name);
-               drm_dp_cec_irq(&nv_connector->aux);
-               if ((nv_encoder = find_encoder(connector, DCB_OUTPUT_DP)))
-                       nv50_mstm_service(nv_encoder->dp.mstm);
-       } else {
-               bool plugged = (rep->mask != NVIF_NOTIFY_CONN_V0_UNPLUG);
-
+       if (!plugged)
+               drm_dp_cec_unset_edid(&nv_connector->aux);
+       NV_DEBUG(drm, "%splugged %s\n", plugged ? "" : "un", name);
+       if ((nv_encoder = find_encoder(connector, DCB_OUTPUT_DP))) {
                if (!plugged)
-                       drm_dp_cec_unset_edid(&nv_connector->aux);
-               NV_DEBUG(drm, "%splugged %s\n", plugged ? "" : "un", name);
-               if ((nv_encoder = find_encoder(connector, DCB_OUTPUT_DP))) {
-                       if (!plugged)
-                               nv50_mstm_remove(nv_encoder->dp.mstm);
-               }
-
-               drm_helper_hpd_irq_event(connector->dev);
+                       nv50_mstm_remove(nv_encoder->dp.mstm);
        }
 
+       drm_helper_hpd_irq_event(connector->dev);
+
        pm_runtime_mark_last_busy(drm->dev->dev);
        pm_runtime_put_autosuspend(drm->dev->dev);
        return NVIF_NOTIFY_KEEP;