|
@@ -4033,7 +4033,7 @@ static int wcd9378_reset(struct device *dev)
|
|
|
if (rc) {
|
|
|
dev_err(dev, "%s: wcd sleep state request fail!\n",
|
|
|
__func__);
|
|
|
- return rc;
|
|
|
+ return -EPROBE_DEFER;
|
|
|
}
|
|
|
/* 20us sleep required after pulling the reset gpio to LOW */
|
|
|
usleep_range(20, 30);
|
|
@@ -4042,7 +4042,7 @@ static int wcd9378_reset(struct device *dev)
|
|
|
if (rc) {
|
|
|
dev_err(dev, "%s: wcd active state request fail!\n",
|
|
|
__func__);
|
|
|
- return rc;
|
|
|
+ return -EPROBE_DEFER;
|
|
|
}
|
|
|
/* 20us sleep required after pulling the reset gpio to HIGH */
|
|
|
usleep_range(20, 30);
|
|
@@ -4442,7 +4442,11 @@ static int wcd9378_probe(struct platform_device *pdev)
|
|
|
if (ret)
|
|
|
goto err_lock_init;
|
|
|
|
|
|
- wcd9378_reset(dev);
|
|
|
+ ret = wcd9378_reset(dev);
|
|
|
+ if (ret == -EPROBE_DEFER) {
|
|
|
+ dev_err(dev, "%s: wcd reset failed!\n", __func__);
|
|
|
+ goto err_lock_init;
|
|
|
+ }
|
|
|
|
|
|
wcd9378->wakeup = wcd9378_wakeup;
|
|
|
|