]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
HID: usbhid: Share USB device firmware node with child HID device
authorDanny Kaehn <danny.kaehn@plexus.com>
Wed, 5 Jun 2024 23:12:45 +0000 (18:12 -0500)
committerBenjamin Tissoires <bentiss@kernel.org>
Thu, 6 Jun 2024 07:29:07 +0000 (09:29 +0200)
USB HID core now shares its fwnode with its child HID device.
Since there can only be one HID device on a USB interface, it is redundant
to specify a hid node under the USB device. This allows usb HID device
drivers to be described in firmware and make use of device properties.

Signed-off-by: Danny Kaehn <danny.kaehn@plexus.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20240605-cp2112-dt-v11-2-d55f0f945a62@plexus.com
Signed-off-by: Benjamin Tissoires <bentiss@kernel.org>
drivers/hid/usbhid/hid-core.c

index a90ed2ceae841871c742e38258d6944910abf77d..cb687ea7325c19b59e49e596703c39bc47896184 100644 (file)
@@ -19,6 +19,7 @@
 #include <linux/list.h>
 #include <linux/mm.h>
 #include <linux/mutex.h>
+#include <linux/property.h>
 #include <linux/spinlock.h>
 #include <asm/unaligned.h>
 #include <asm/byteorder.h>
@@ -1374,6 +1375,7 @@ static int usbhid_probe(struct usb_interface *intf, const struct usb_device_id *
        hid->hiddev_report_event = hiddev_report_event;
 #endif
        hid->dev.parent = &intf->dev;
+       device_set_node(&hid->dev, dev_fwnode(&intf->dev));
        hid->bus = BUS_USB;
        hid->vendor = le16_to_cpu(dev->descriptor.idVendor);
        hid->product = le16_to_cpu(dev->descriptor.idProduct);