- struct device * driver_find_device(struct device_driver * drv, struct device * start, void * data, int (*match) (struct device *dev, void *data));
- The device's driver
- Device to begin with
- Data to pass to match function
- Callback function to check device
This is similar to the driver_for_each_device function above, but it returns a reference to a device that is 'found' for later use, as determined by the match callback.
The callback should return 0 if the device doesn't match and non-zero if it does. If the callback returns non-zero, this function will return to the caller and not iterate over any more devices.