diff mbox series

cmd: gpio: Make `gpio input` return pin value again

Message ID 20200310103249.65203-1-alex.kiernan@gmail.com
State New
Headers show
Series cmd: gpio: Make `gpio input` return pin value again | expand

Commit Message

Alex Kiernan March 10, 2020, 10:32 a.m. UTC
4dbc107f4683 ("cmd: gpio: Correct do_gpio() return value") correctly
changed the behaviour of the gpio command to return CMD_RET_SUCCESS or
CMD_RET_FAILURE.

But any existing script which expects the return value to be the pin
value is broken by this change.

Reinstate the legacy behaviour for `gpio input` only.

Fixes: 4dbc107f4683 ("cmd: gpio: Correct do_gpio() return value")
Signed-off-by: Alex Kiernan <alex.kiernan at gmail.com>
---

 cmd/gpio.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

Comments

Simon Glass March 11, 2020, 1:56 a.m. UTC | #1
On Tue, 10 Mar 2020 at 04:33, Alex Kiernan <alex.kiernan at gmail.com> wrote:
>
> 4dbc107f4683 ("cmd: gpio: Correct do_gpio() return value") correctly
> changed the behaviour of the gpio command to return CMD_RET_SUCCESS or
> CMD_RET_FAILURE.
>
> But any existing script which expects the return value to be the pin
> value is broken by this change.
>
> Reinstate the legacy behaviour for `gpio input` only.
>
> Fixes: 4dbc107f4683 ("cmd: gpio: Correct do_gpio() return value")
> Signed-off-by: Alex Kiernan <alex.kiernan at gmail.com>
> ---
>
>  cmd/gpio.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)

Reviewed-by: Simon Glass <sjg at chromium.org>

Please also add a test for this.
diff mbox series

Patch

diff --git a/cmd/gpio.c b/cmd/gpio.c
index 16c2cebb3d4b..b716f6f18b95 100644
--- a/cmd/gpio.c
+++ b/cmd/gpio.c
@@ -248,7 +248,11 @@  static int do_gpio(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 	if (ret != -EBUSY)
 		gpio_free(gpio);
 
-	return CMD_RET_SUCCESS;
+	/*
+	 * Whilst wrong, the legacy gpio input command returns the pin value
+	 * (or CMD_RET_FAILURE)
+	 */
+	return (sub_cmd == GPIOC_INPUT) ? value : CMD_RET_SUCCESS;
 
 err:
 	if (ret != -EBUSY)