diff options
author | Ahmad Fatoum <a.fatoum@pengutronix.de> | 2024-04-02 15:50:32 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2024-04-03 13:37:54 +0200 |
commit | ec521e914b412d41834ba010b84006e449f4e286 (patch) | |
tree | eae241774c285bca32b9e34b180bf5ebd14c328b | |
parent | 476057f7b2d563b163fe5ce80a5564271c3135da (diff) | |
download | barebox-ec521e914b41.tar.gz barebox-ec521e914b41.tar.xz |
input: record parent device at registration time
The input core doesn't create a virtual device to represent the input
device. Still having a pointer to the parent device can be useful for
debugging purposes.
Add a parent member and start populating it.
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Link: https://lore.barebox.org/20240402135035.3700601-2-a.fatoum@pengutronix.de
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r-- | drivers/input/gpio_keys.c | 1 | ||||
-rw-r--r-- | drivers/input/imx_keypad.c | 1 | ||||
-rw-r--r-- | drivers/input/usb_kbd.c | 1 | ||||
-rw-r--r-- | drivers/input/virtio_input.c | 1 | ||||
-rw-r--r-- | include/input/input.h | 1 |
5 files changed, 5 insertions, 0 deletions
diff --git a/drivers/input/gpio_keys.c b/drivers/input/gpio_keys.c index c23d20563c..190865b7f2 100644 --- a/drivers/input/gpio_keys.c +++ b/drivers/input/gpio_keys.c @@ -162,6 +162,7 @@ static int __init gpio_keys_probe(struct device *dev) gk->buttons[i].previous_state = gk->buttons[i].active_low; } + gk->input.parent = dev; ret = input_device_register(&gk->input); if (ret) return ret; diff --git a/drivers/input/imx_keypad.c b/drivers/input/imx_keypad.c index fc6b45b3cb..2c003905a7 100644 --- a/drivers/input/imx_keypad.c +++ b/drivers/input/imx_keypad.c @@ -410,6 +410,7 @@ static int __init imx_keypad_probe(struct device *dev) if (ret) return ret; + keypad->input.parent = dev; ret = input_device_register(&keypad->input); if (ret) return ret; diff --git a/drivers/input/usb_kbd.c b/drivers/input/usb_kbd.c index 86b48db2a7..2e75aabf3d 100644 --- a/drivers/input/usb_kbd.c +++ b/drivers/input/usb_kbd.c @@ -188,6 +188,7 @@ static int usb_kbd_probe(struct usb_device *usbdev, } else dev_dbg(&usbdev->dev, "poll keyboard via int ep\n"); + data->input.parent = &usbdev->dev; ret = input_device_register(&data->input); if (ret) { dev_err(&usbdev->dev, "can't register input\n"); diff --git a/drivers/input/virtio_input.c b/drivers/input/virtio_input.c index 5c6849b561..655a905172 100644 --- a/drivers/input/virtio_input.c +++ b/drivers/input/virtio_input.c @@ -216,6 +216,7 @@ static int virtinput_probe(struct virtio_device *vdev) virtio_device_ready(vdev); + vi->idev.parent = &vdev->dev; err = input_device_register(&vi->idev); if (err) goto err_input_register; diff --git a/include/input/input.h b/include/input/input.h index d169c647bd..9445d20e56 100644 --- a/include/input/input.h +++ b/include/input/input.h @@ -14,6 +14,7 @@ struct input_event { struct input_device { struct list_head list; + struct device *parent; DECLARE_BITMAP(keys, KEY_CNT); }; |