Thread (13 messages) 13 messages, 6 authors, 2018-10-10

Re: [PATCH v3 1/2] Driver core: add bus_find_device_by_fwnode

From: "Rafael J. Wysocki" <rafael@kernel.org>
Date: 2018-10-09 17:39:16
Also in: linux-arm-kernel, linux-devicetree, linux-i2c, linux-rdma, linux-spi, lkml

On Tue, Oct 9, 2018 at 7:27 PM Mathieu Poirier
[off-list ref] wrote:
Hi Silesh,

On Tue, Oct 09, 2018 at 03:47:24PM +0530, Silesh C V wrote:
quoted
Some drivers need to find the device on a bus having a specific firmware
node. Currently, such drivers have their own implementations to do this.
Provide a helper similar to bus_find_device_by_name so that each driver
does not have to reinvent this.

Signed-off-by: Silesh C V <redacted>
---
Changes since v2:
      - make use of dev_fwnode in match_fwnode.

 drivers/base/bus.c     | 20 ++++++++++++++++++++
 include/linux/device.h |  3 +++
 2 files changed, 23 insertions(+)
diff --git a/drivers/base/bus.c b/drivers/base/bus.c
index 8bfd27e..a2f39db 100644
--- a/drivers/base/bus.c
+++ b/drivers/base/bus.c
@@ -17,6 +17,7 @@
 #include <linux/string.h>
 #include <linux/mutex.h>
 #include <linux/sysfs.h>
+#include <linux/property.h>
 #include "base.h"
 #include "power/power.h"
@@ -373,6 +374,25 @@ struct device *bus_find_device_by_name(struct bus_type *bus,
 }
 EXPORT_SYMBOL_GPL(bus_find_device_by_name);

+static int match_fwnode(struct device *dev, void *fwnode)
+{
+     return dev_fwnode(dev) == fwnode;
+}
+
+/**
+ * bus_find_device_by_fwnode - device iterator for locating a particular device
+ * having a specific firmware node
+ * @bus: bus type
+ * @start: Device to begin with
+ * @fwnode: firmware node of the device to match
+ */
+struct device *bus_find_device_by_fwnode(struct bus_type *bus, struct device *start,
+                                     struct fwnode_handle *fwnode)
I get the following when running checkpatch on your set:

mpoirier@xps15:~/work/linaro/coresight/kernel-maint$ ./scripts/checkpatch.pl
0001-Driver-core-add-bus_find_device_by_fwnode.patch
WARNING: line over 80 characters
Lines longer than 80 chars often are legitimate.  No need to send
extra reports about those cases in general.

Thanks,
Rafael
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help