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++)
(sound/soc/codecs/rt5645.c)
rt5645_i2c_probe()
(drivers/gpio/devres.c)
->devm_gpiod_get_optional()
->devm_gpiod_get_index_optional()
As long as seeing current implementation of
'devm_gpiod_get_index_optional()', this function never returns ENOENT.
In this case, it returns NULL.
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/drivers/gpio/devres.c#n185
Thanks for pointing this out, I didn't see it and naively thought that
everyone followed the same conventions. Oh well. I'll respin a v2.
_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel