#
 obj-$(CONFIG_INTEL_ATOMISP) += i2c/
 obj-$(CONFIG_VIDEO_ATOMISP) += atomisp.o
+obj-$(CONFIG_VIDEO_ATOMISP) += pci/atomisp_gmin_platform.o
 
 # While on staging, keep debug enabled
 DEFINES += -DDEBUG
        pci/atomisp_subdev.o \
        pci/atomisp_tpg.o \
        pci/atomisp_v4l2.o \
-       pci/atomisp_gmin_platform.o \
        pci/sh_css_firmware.o \
        pci/sh_css_host_data.o \
        pci/sh_css_hrt.o \
 
                return 0;
        }
 
+       /* FIXME: should return -EPROBE_DEFER if not all subdevs were probed */
+       for (count = 0; count < SUBDEV_WAIT_TIMEOUT_MAX_COUNT; count++) {
+               int camera_count = 0;
+               for (subdevs = pdata->subdevs; subdevs->type; ++subdevs) {
+                       if (subdevs->type == RAW_CAMERA ||
+                           subdevs->type == SOC_CAMERA)
+                               camera_count ++;
+               }
+               if (camera_count)
+                       break;
+               msleep(SUBDEV_WAIT_TIMEOUT);
+               count++;
+       }
+       /* Wait more time to give more time for subdev init code to finish */
+       msleep(5 * SUBDEV_WAIT_TIMEOUT);
+
        /* FIXME: should, instead, use I2C probe */
 
        for (subdevs = pdata->subdevs; subdevs->type; ++subdevs) {
                }
        }
 
-       /* FIXME: should return -EPROBE_DEFER if not all subdevs were probed */
-       for (count = 0; count < SUBDEV_WAIT_TIMEOUT_MAX_COUNT; count++) {
-               if (isp->input_cnt)
-                       break;
-               msleep(SUBDEV_WAIT_TIMEOUT);
-               count++;
-       }
-       /* Wait more time to give more time for subdev init code */
-       msleep(5 * SUBDEV_WAIT_TIMEOUT);
-
        /*
         * HACK: Currently VCM belongs to primary sensor only, but correct
         * approach must be to acquire from platform code which sensor