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@xxxxxxxxxx> > --- > 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