[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