Input: ads7846 - do not attempt IRQ workaround when deferring probe
authorDmitry Torokhov <dmitry.torokhov@gmail.com>
Fri, 10 Sep 2021 04:50:39 +0000 (21:50 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Sat, 16 Oct 2021 05:09:48 +0000 (22:09 -0700)
When request_irq() returns -EPORBE_DEFER we should abort probe and try
again later instead of trying to engage IRQ trigger workaround.

Link: https://lore.kernel.org/r/20210910045039.4020199-3-dmitry.torokhov@gmail.com
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/touchscreen/ads7846.c

index 0f97335..a25a77d 100644 (file)
@@ -1361,7 +1361,7 @@ static int ads7846_probe(struct spi_device *spi)
        err = devm_request_threaded_irq(dev, spi->irq,
                                        ads7846_hard_irq, ads7846_irq,
                                        irq_flags, dev->driver->name, ts);
-       if (err && !pdata->irq_flags) {
+       if (err && err != -EPROBE_DEFER && !pdata->irq_flags) {
                dev_info(dev,
                        "trying pin change workaround on irq %d\n", spi->irq);
                irq_flags |= IRQF_TRIGGER_RISING;