Message ID | 20200310103249.65203-1-alex.kiernan@gmail.com |
---|---|
State | New |
Headers | show |
Series | cmd: gpio: Make `gpio input` return pin value again | expand |
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 --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)
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(-)