wfd_sink_debug("resource is interrupted. resource would be released after destroying");
+ MMWFDSINK_CMD_LOCK(wfdsink);
if (_mm_wfd_sink_disconnect(wfdsink) != MM_ERROR_NONE)
wfd_sink_error("failed to disconnect");
if (_mm_wfd_sink_unprepare(wfdsink) != MM_ERROR_NONE)
wfd_sink_error("failed to unprepare");
-
- if (_mm_wfd_sink_destroy(wfdsink) != MM_ERROR_NONE)
- wfd_sink_error("failed to destroy");
-
for (res_idx = MM_WFD_SINK_RESOURCE_TYPE_VIDEO_DECODER; res_idx < MM_WFD_SINK_RESOURCE_TYPE_MAX; res_idx++) {
wfdsink->hw_resource[res_idx] = NULL;
}
+ MMWFDSINK_CMD_UNLOCK(wfdsink);
wfd_sink_debug_fleave();
return TRUE; /* release all the resources */