diff options
author | Linus Walleij <linus.walleij@linaro.org> | 2021-03-23 06:25:26 +0300 |
---|---|---|
committer | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2021-03-25 21:14:10 +0300 |
commit | 84c36ab7a6ddeab213c979d22b6372f71d738862 (patch) | |
tree | 4b4a3ebb96031cba99ce9654e8c4f156211dbd93 /drivers/input/touchscreen | |
parent | 55f2645c92bda7281adb81a806cd0a014ca9702e (diff) | |
download | linux-84c36ab7a6ddeab213c979d22b6372f71d738862.tar.xz |
Input: cyttsp - verbose error on soft reset
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>
Diffstat (limited to 'drivers/input/touchscreen')
-rw-r--r-- | drivers/input/touchscreen/cyttsp_core.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/drivers/input/touchscreen/cyttsp_core.c b/drivers/input/touchscreen/cyttsp_core.c index 73c854f35f33..e7b6b6c87515 100644 --- a/drivers/input/touchscreen/cyttsp_core.c +++ b/drivers/input/touchscreen/cyttsp_core.c @@ -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; |