Merge tag 'armsoc-late' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
[platform/kernel/linux-starfive.git] / sound / soc / soc-jack.c
index 87ca980..fbaa1bb 100644 (file)
@@ -316,8 +316,11 @@ int snd_soc_jack_add_gpios(struct snd_soc_jack *jack, int count,
                        goto undo;
                }
 
-               if (gpios[i].gpiod_dev) {
-                       /* GPIO descriptor */
+               if (gpios[i].desc) {
+                       /* Already have a GPIO descriptor. */
+                       goto got_gpio;
+               } else if (gpios[i].gpiod_dev) {
+                       /* Get a GPIO descriptor */
                        gpios[i].desc = gpiod_get_index(gpios[i].gpiod_dev,
                                                        gpios[i].name,
                                                        gpios[i].idx, GPIOD_IN);
@@ -345,7 +348,7 @@ int snd_soc_jack_add_gpios(struct snd_soc_jack *jack, int count,
 
                        gpios[i].desc = gpio_to_desc(gpios[i].gpio);
                }
-
+got_gpio:
                INIT_DELAYED_WORK(&gpios[i].work, gpio_work);
                gpios[i].jack = jack;