Loading drivers/amba/tegra-ahb.c +1 −10 Original line number Diff line number Diff line Loading @@ -134,22 +134,13 @@ static inline void gizmo_writel(struct tegra_ahb *ahb, u32 value, u32 offset) } #ifdef CONFIG_TEGRA_IOMMU_SMMU static int tegra_ahb_match_by_smmu(struct device *dev, const void *data) { struct tegra_ahb *ahb = dev_get_drvdata(dev); const struct device_node *dn = data; return (ahb->dev->of_node == dn) ? 1 : 0; } int tegra_ahb_enable_smmu(struct device_node *dn) { struct device *dev; u32 val; struct tegra_ahb *ahb; dev = driver_find_device(&tegra_ahb_driver.driver, NULL, dn, tegra_ahb_match_by_smmu); dev = driver_find_device_by_of_node(&tegra_ahb_driver.driver, dn); if (!dev) return -EPROBE_DEFER; ahb = dev_get_drvdata(dev); Loading drivers/base/bus.c +0 −24 Original line number Diff line number Diff line Loading @@ -342,30 +342,6 @@ struct device *bus_find_device(struct bus_type *bus, } EXPORT_SYMBOL_GPL(bus_find_device); static int match_name(struct device *dev, const void *data) { const char *name = data; return sysfs_streq(name, dev_name(dev)); } /** * bus_find_device_by_name - device iterator for locating a particular device of a specific name * @bus: bus type * @start: Device to begin with * @name: name of the device to match * * This is similar to the bus_find_device() function above, but it handles * searching by a name automatically, no need to write another strcmp matching * function. */ struct device *bus_find_device_by_name(struct bus_type *bus, struct device *start, const char *name) { return bus_find_device(bus, start, (void *)name, match_name); } EXPORT_SYMBOL_GPL(bus_find_device_by_name); /** * subsys_find_device_by_id - find a device with a specific enumeration number * @subsys: subsystem Loading drivers/base/core.c +31 −8 Original line number Diff line number Diff line Loading @@ -2932,13 +2932,6 @@ struct device *device_create_with_groups(struct class *class, } EXPORT_SYMBOL_GPL(device_create_with_groups); static int __match_devt(struct device *dev, const void *data) { const dev_t *devt = data; return dev->devt == *devt; } /** * device_destroy - removes a device that was created with device_create() * @class: pointer to the struct class that this device was registered with Loading @@ -2951,7 +2944,7 @@ void device_destroy(struct class *class, dev_t devt) { struct device *dev; dev = class_find_device(class, NULL, &devt, __match_devt); dev = class_find_device_by_devt(class, devt); if (dev) { put_device(dev); device_unregister(dev); Loading Loading @@ -3422,8 +3415,38 @@ void device_set_of_node_from_dev(struct device *dev, const struct device *dev2) } EXPORT_SYMBOL_GPL(device_set_of_node_from_dev); int device_match_name(struct device *dev, const void *name) { return sysfs_streq(dev_name(dev), name); } EXPORT_SYMBOL_GPL(device_match_name); int device_match_of_node(struct device *dev, const void *np) { return dev->of_node == np; } EXPORT_SYMBOL_GPL(device_match_of_node); int device_match_fwnode(struct device *dev, const void *fwnode) { return dev_fwnode(dev) == fwnode; } EXPORT_SYMBOL_GPL(device_match_fwnode); int device_match_devt(struct device *dev, const void *pdevt) { return dev->devt == *(dev_t *)pdevt; } EXPORT_SYMBOL_GPL(device_match_devt); int device_match_acpi_dev(struct device *dev, const void *adev) { return ACPI_COMPANION(dev) == adev; } EXPORT_SYMBOL(device_match_acpi_dev); int device_match_any(struct device *dev, const void *unused) { return 1; } EXPORT_SYMBOL_GPL(device_match_any); drivers/base/devcon.c +1 −7 Original line number Diff line number Diff line Loading @@ -152,19 +152,13 @@ static struct bus_type *generic_match_buses[] = { NULL, }; static int device_fwnode_match(struct device *dev, const void *fwnode) { return dev_fwnode(dev) == fwnode; } static void *device_connection_fwnode_match(struct device_connection *con) { struct bus_type *bus; struct device *dev; for (bus = generic_match_buses[0]; bus; bus++) { dev = bus_find_device(bus, NULL, (void *)con->fwnode, device_fwnode_match); dev = bus_find_device_by_fwnode(bus, con->fwnode); if (dev && !strncmp(dev_name(dev), con->id, strlen(con->id))) return dev; Loading drivers/base/platform.c +14 −0 Original line number Diff line number Diff line Loading @@ -1197,6 +1197,20 @@ struct bus_type platform_bus_type = { }; EXPORT_SYMBOL_GPL(platform_bus_type); /** * platform_find_device_by_driver - Find a platform device with a given * driver. * @start: The device to start the search from. * @drv: The device driver to look for. */ struct device *platform_find_device_by_driver(struct device *start, const struct device_driver *drv) { return bus_find_device(&platform_bus_type, start, drv, (void *)platform_match); } EXPORT_SYMBOL_GPL(platform_find_device_by_driver); int __init platform_bus_init(void) { int error; Loading Loading
drivers/amba/tegra-ahb.c +1 −10 Original line number Diff line number Diff line Loading @@ -134,22 +134,13 @@ static inline void gizmo_writel(struct tegra_ahb *ahb, u32 value, u32 offset) } #ifdef CONFIG_TEGRA_IOMMU_SMMU static int tegra_ahb_match_by_smmu(struct device *dev, const void *data) { struct tegra_ahb *ahb = dev_get_drvdata(dev); const struct device_node *dn = data; return (ahb->dev->of_node == dn) ? 1 : 0; } int tegra_ahb_enable_smmu(struct device_node *dn) { struct device *dev; u32 val; struct tegra_ahb *ahb; dev = driver_find_device(&tegra_ahb_driver.driver, NULL, dn, tegra_ahb_match_by_smmu); dev = driver_find_device_by_of_node(&tegra_ahb_driver.driver, dn); if (!dev) return -EPROBE_DEFER; ahb = dev_get_drvdata(dev); Loading
drivers/base/bus.c +0 −24 Original line number Diff line number Diff line Loading @@ -342,30 +342,6 @@ struct device *bus_find_device(struct bus_type *bus, } EXPORT_SYMBOL_GPL(bus_find_device); static int match_name(struct device *dev, const void *data) { const char *name = data; return sysfs_streq(name, dev_name(dev)); } /** * bus_find_device_by_name - device iterator for locating a particular device of a specific name * @bus: bus type * @start: Device to begin with * @name: name of the device to match * * This is similar to the bus_find_device() function above, but it handles * searching by a name automatically, no need to write another strcmp matching * function. */ struct device *bus_find_device_by_name(struct bus_type *bus, struct device *start, const char *name) { return bus_find_device(bus, start, (void *)name, match_name); } EXPORT_SYMBOL_GPL(bus_find_device_by_name); /** * subsys_find_device_by_id - find a device with a specific enumeration number * @subsys: subsystem Loading
drivers/base/core.c +31 −8 Original line number Diff line number Diff line Loading @@ -2932,13 +2932,6 @@ struct device *device_create_with_groups(struct class *class, } EXPORT_SYMBOL_GPL(device_create_with_groups); static int __match_devt(struct device *dev, const void *data) { const dev_t *devt = data; return dev->devt == *devt; } /** * device_destroy - removes a device that was created with device_create() * @class: pointer to the struct class that this device was registered with Loading @@ -2951,7 +2944,7 @@ void device_destroy(struct class *class, dev_t devt) { struct device *dev; dev = class_find_device(class, NULL, &devt, __match_devt); dev = class_find_device_by_devt(class, devt); if (dev) { put_device(dev); device_unregister(dev); Loading Loading @@ -3422,8 +3415,38 @@ void device_set_of_node_from_dev(struct device *dev, const struct device *dev2) } EXPORT_SYMBOL_GPL(device_set_of_node_from_dev); int device_match_name(struct device *dev, const void *name) { return sysfs_streq(dev_name(dev), name); } EXPORT_SYMBOL_GPL(device_match_name); int device_match_of_node(struct device *dev, const void *np) { return dev->of_node == np; } EXPORT_SYMBOL_GPL(device_match_of_node); int device_match_fwnode(struct device *dev, const void *fwnode) { return dev_fwnode(dev) == fwnode; } EXPORT_SYMBOL_GPL(device_match_fwnode); int device_match_devt(struct device *dev, const void *pdevt) { return dev->devt == *(dev_t *)pdevt; } EXPORT_SYMBOL_GPL(device_match_devt); int device_match_acpi_dev(struct device *dev, const void *adev) { return ACPI_COMPANION(dev) == adev; } EXPORT_SYMBOL(device_match_acpi_dev); int device_match_any(struct device *dev, const void *unused) { return 1; } EXPORT_SYMBOL_GPL(device_match_any);
drivers/base/devcon.c +1 −7 Original line number Diff line number Diff line Loading @@ -152,19 +152,13 @@ static struct bus_type *generic_match_buses[] = { NULL, }; static int device_fwnode_match(struct device *dev, const void *fwnode) { return dev_fwnode(dev) == fwnode; } static void *device_connection_fwnode_match(struct device_connection *con) { struct bus_type *bus; struct device *dev; for (bus = generic_match_buses[0]; bus; bus++) { dev = bus_find_device(bus, NULL, (void *)con->fwnode, device_fwnode_match); dev = bus_find_device_by_fwnode(bus, con->fwnode); if (dev && !strncmp(dev_name(dev), con->id, strlen(con->id))) return dev; Loading
drivers/base/platform.c +14 −0 Original line number Diff line number Diff line Loading @@ -1197,6 +1197,20 @@ struct bus_type platform_bus_type = { }; EXPORT_SYMBOL_GPL(platform_bus_type); /** * platform_find_device_by_driver - Find a platform device with a given * driver. * @start: The device to start the search from. * @drv: The device driver to look for. */ struct device *platform_find_device_by_driver(struct device *start, const struct device_driver *drv) { return bus_find_device(&platform_bus_type, start, drv, (void *)platform_match); } EXPORT_SYMBOL_GPL(platform_find_device_by_driver); int __init platform_bus_init(void) { int error; Loading