QCamera2: bail out if get current sensor info fails

getCurrentSensorModeInfo may fail due to backend error condition.
We should bail out the stream on sequence otherwise the startMIPI
call with invalid data could cause kernel panic.

Test: Camera CTS
Bug: 67748328
Change-Id: I961ca121c2ea3378a335f90fdca2e60220d94474
diff --git a/msm8998/QCamera2/HAL3/QCamera3HWI.cpp b/msm8998/QCamera2/HAL3/QCamera3HWI.cpp
index 124405d..fe1fe8d 100644
--- a/msm8998/QCamera2/HAL3/QCamera3HWI.cpp
+++ b/msm8998/QCamera2/HAL3/QCamera3HWI.cpp
@@ -6207,13 +6207,16 @@
     {
         // Configure Easel for stream on.
         std::unique_lock<std::mutex> l(gHdrPlusClientLock);
-
-        // Now that sensor mode should have been selected, get the selected sensor mode
-        // info.
-        memset(&mSensorModeInfo, 0, sizeof(mSensorModeInfo));
-        getCurrentSensorModeInfo(mSensorModeInfo);
-
         if (EaselManagerClientOpened) {
+            // Now that sensor mode should have been selected, get the selected sensor mode
+            // info.
+            memset(&mSensorModeInfo, 0, sizeof(mSensorModeInfo));
+            rc = getCurrentSensorModeInfo(mSensorModeInfo);
+            if (rc != NO_ERROR) {
+                ALOGE("%s: Get current sensor mode failed, bail out: %s (%d).", __FUNCTION__,
+                        strerror(-rc), rc);
+                return rc;
+            }
             logEaselEvent("EASEL_STARTUP_LATENCY", "Starting MIPI");
             rc = gEaselManagerClient->startMipi(mCameraId, mSensorModeInfo.op_pixel_clk,
                     /*enableCapture*/true);