mirror of
https://github.com/torvalds/linux.git
synced 2026-06-01 02:53:36 +02:00
usb: misc: onboard_usb_dev: Add match function
Add a match function for the onboard_usb_dev driver. Primary matching is still done through the VID:PID pair, as usual for USB devices. The new match function checks in addition whether the device has a device tree node, which is a needed for using the onboard_usb_dev driver. Remove the check for a device tree node from _probe(), the new match functions prevents devices without DT node from probing. Signed-off-by: Matthias Kaehlcke <mka@chromium.org> Tested-by: Jameson Thies <jthies@google.com> Reviewed-by: Jameson Thies <jthies@google.com> Link: https://lore.kernel.org/r/20240612180448.1.I805556c176c626872c15ce001f0e8198e1f95ae1@changeid Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
b38aa697bc
commit
c456c5763d
|
|
@ -454,16 +454,18 @@ static struct onboard_dev *_find_onboard_dev(struct device *dev)
|
|||
return onboard_dev;
|
||||
}
|
||||
|
||||
static bool onboard_dev_usbdev_match(struct usb_device *udev)
|
||||
{
|
||||
/* Onboard devices using this driver must have a device tree node */
|
||||
return !!udev->dev.of_node;
|
||||
}
|
||||
|
||||
static int onboard_dev_usbdev_probe(struct usb_device *udev)
|
||||
{
|
||||
struct device *dev = &udev->dev;
|
||||
struct onboard_dev *onboard_dev;
|
||||
int err;
|
||||
|
||||
/* ignore supported devices without device tree node */
|
||||
if (!dev->of_node)
|
||||
return -ENODEV;
|
||||
|
||||
onboard_dev = _find_onboard_dev(dev);
|
||||
if (IS_ERR(onboard_dev))
|
||||
return PTR_ERR(onboard_dev);
|
||||
|
|
@ -513,6 +515,7 @@ MODULE_DEVICE_TABLE(usb, onboard_dev_id_table);
|
|||
|
||||
static struct usb_device_driver onboard_dev_usbdev_driver = {
|
||||
.name = "onboard-usb-dev",
|
||||
.match = onboard_dev_usbdev_match,
|
||||
.probe = onboard_dev_usbdev_probe,
|
||||
.disconnect = onboard_dev_usbdev_disconnect,
|
||||
.generic_subclass = 1,
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user