All of lore.kernel.org
 help / color / mirror / Atom feed
From: Suzuki K Poulose <suzuki.poulose@arm.com>
To: linux-kernel@vger.kernel.org
Cc: gregkh@linuxfoundation.org, rafael@kernel.org, suzuki.poulose@arm.com
Subject: [RFC PATCH 46/57] driver: Add variants of driver_find_device()
Date: Mon,  3 Jun 2019 16:50:12 +0100	[thread overview]
Message-ID: <1559577023-558-47-git-send-email-suzuki.poulose@arm.com> (raw)
In-Reply-To: <1559577023-558-1-git-send-email-suzuki.poulose@arm.com>

Add a wrappers to lookup a device by name for a given driver, by various
generic properties of a device. This can avoid the proliferation of custom
match functions throughout the drivers.

Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: "Rafael J. Wysocki" <rafael@kernel.org>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
---
 include/linux/device.h | 44 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)

diff --git a/include/linux/device.h b/include/linux/device.h
index 52d59d5..68d6e04 100644
--- a/include/linux/device.h
+++ b/include/linux/device.h
@@ -401,6 +401,50 @@ struct device *driver_find_device(struct device_driver *drv,
 				  struct device *start, void *data,
 				  int (*match)(struct device *dev, const void *data));
 
+/**
+ * driver_find_device_by_name - device iterator for locating a particular device
+ * of a specific name.
+ * @driver: the driver we're iterating
+ * @start: Device to begin with
+ * @name: name of the device to match
+ */
+static inline struct device *driver_find_device_by_name(struct device_driver *drv,
+							struct device *start,
+							const char *name)
+{
+	return driver_find_device(drv, start, (void *)name, device_match_name);
+}
+
+/**
+ * driver_find_device_by_of_node- device iterator for locating a particular device
+ * by of_node pointer.
+ * @driver: the driver we're iterating
+ * @start: Device to begin with
+ * @np: of_node pointer to match.
+ */
+static inline struct device *
+driver_find_device_by_of_node(struct device_driver *drv,
+			      struct device *start,
+			      const struct device_node *np)
+{
+	return driver_find_device(drv, start, (void *)np, device_match_of_node);
+}
+
+/**
+ * driver_find_device_by_fwnode- device iterator for locating a particular device
+ * by fwnode pointer.
+ * @driver: the driver we're iterating
+ * @start: Device to begin with
+ * @fwnode: fwnode pointer to match.
+ */
+static inline struct device *
+driver_find_device_by_fwnode(struct device_driver *drv,
+			     struct device *start,
+			     const struct fwnode_handle *fwnode)
+{
+	return driver_find_device(drv, start, (void *)fwnode, device_match_fwnode);
+}
+
 void driver_deferred_probe_add(struct device *dev);
 int driver_deferred_probe_check_state(struct device *dev);
 
-- 
2.7.4


  parent reply	other threads:[~2019-06-03 15:52 UTC|newest]

