[PATCH 1/4] input: record parent device at registration time

Ahmad Fatoum a.fatoum at pengutronix.de
Tue Apr 2 06:50:32 PDT 2024


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 at pengutronix.de>
---
 drivers/input/gpio_keys.c    | 1 +
 drivers/input/imx_keypad.c   | 1 +
 drivers/input/usb_kbd.c      | 1 +
 drivers/input/virtio_input.c | 1 +
 include/input/input.h        | 1 +
 5 files changed, 5 insertions(+)

diff --git a/drivers/input/gpio_keys.c b/drivers/input/gpio_keys.c
index c23d20563c38..190865b7f244 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 fc6b45b3cb62..2c003905a7d9 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 86b48db2a72b..2e75aabf3da4 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 5c6849b561eb..655a9051726a 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 d169c647bdaf..9445d20e566b 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);
 };
 
-- 
2.39.2




More information about the barebox mailing list