summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAhmad Fatoum <a.fatoum@pengutronix.de>2024-04-02 15:50:32 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2024-04-03 13:37:54 +0200
commitec521e914b412d41834ba010b84006e449f4e286 (patch)
treeeae241774c285bca32b9e34b180bf5ebd14c328b
parent476057f7b2d563b163fe5ce80a5564271c3135da (diff)
downloadbarebox-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.c1
-rw-r--r--drivers/input/imx_keypad.c1
-rw-r--r--drivers/input/usb_kbd.c1
-rw-r--r--drivers/input/virtio_input.c1
-rw-r--r--include/input/input.h1
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);
};