The driver always used software reset after the sensor's power sequence
that includes a hardware reset if we have a reset GPIO. Do not use
software reset if we just brought the sensor up from hardware reset state.
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
         * is found.
         */
 
-       rval = ccs_write(sensor, SOFTWARE_RESET, CCS_SOFTWARE_RESET_ON);
-       if (rval < 0) {
-               dev_err(dev, "software reset failed\n");
-               goto out_cci_addr_fail;
+       if (!sensor->reset && !sensor->xshutdown) {
+               rval = ccs_write(sensor, SOFTWARE_RESET, CCS_SOFTWARE_RESET_ON);
+               if (rval < 0) {
+                       dev_err(dev, "software reset failed\n");
+                       goto out_cci_addr_fail;
+               }
        }
 
        if (sensor->hwcfg.i2c_addr_alt) {