|
@@ -3658,8 +3658,14 @@ static int rt5645_i2c_probe(struct i2c_client *i2c,
|
|
|
GPIOD_IN);
|
|
|
|
|
|
if (IS_ERR(rt5645->gpiod_hp_det)) {
|
|
|
- dev_err(&i2c->dev, "failed to initialize gpiod\n");
|
|
|
- return PTR_ERR(rt5645->gpiod_hp_det);
|
|
|
+ dev_info(&i2c->dev, "failed to initialize gpiod\n");
|
|
|
+ ret = PTR_ERR(rt5645->gpiod_hp_det);
|
|
|
+ /*
|
|
|
+ * Continue if optional gpiod is missing, bail for all other
|
|
|
+ * errors, including -EPROBE_DEFER
|
|
|
+ */
|
|
|
+ if (ret != -ENOENT)
|
|
|
+ return ret;
|
|
|
}
|
|
|
|
|
|
for (i = 0; i < ARRAY_SIZE(rt5645->supplies); i++)
|