Input: i8042 - attach fwnode to serio i8042 kbd device
authorRajat Jain <rajatja@google.com>
Tue, 28 Apr 2020 00:50:45 +0000 (17:50 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Tue, 28 Apr 2020 01:04:22 +0000 (18:04 -0700)
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>
Link: https://lore.kernel.org/r/20200427210259.91330-1-rajatja@google.com
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/serio/i8042-x86ia64io.h
drivers/input/serio/i8042.c

index 08e919d..d0c3942 100644 (file)
@@ -938,6 +938,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);
index 20ff2be..0dddf27 100644 (file)
@@ -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);
 
        port->serio = serio;
        port->irq = I8042_KBD_IRQ;