dm->cached_dc_state = dc_state_create_copy(dm->dc->current_state);
 
-               dm_gpureset_toggle_interrupts(adev, dm->cached_dc_state, false);
+               if (dm->cached_dc_state)
+                       dm_gpureset_toggle_interrupts(adev, dm->cached_dc_state, false);
 
                amdgpu_dm_commit_zero_streams(dm->dc);
 
                aconnector->dc_sink = aconnector->dc_link->local_sink ?
                aconnector->dc_link->local_sink :
                aconnector->dc_em_sink;
-               dc_sink_retain(aconnector->dc_sink);
+               if (aconnector->dc_sink)
+                       dc_sink_retain(aconnector->dc_sink);
        }
 }
 
                                drm_add_modes_noedid(connector, 1920, 1080);
        } else {
                amdgpu_dm_connector_ddc_get_modes(connector, edid);
-               amdgpu_dm_connector_add_common_modes(encoder, connector);
+               if (encoder)
+                       amdgpu_dm_connector_add_common_modes(encoder, connector);
                amdgpu_dm_connector_add_freesync_modes(connector, edid);
        }
        amdgpu_dm_fbc_init(connector);