Camera2: Fix CTS test case testSetPreviewDisplay

Patch makes sure to preparePreview when startPreview is called
before a valid Native Window set, this ensures that we can
successfully call startPreview later when a valid Native Window
is set.

Change-Id: If78f4c3639c726d8376aa5065d63432bbd55fee1
diff --git a/QCamera2/HAL/QCameraStateMachine.cpp b/QCamera2/HAL/QCameraStateMachine.cpp
index 2993d97..adaf214 100644
--- a/QCamera2/HAL/QCameraStateMachine.cpp
+++ b/QCamera2/HAL/QCameraStateMachine.cpp
@@ -381,9 +381,13 @@
     case QCAMERA_SM_EVT_START_PREVIEW:
         {
             if (m_parent->mPreviewWindow == NULL) {
-                // preview window is not set yet, move to previewReady state
-                m_state = QCAMERA_SM_STATE_PREVIEW_READY;
-                rc = NO_ERROR;
+                rc = m_parent->preparePreview();
+                if(rc == NO_ERROR) {
+                    // preview window is not set yet, move to previewReady state
+                    m_state = QCAMERA_SM_STATE_PREVIEW_READY;
+                } else {
+                    ALOGE("%s: preparePreview failed",__func__);
+                }
             } else {
                 rc = m_parent->preparePreview();
                 if (rc == NO_ERROR) {