HID: cougar: make compare_device_paths reusable
The function compare_device_paths from wacom_sys.c is generic and useful for other drivers. Move the function to hid-core and rename it as hid_compare_device_paths. Signed-off-by: Daniel M. Lambea <dmlambea@gmail.com> Reviewed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
This commit is contained in:

committed by
Jiri Kosina

parent
092150a25c
commit
1a8861f117
@@ -1939,6 +1939,29 @@ static int hid_bus_match(struct device *dev, struct device_driver *drv)
|
||||
return hid_match_device(hdev, hdrv) != NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
* hid_compare_device_paths - check if both devices share the same path
|
||||
* @hdev_a: hid device
|
||||
* @hdev_b: hid device
|
||||
* @separator: char to use as separator
|
||||
*
|
||||
* Check if two devices share the same path up to the last occurrence of
|
||||
* the separator char. Both paths must exist (i.e., zero-length paths
|
||||
* don't match).
|
||||
*/
|
||||
bool hid_compare_device_paths(struct hid_device *hdev_a,
|
||||
struct hid_device *hdev_b, char separator)
|
||||
{
|
||||
int n1 = strrchr(hdev_a->phys, separator) - hdev_a->phys;
|
||||
int n2 = strrchr(hdev_b->phys, separator) - hdev_b->phys;
|
||||
|
||||
if (n1 != n2 || n1 <= 0 || n2 <= 0)
|
||||
return false;
|
||||
|
||||
return !strncmp(hdev_a->phys, hdev_b->phys, n1);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(hid_compare_device_paths);
|
||||
|
||||
static int hid_device_probe(struct device *dev)
|
||||
{
|
||||
struct hid_driver *hdrv = to_hid_driver(dev->driver);
|
||||
|
Reference in New Issue
Block a user