Re: [PATCH v2 1/5] input/serio/i8042: Attach fwnode to serio i8042 kbd device

Dmitry Torokhov
2020-03-26T21:25:11Z

On Tue, Mar 24, 2020 at 05:35:14AM -0700, Rajat Jain wrote:
> Attach the firmware node to the serio i8042 kbd device so that device
> properties can be passed from the firmware.
>
> Signed-off-by: Rajat Jain <rajatja@google.com>
> ---
> v2: Remove the Change-Id from the commit log
>
> drivers/input/serio/i8042-x86ia64io.h | 1 +
> drivers/input/serio/i8042.c | 3 +++
> 2 files changed, 4 insertions(+)
>
> diff --git a/drivers/input/serio/i8042-x86ia64io.h b/drivers/input/serio/i8042-x86ia64io.h
> index dc974c288e880..ed9ec4310d976 100644
> --- a/drivers/input/serio/i8042-x86ia64io.h
> +++ b/drivers/input/serio/i8042-x86ia64io.h
> @@ -927,6 +927,7 @@ static int i8042_pnp_kbd_probe(struct pnp_dev *dev, const struct pnp_device_id *
> }
> i8042_pnp_id_to_string(dev->id, i8042_kbd_firmware_id,
> sizeof(i8042_kbd_firmware_id));
> + i8042_kbd_fwnode = dev_fwnode(&dev->dev);
>
> /* Keyboard ports are always supposed to be wakeup-enabled */
> device_set_wakeup_enable(&dev->dev, true);
> diff --git a/drivers/input/serio/i8042.c b/drivers/input/serio/i8042.c
> index 20ff2bed3917a..0dddf273afd94 100644
> --- a/drivers/input/serio/i8042.c
> +++ b/drivers/input/serio/i8042.c
> @@ -21,6 +21,7 @@
> #include <linux/i8042.h>
> #include <linux/slab.h>
> #include <linux/suspend.h>
> +#include <linux/property.h>
>
> #include <asm/io.h>
>
> @@ -124,6 +125,7 @@ MODULE_PARM_DESC(unmask_kbd_data, "Unconditional enable (may reveal sensitive da
> static bool i8042_bypass_aux_irq_test;
> static char i8042_kbd_firmware_id[128];
> static char i8042_aux_firmware_id[128];
> +static struct fwnode_handle *i8042_kbd_fwnode;
>
> #include "i8042.h"
>
> @@ -1335,6 +1337,7 @@ static int __init i8042_create_kbd_port(void)
> strlcpy(serio->phys, I8042_KBD_PHYS_DESC, sizeof(serio->phys));
> strlcpy(serio->firmware_id, i8042_kbd_firmware_id,
> sizeof(serio->firmware_id));
> + set_primary_fwnode(&serio->dev, i8042_kbd_fwnode);

Rafael, do you have any concerns here? We want to be able to access
properties assigned to KBC or similar device in ACPI. Serio port devices
in i8042 essentially mirror the 2 PNP (typically called KBC, PS2K or
PS2M) devices in ACPI.

Thanks.

--
Dmitry