Quoting Philip Chen (2021-01-13 17:25:13)
> diff --git a/drivers/input/keyboard/cros_ec_keyb.c 
> b/drivers/input/keyboard/cros_ec_keyb.c
> index b379ed7628781..273e3c9ba0b03 100644
> --- a/drivers/input/keyboard/cros_ec_keyb.c
> +++ b/drivers/input/keyboard/cros_ec_keyb.c
> @@ -578,6 +590,19 @@ static int cros_ec_keyb_register_matrix(struct 
> cros_ec_keyb *ckdev)
>         ckdev->idev = idev;
>         cros_ec_keyb_compute_valid_keys(ckdev);
>  
> +       of_property_for_each_u32(dev->of_node, "function-row-physmap",
> +                                prop, p, key_pos) {
> +               if (i >= MAX_NUM_TOP_ROW_KEYS) {
> +                       dev_err(dev, "Only support up to %d top row keys.\n",

dev_warn? And drop the period please as we don't add them in the kernel
usually.

> +                               MAX_NUM_TOP_ROW_KEYS);
> +                       break;
> +               }
> +               ckdev->function_row_physmap[i] = MATRIX_SCAN_CODE(

Maybe grow some more local variables, like for function_row_physmap so
this can fit on one line?

                row = KEY_ROW(key_pos);
                col = KEY_COL(key_pos);
                map[i] = MATRIX_SCAN_CODE(row, col, ckdev->row_shift);

> +                       KEY_ROW(key_pos), KEY_COL(key_pos), ckdev->row_shift);
> +               i++;

We could remove this and just increment num_function_row_keys instead.
Then that condition check may be a little longer but probably still ok.


> +       }
> +       ckdev->num_function_row_keys = i;
> +
>         err = input_register_device(ckdev->idev);
>         if (err) {
>                 dev_err(dev, "cannot register input device\n");

Reply via email to