[U-Boot] [PATCH v2 2/7] x86: i8042: Remove unused codes

Bin Meng bmeng.cn at gmail.com
Sun Aug 23 14:21:03 CEST 2015


Hi Simon,

On Sat, Aug 22, 2015 at 7:27 AM, Simon Glass <sjg at chromium.org> wrote:
> Hi Bin,
>
> On 21 August 2015 at 01:18, Bin Meng <bmeng.cn at gmail.com> wrote:
>> - Remove unused routines i8042_flush() and i8042_disable()
>> - Remove unused CONFIG_USE_CPCIDVI wrapped codes
>> - Remove __weak board_i8042_skip()
>>
>> Signed-off-by: Bin Meng <bmeng.cn at gmail.com>
>> Acked-by: Simon Glass <sjg at chromium.org>
>>
>> ---
>>
>> Changes in v2:
>> - Split the removing of unused codes into this patch
>>
>>  drivers/input/i8042.c | 67 +--------------------------------------------------
>>  include/i8042.h       | 13 ----------
>>  2 files changed, 1 insertion(+), 79 deletions(-)
>>
>> diff --git a/drivers/input/i8042.c b/drivers/input/i8042.c
>> index 1769c5e..8401181 100644
>> --- a/drivers/input/i8042.c
>> +++ b/drivers/input/i8042.c
>> @@ -10,16 +10,6 @@
>>  /* includes */
>>
>>  #include <common.h>
>> -#include <linux/compiler.h>
>> -
>> -#ifdef CONFIG_USE_CPCIDVI
>> -extern u8 gt_cpcidvi_in8(u32 offset);
>> -extern void gt_cpcidvi_out8(u32 offset, u8 data);
>> -
>> -#define in8(a)    gt_cpcidvi_in8(a)
>> -#define out8(a, b) gt_cpcidvi_out8(a, b)
>> -#endif
>
> Yes good to drop that. Can you also please drop it (perhaps separate
> patch) in drivers/video/ct69000.c?

Yes, will do in v3.

>
>> -
>>  #include <i8042.h>
>>
>>  /* defines */
>> @@ -305,54 +295,6 @@ static int kbd_controller_present(void)
>>         return in8(I8042_STATUS_REG) != 0xff;
>>  }
>>
>> -/*
>> - * Implement a weak default function for boards that optionally
>> - * need to skip the i8042 initialization.
>> - */
>> -int __weak board_i8042_skip(void)
>> -{
>> -       /* As default, don't skip */
>> -       return 0;
>> -}
>> -
>> -void i8042_flush(void)
>> -{
>> -       int timeout;
>> -
>> -       /*
>> -        * The delay is to give the keyboard controller some time to fill the
>> -        * next byte.
>> -        */
>> -       while (1) {
>> -               timeout = 100;  /* wait for no longer than 100us */
>> -               while (timeout > 0 && !(in8(I8042_STATUS_REG) & 0x01)) {
>> -                       udelay(1);
>> -                       timeout--;
>> -               }
>> -
>> -               /* Try to pull next byte if not timeout. */
>> -               if (in8(I8042_STATUS_REG) & 0x01)
>> -                       in8(I8042_DATA_REG);
>> -               else
>> -                       break;
>> -       }
>> -}
>> -
>> -int i8042_disable(void)
>> -{
>> -       if (kbd_input_empty() == 0)
>> -               return -1;
>> -
>> -       /* Disable keyboard */
>> -       out8(I8042_COMMAND_REG, 0xad);
>> -
>> -       if (kbd_input_empty() == 0)
>> -               return -1;
>> -
>> -       return 0;
>> -}
>> -
>> -
>>  /*******************************************************************************
>>   *
>>   * i8042_kbd_init - reset keyboard and init state flags
>> @@ -362,16 +304,9 @@ int i8042_kbd_init(void)
>>         int keymap, try;
>>         char *penv;
>>
>> -       if (!kbd_controller_present() || board_i8042_skip())
>> +       if (!kbd_controller_present())
>>                 return -1;
>>
>> -#ifdef CONFIG_USE_CPCIDVI
>> -       penv = getenv("console");
>> -       if (penv != NULL) {
>> -               if (strncmp(penv, "serial", 7) == 0)
>> -                       return -1;
>> -       }
>> -#endif
>>         /* Init keyboard device (default US layout) */
>>         keymap = KBD_US;
>>         penv = getenv("keymap");
>> diff --git a/include/i8042.h b/include/i8042.h
>> index 58c85ec..e68b8d8 100644
>> --- a/include/i8042.h
>> +++ b/include/i8042.h
>> @@ -59,19 +59,6 @@ enum {
>>
>>  /* exports */
>>
>> -/**
>> - * Flush all buffer from keyboard controller to host.
>> - */
>> -void i8042_flush(void);
>> -
>> -/**
>> - * Disables the keyboard so that key strokes no longer generate scancodes to
>> - * the host.
>> - *
>> - * @return 0 if ok, -1 if keyboard input was found while disabling
>> - */
>> -int i8042_disable(void);
>> -
>>  struct stdio_dev;
>>
>>  int i8042_kbd_init(void);
>> --
>> 1.8.2.1
>>
>
> For the moment I'd like to keep these functions. They are used for Chrome OS:

I will keep i8042_flush() and i8042_disable() in v3.

>
> /* Disable keyboard and flush buffer so that further key strokes
> * won't interfere kernel driver init. */
> #ifdef CONFIG_I8042_KBD
> if (i8042_disable())
> VBDEBUG("i8042_disable() failed. fine, continue.\n");
> i8042_flush();
> #endif
>
> int board_i8042_skip(void)

Would you also like to keep board_i8042_skip()?

> {
> struct vboot_flag_details devsw;
>
> vboot_flag_fetch(VBOOT_FLAG_DEVELOPER, &devsw);
> if (devsw.value)
> return 0;
>
> return fdtdec_get_config_int(gd->fdt_blob, "skip-i8042", 0);
> }
>
> I'm sure these can be done in a better way at some point, and in the
> meantime I'll add some code to use them in coreboot (looks like there
> are a few patches I did not upstream).
>

Regards,
Bin


More information about the U-Boot mailing list