Input: cyttsp - verbose error on soft reset
authorLinus Walleij <linus.walleij@linaro.org>
Tue, 23 Mar 2021 03:25:26 +0000 (20:25 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Thu, 25 Mar 2021 18:14:10 +0000 (11:14 -0700)
The first thing the Cypress driver does when starting
up is to try a soft reset. This is the first point where
the driver SPI/I2C communication can fail, so put out some
nice debug text:

  cyttsp-spi spi2.0: failed to send soft reset

Instead of just:

  cyttsp-spi: probe of spi2.0 failed with error -5

This is more helpful.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Link: https://lore.kernel.org/r/20210322221349.1116666-1-linus.walleij@linaro.org
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/touchscreen/cyttsp_core.c

index 73c854f35f334a981f68628595cf2fadc6e0b5f1..e7b6b6c87515eeb87657218259252e6e388613e7 100644 (file)
@@ -238,7 +238,6 @@ static void cyttsp_hard_reset(struct cyttsp *ts)
 
 static int cyttsp_soft_reset(struct cyttsp *ts)
 {
-       unsigned long timeout;
        int retval;
 
        /* wait for interrupt to set ready completion */
@@ -248,12 +247,16 @@ static int cyttsp_soft_reset(struct cyttsp *ts)
        enable_irq(ts->irq);
 
        retval = ttsp_send_command(ts, CY_SOFT_RESET_MODE);
-       if (retval)
+       if (retval) {
+               dev_err(ts->dev, "failed to send soft reset\n");
                goto out;
+       }
 
-       timeout = wait_for_completion_timeout(&ts->bl_ready,
-                       msecs_to_jiffies(CY_DELAY_DFLT * CY_DELAY_MAX));
-       retval = timeout ? 0 : -EIO;
+       if (!wait_for_completion_timeout(&ts->bl_ready,
+                       msecs_to_jiffies(CY_DELAY_DFLT * CY_DELAY_MAX))) {
+               dev_err(ts->dev, "timeout waiting for soft reset\n");
+               retval = -EIO;
+       }
 
 out:
        ts->state = CY_IDLE_STATE;