+ /* check connection */
+ if (hcamcorder->resource_manager.is_connected == FALSE) {
+ _mmcam_dbg_warn("resource manager disconnected before, try to reconnect");
+
+ /* release remained resource */
+ _mmcamcorder_resource_manager_deinit(&hcamcorder->resource_manager);
+
+ /* init resource manager and wait for connection */
+ ret = _mmcamcorder_resource_manager_init(&hcamcorder->resource_manager, (void *)hcamcorder);
+ if (ret != MM_ERROR_NONE) {
+ _mmcam_dbg_err("failed to initialize resource manager");
+ ret = MM_ERROR_CAMCORDER_INTERNAL;
+ goto _ERR_CAMCORDER_CMD_PRECON_AFTER_LOCK;
+ }
+
+ ret = _mmcamcorder_resource_wait_for_connection(&hcamcorder->resource_manager, (void *)hcamcorder);
+ if (ret != MM_ERROR_NONE) {
+ _mmcam_dbg_err("failed to connect resource manager");
+ goto _ERR_CAMCORDER_CMD_PRECON_AFTER_LOCK;
+ }
+ }
+