[U-Boot] [PATCH v3 04/12] input: Allow updating of keyboard LEDs
Bin Meng
bmeng.cn at gmail.com
Thu Nov 12 14:50:46 CET 2015
On Thu, Nov 12, 2015 at 1:05 AM, Simon Glass <sjg at chromium.org> wrote:
> Add a function which returns a new keyboard LED value when the LEDs need
> updating.
>
> Signed-off-by: Simon Glass <sjg at chromium.org>
> ---
>
> Changes in v3: None
> Changes in v2: None
>
> drivers/input/input.c | 9 +++++++++
> include/input.h | 14 +++++++++++++-
> 2 files changed, 22 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/input/input.c b/drivers/input/input.c
> index a8a15c9..bf1acdc 100644
> --- a/drivers/input/input.c
> +++ b/drivers/input/input.c
> @@ -276,6 +276,7 @@ static struct input_key_xlate *process_modifier(struct input_config *config,
> if (config->flags & FLAG_SCROLL_LOCK)
> leds |= INPUT_LED_SCROLL;
> config->leds = leds;
> + config->leds_changed = flip;
> }
> }
>
> @@ -587,6 +588,14 @@ void input_allow_repeats(struct input_config *config, bool allow_repeats)
> config->allow_repeats = allow_repeats;
> }
>
> +int input_leds_changed(struct input_config *config)
> +{
> + if (config->leds_changed)
> + return config->leds;
> +
> + return -1;
> +}
> +
> int input_add_tables(struct input_config *config, bool german)
> {
> struct kbd_entry *entry;
> diff --git a/include/input.h b/include/input.h
> index c1af259..ad120e4 100644
> --- a/include/input.h
> +++ b/include/input.h
> @@ -43,7 +43,8 @@ struct input_config {
> /* Which modifiers are active (1 bit for each MOD_... value) */
> uchar modifiers;
> uchar flags; /* active state keys (FLAGS_...) */
> - uchar leds; /* active LEDS (INPUT_LED_...) */
> + uchar leds; /* active LEDs (INPUT_LED_...) */
> + uchar leds_changed; /* LEDs that just changed */
> uchar num_tables; /* number of modifier tables */
> int prev_keycodes[INPUT_BUFFER_LEN]; /* keys held last time */
> int num_prev_keycodes; /* number of prev keys */
> @@ -162,6 +163,17 @@ void input_set_delays(struct input_config *config, int repeat_delay_ms,
> void input_allow_repeats(struct input_config *config, bool allow_repeats);
>
> /**
> + * Check if keyboard LEDs need to be updated
> + *
> + * This can be called after input_tstc() to see if keyboard LEDs need
> + * updating.
> + *
> + * @param config Input state
> + * @return -1 if no LEDs need updating, other value if they do
> + */
> +int input_leds_changed(struct input_config *config);
> +
> +/**
> * Set up the key map tables
> *
> * This must be called after input_init() or keycode decoding will not work.
> --
Reviewed-by: Bin Meng <bmeng.cn at gmail.com>
More information about the U-Boot
mailing list