[U-Boot] [PATCH 12/28] i8042: Adjust kbd_reset() to collect all failures

Bin Meng bmeng.cn at gmail.com
Tue Sep 15 08:12:13 CEST 2015


On Wed, Sep 9, 2015 at 12:32 PM, Simon Glass <sjg at chromium.org> wrote:
> Rather than lots of 'return' statements, use goto to a single return.
>
> Signed-off-by: Simon Glass <sjg at chromium.org>
> ---
>
>  drivers/input/i8042.c | 13 ++++++++-----
>  1 file changed, 8 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/input/i8042.c b/drivers/input/i8042.c
> index c6a92a2..ef01bd0 100644
> --- a/drivers/input/i8042.c
> +++ b/drivers/input/i8042.c
> @@ -485,32 +485,35 @@ static int kbd_reset(void)
>
>         /* controller self test */
>         if (kbd_cmd_read(CMD_SELF_TEST) != KBC_TEST_OK)
> -               return -1;
> +               goto err;
>
>         /* keyboard reset */
>         if (kbd_write(I8042_DATA_REG, CMD_RESET_KBD) ||
>             kbd_read(I8042_DATA_REG) != KBD_ACK ||
>             kbd_read(I8042_DATA_REG) != KBD_POR)
> -               return -1;
> +               goto err;
>
>         /* set AT translation and disable irq */
>         config = kbd_cmd_read(CMD_RD_CONFIG);
>         if (config == -1)
> -               return -1;
> +               goto err;
>         else if (config == KBD_POR)     /* Sometimes get a second byte */
>                 config = kbd_cmd_read(CMD_RD_CONFIG);
>
>         config |= CONFIG_AT_TRANS;
>         config &= ~(CONFIG_KIRQ_EN | CONFIG_MIRQ_EN);
>         if (kbd_cmd_write(CMD_WR_CONFIG, config))
> -               return -1;
> +               goto err;
>
>         /* enable keyboard */
>         if (kbd_write(I8042_CMD_REG, CMD_KBD_EN) ||
>             !kbd_input_empty())
> -               return -1;
> +               goto err;
>
>         return 0;
> +err:
> +       debug("%s: Keyboard failure\n", __func__);
> +       return -1;
>  }
>
>  static int kbd_controller_present(void)
> --

Reviewed-by: Bin Meng <bmeng.cn at gmail.com>


More information about the U-Boot mailing list