Message ID | 20200324123518.239768-1-rajatja@google.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | [v2,1/5] input/serio/i8042: Attach fwnode to serio i8042 kbd device | expand |
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.
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); port->serio = serio; port->irq = I8042_KBD_IRQ;
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(+)