Thread overview: 110+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-06-03 15:49 [RFC PATCH 00/57] drivers: Consolidate device lookup helpers Suzuki K Poulose
2019-06-03 15:49 ` Suzuki K Poulose
2019-06-03 15:49 ` Suzuki K Poulose
2019-06-03 15:49 ` [RFC PATCH 01/57] drivers: s390/cio: Use driver_for_each_device Suzuki K Poulose
2019-06-14 13:32   ` Suzuki K Poulose
2019-06-17  9:21   ` Sebastian Ott
2019-06-03 15:49 ` [RFC PATCH 02/57] drivers: ipmi: Drop device reference Suzuki K Poulose
2019-06-03 17:01   ` Corey Minyard
2019-06-03 17:03     ` Suzuki K Poulose
2019-06-03 19:09   ` Greg KH
2019-06-03 19:59     ` Corey Minyard
2019-06-04  7:43       ` Greg KH
2019-06-03 15:49 ` [RFC PATCH 03/57] drivers: coresight: Drop device references found via bus_find_device Suzuki K Poulose
2019-06-03 19:08   ` Greg KH
2019-06-04  8:19     ` Suzuki K Poulose
2019-06-03 15:49 ` [RFC PATCH 04/57] drivers: Add generic match helper to match the device of_node Suzuki K Poulose
2019-06-03 15:49 ` [RFC PATCH 05/57] drm: mipi_dsi: Use bus_find_device_by_of_node() helper Suzuki K Poulose
2019-06-03 15:49 ` [RFC PATCH 06/57] drivers: i2c: i2c-core: Use bus_find_device_by_of_node helper Suzuki K Poulose
2019-06-03 15:49 ` [RFC PATCH 07/57] drivers: nvmem: " Suzuki K Poulose
2019-06-03 15:49 ` [RFC PATCH 08/57] drivers: spi: " Suzuki K Poulose
2019-06-03 16:04   ` Mark Brown
2019-06-03 15:49 ` [RFC PATCH 09/57] drivers: sound: rockchip: rk3399: " Suzuki K Poulose
2019-06-03 15:49   ` Suzuki K Poulose
2019-06-03 16:02   ` Mark Brown
2019-06-03 16:02     ` Mark Brown
2019-06-03 15:49 ` [RFC PATCH 10/57] drivers: coresight: " Suzuki K Poulose
2019-06-03 15:49 ` [RFC PATCH 11/57] of: mdio: " Suzuki K Poulose
2019-06-03 16:00   ` Andrew Lunn
2019-06-03 15:49 ` [RFC PATCH 12/57] of: platform: " Suzuki K Poulose
2019-06-10 20:44   ` Rob Herring
2019-06-03 15:49 ` [RFC PATCH 13/57] drivers: Add generic helper for matching device by fwnode Suzuki K Poulose
2019-06-03 15:49 ` [RFC PATCH 14/57] drivers: devcon: Use bus_find_device_by_fwnode helper Suzuki K Poulose
2019-06-03 15:49 ` [RFC PATCH 15/57] net: hisilicon: hnfs:Use " Suzuki K Poulose
2019-06-03 15:49 ` [RFC PATCH 16/57] net: hns_roce: Use " Suzuki K Poulose
2019-06-03 16:05   ` Jason Gunthorpe
2019-06-03 15:49 ` [RFC PATCH 17/57] drivers: Add generic match by device type helper Suzuki K Poulose
2019-06-03 15:49 ` [RFC PATCH 18/57] drivers: intel_th: Use bus_find_device_by_devt helper Suzuki K Poulose
2019-06-03 15:49 ` [RFC PATCH 19/57] drivers: usb: core: " Suzuki K Poulose
2019-06-03 15:49 ` [RFC PATCH 20/57] platform: Add a helper to find device by driver Suzuki K Poulose
2019-06-04 13:29   ` Heiko Stuebner
2019-06-04 13:31     ` Suzuki K Poulose
2019-06-03 15:49 ` [RFC PATCH 21/57] drivers: Add generic match helper by ACPI_COMPANION device Suzuki K Poulose
2019-06-03 15:49 ` [RFC PATCH 22/57] drivers: i2c: Use generic helper to match device by acpi_dev Suzuki K Poulose
2019-06-04  9:27   ` Mika Westerberg
2019-06-06 20:03   ` Wolfram Sang
2019-06-10 12:49     ` Suzuki K Poulose
2019-06-03 15:49 ` [RFC PATCH 23/57] drivers: spi: Use bus_find_device_by_acpi_dev match helper Suzuki K Poulose
2019-06-03 16:04   ` Mark Brown
2019-06-03 15:49 ` [RFC PATCH 24/57] drivers: staging: most-core: Use bus_find_device_by_name Suzuki K Poulose
2019-06-03 15:49 ` [RFC PATCH 25/57] drivers: Add generic match by name helper Suzuki K Poulose
2019-06-03 15:49 ` [RFC PATCH 26/57] drivers: acpi: Clean up acpi_dev_match_cb Suzuki K Poulose
2019-06-03 15:49 ` [RFC PATCH 27/57] drivers: Unify the match prototype for bus_find_device with class_find_device Suzuki K Poulose
2019-06-04  6:52   ` Harald Freudenberger
2019-06-04 11:26   ` Rafael J. Wysocki
2019-06-04 11:39     ` Suzuki K Poulose
2019-06-03 15:49 ` [RFC PATCH 28/57] drivers: class: Add variants of class_find_device() Suzuki K Poulose
2019-06-03 15:49 ` [RFC PATCH 29/57] drivers: stm: Use class_find_device_by_name() helper Suzuki K Poulose
2019-06-03 15:49 ` [RFC PATCH 30/57] drivers: leds: " Suzuki K Poulose
2019-06-04  8:35   ` Pavel Machek
2019-06-03 15:49 ` [RFC PATCH 31/57] drivers: rtc: " Suzuki K Poulose
2019-06-03 15:49 ` [RFC PATCH 32/57] drivers: s390-crypto: Use class_device_find_by_name() helper Suzuki K Poulose
2019-06-04  6:45   ` Harald Freudenberger
2019-06-03 15:49 ` [RFC PATCH 33/57] drivers: usb: Use class_find_device_by_name() helper Suzuki K Poulose
2019-06-03 15:50 ` [RFC PATCH 34/57] drivers: ieee802154: " Suzuki K Poulose
2019-06-03 15:50 ` [RFC PATCH 35/57] drivers: core: Reuse generic match by device type helper Suzuki K Poulose
2019-06-03 15:50 ` [RFC PATCH 36/57] drivers: mei: Use class_find_device_by_devt match helper Suzuki K Poulose
2019-06-03 18:00   ` Winkler, Tomas
2019-06-04  8:27     ` Suzuki K Poulose
2019-06-03 15:50 ` [RFC PATCH 37/57] drivers: s390: zcrypt: Use class_find_device_by_devt helper Suzuki K Poulose
2019-06-04  6:47   ` Harald Freudenberger
2019-06-03 15:50 ` [RFC PATCH 38/57] drivers: fpga: Use generic helpers to match by of_node Suzuki K Poulose
2019-06-03 15:50 ` [RFC PATCH 39/57] drivers: mux: Use class_find_device_by_of_node helper Suzuki K Poulose
2019-06-03 16:22   ` Peter Rosin
2019-06-03 16:45     ` Suzuki K Poulose
2019-06-03 18:39       ` Peter Rosin
2019-06-03 15:50 ` [RFC PATCH 40/57] drivers: spi: " Suzuki K Poulose
2019-06-03 15:50 ` [RFC PATCH 41/57] drivers: net: phy: " Suzuki K Poulose
2019-06-03 16:02   ` Andrew Lunn
2019-06-03 15:50 ` [RFC PATCH 42/57] drivers: regulator: " Suzuki K Poulose
2019-06-03 16:04   ` Mark Brown
2019-06-03 15:50 ` [RFC PATCH 43/57] drivers: tty : " Suzuki K Poulose
2019-06-03 15:50 ` [RFC PATCH 44/57] drivers: usb : Use class_find_device_by_fwnode() helper Suzuki K Poulose
2019-06-03 15:50 ` [RFC PATCH 45/57] drivers: driver_find_device: Unify the match function Suzuki K Poulose
2019-06-03 15:50 ` Suzuki K Poulose [this message]
2019-06-03 19:10   ` [RFC PATCH 46/57] driver: Add variants of driver_find_device() Greg KH
2019-06-04  8:45     ` Suzuki K Poulose
2019-06-04 10:55       ` Suzuki K Poulose
2019-06-04 11:32         ` Greg KH
2019-06-04 11:44           ` Suzuki K Poulose
2019-06-04 11:33         ` Rafael J. Wysocki
2019-06-03 19:11   ` Greg KH
2019-06-04  8:36     ` Suzuki K Poulose
2019-06-04  8:46       ` Greg KH
2019-06-03 19:12   ` Greg KH
2019-06-04  8:33     ` Suzuki K Poulose
2019-06-03 15:50 ` [RFC PATCH 47/57] drivers: mfd: Use driver_find_device_by_name helper Suzuki K Poulose
2019-06-04  9:45   ` Arnd Bergmann
2019-06-04 11:42     ` Suzuki K Poulose
2019-06-04 11:47       ` Arnd Bergmann
2019-06-03 15:50 ` [RFC PATCH 48/57] drivers: s390: cio: Use driver_find_by_name() helper Suzuki K Poulose
2019-06-03 15:50 ` [RFC PATCH 49/57] drivers: mfd: altera: Use driver_find_device_by_of_node() helper Suzuki K Poulose
2019-06-04 16:13   ` Thor Thayer
2019-06-03 15:50 ` [RFC PATCH 50/57] drivers: iommu: arm-smmu: Use driver_find_device_by_fwnode() helper Suzuki K Poulose
2019-06-03 15:50 ` [RFC PATCH 51/57] drivers: Add generic helper to match all devices Suzuki K Poulose
2019-06-03 15:50 ` [RFC PATCH 52/57] drivers: tegra: Use driver_find_device_by_of_node() helper Suzuki K Poulose
2019-06-03 15:50 ` [RFC PATCH 53/57] drivers: Introduce bus_find_next_device() helper Suzuki K Poulose
2019-06-03 15:50 ` [RFC PATCH 54/57] drivers: pci: Use " Suzuki K Poulose
2019-06-03 15:50 ` [RFC PATCH 55/57] drivers: scsi: " Suzuki K Poulose
2019-06-03 15:50 ` [RFC PATCH 56/57] drivers: Introduce driver_find_next_device() helper Suzuki K Poulose
2019-06-03 15:50 ` [RFC PATCH 57/57] drivers: i2c-amd: Use " Suzuki K Poulose

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1559577023-558-47-git-send-email-suzuki.poulose@arm.com \
    --to=suzuki.poulose@arm.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rafael@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.