gpio: aspeed: Don't attempt to debounce if disabled

Message ID 20170502060824.6457-1-joel@jms.id.au
State Accepted
Commit df563c85de690ec0a1c7e49bd1d43ff743dfb1ce
Headers show

Commit Message

Joel Stanley May 2, 2017, 6:08 a.m.
We warn the user at driver probe time that debouncing is disabled.
However, if they request debouncing later on we print a confusing error
message:

 gpio_aspeed 1e780000.gpio: Failed to convert 5000us to cycles at 0Hz: -524

Instead bail out when the clock is not present.

Fixes: 5ae4cb94b3133 (gpio: aspeed: Add debounce support)
Signed-off-by: Joel Stanley <joel@jms.id.au>

---
 drivers/gpio/gpio-aspeed.c | 3 +++
 1 file changed, 3 insertions(+)

-- 
2.11.0

--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Linus Walleij May 11, 2017, 11:32 a.m. | #1
On Tue, May 2, 2017 at 8:08 AM, Joel Stanley <joel@jms.id.au> wrote:

> We warn the user at driver probe time that debouncing is disabled.

> However, if they request debouncing later on we print a confusing error

> message:

>

>  gpio_aspeed 1e780000.gpio: Failed to convert 5000us to cycles at 0Hz: -524

>

> Instead bail out when the clock is not present.

>

> Fixes: 5ae4cb94b3133 (gpio: aspeed: Add debounce support)

> Signed-off-by: Joel Stanley <joel@jms.id.au>


Patch applied for fixes.

Yours,
Linus Walleij
--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch hide | download patch | download mbox

diff --git a/drivers/gpio/gpio-aspeed.c b/drivers/gpio/gpio-aspeed.c
index ccea609676ee..4ca436e66bdb 100644
--- a/drivers/gpio/gpio-aspeed.c
+++ b/drivers/gpio/gpio-aspeed.c
@@ -646,6 +646,9 @@  static int enable_debounce(struct gpio_chip *chip, unsigned int offset,
 	int rc;
 	int i;
 
+	if (!gpio->clk)
+		return -EINVAL;
+
 	rc = usecs_to_cycles(gpio, usecs, &requested_cycles);
 	if (rc < 0) {
 		dev_warn(chip->parent, "Failed to convert %luus to cycles at %luHz: %d\n",