[RESEND,v2,27/36] drivers: Add a generic helper to match device by fwnode handle

Message ID 1555411164-26399-1-git-send-email-suzuki.poulose@arm.com
State New
Headers show
Series
  • Untitled series #19871
Related show

Commit Message

Suzuki K Poulose April 16, 2019, 10:39 a.m.
Make the device_fwnode_match() a generic helper to match device
by fwnode handle for use with bus_find_device(). This will be
also used by coresight.

Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: "Rafael J. Wysocki" <rafael@kernel.org>
Cc: linux-acpi@vger.kernel.org
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>

---

Resending with linux-acpi in Cc, as requested by Rafael.

 drivers/base/devcon.c    | 5 -----
 drivers/base/property.c  | 6 ++++++
 include/linux/property.h | 1 +
 3 files changed, 7 insertions(+), 5 deletions(-)

-- 
2.7.4

Comments

Rafael J. Wysocki April 16, 2019, 10:48 a.m. | #1
On Tue, Apr 16, 2019 at 12:39 PM Suzuki K Poulose
<suzuki.poulose@arm.com> wrote:
>

> Make the device_fwnode_match() a generic helper to match device

> by fwnode handle for use with bus_find_device(). This will be

> also used by coresight.

>

> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

> Cc: "Rafael J. Wysocki" <rafael@kernel.org>

> Cc: linux-acpi@vger.kernel.org

> Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>

> ---

>

> Resending with linux-acpi in Cc, as requested by Rafael.


Do any other patches in your series depend on this one?

>  drivers/base/devcon.c    | 5 -----

>  drivers/base/property.c  | 6 ++++++

>  include/linux/property.h | 1 +

>  3 files changed, 7 insertions(+), 5 deletions(-)

>

> diff --git a/drivers/base/devcon.c b/drivers/base/devcon.c

> index 04db9ae..f4a9e30 100644

> --- a/drivers/base/devcon.c

> +++ b/drivers/base/devcon.c

> @@ -107,11 +107,6 @@ static struct bus_type *generic_match_buses[] = {

>         NULL,

>  };

>

> -static int device_fwnode_match(struct device *dev, void *fwnode)

> -{

> -       return dev_fwnode(dev) == fwnode;

> -}

> -

>  static void *device_connection_fwnode_match(struct device_connection *con)

>  {

>         struct bus_type *bus;

> diff --git a/drivers/base/property.c b/drivers/base/property.c

> index 8b91ab3..d10d923 100644

> --- a/drivers/base/property.c

> +++ b/drivers/base/property.c

> @@ -25,6 +25,12 @@ struct fwnode_handle *dev_fwnode(struct device *dev)

>  }

>  EXPORT_SYMBOL_GPL(dev_fwnode);

>

> +int device_fwnode_match(struct device *dev, void *fwnode)

> +{

> +       return dev_fwnode(dev) == fwnode;

> +}

> +EXPORT_SYMBOL_GPL(device_fwnode_match);

> +

>  /**

>   * device_property_present - check if a property of a device is present

>   * @dev: Device whose property is being checked

> diff --git a/include/linux/property.h b/include/linux/property.h

> index 65d3420..c8fd3d42 100644

> --- a/include/linux/property.h

> +++ b/include/linux/property.h

> @@ -34,6 +34,7 @@ enum dev_dma_attr {

>  };

>

>  struct fwnode_handle *dev_fwnode(struct device *dev);

> +int device_fwnode_match(struct device *dev, void *fwnode);

>

>  bool device_property_present(struct device *dev, const char *propname);

>  int device_property_read_u8_array(struct device *dev, const char *propname,

> --

> 2.7.4

>
Suzuki K Poulose April 16, 2019, 10:56 a.m. | #2
On 04/16/2019 11:48 AM, Rafael J. Wysocki wrote:
> On Tue, Apr 16, 2019 at 12:39 PM Suzuki K Poulose

> <suzuki.poulose@arm.com> wrote:

>>

>> Make the device_fwnode_match() a generic helper to match device

>> by fwnode handle for use with bus_find_device(). This will be

>> also used by coresight.

>>

>> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

>> Cc: "Rafael J. Wysocki" <rafael@kernel.org>

>> Cc: linux-acpi@vger.kernel.org

>> Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>

>> ---

>>

>> Resending with linux-acpi in Cc, as requested by Rafael.

> 

> Do any other patches in your series depend on this one?


Yes, I do. But they are in the middle of a big series of changes and
I don't expect this series to go into 5.2. So, if you plan to pull this
please go ahead.

Suzuki
Suzuki K Poulose April 18, 2019, 3:18 p.m. | #3
On 04/18/2019 03:39 PM, Rafael J. Wysocki wrote:
> On Tue, Apr 16, 2019 at 12:53 PM Suzuki K Poulose

> <suzuki.poulose@arm.com> wrote:

>>

>> On 04/16/2019 11:48 AM, Rafael J. Wysocki wrote:

>>> On Tue, Apr 16, 2019 at 12:39 PM Suzuki K Poulose

>>> <suzuki.poulose@arm.com> wrote:

>>>>

>>>> Make the device_fwnode_match() a generic helper to match device

>>>> by fwnode handle for use with bus_find_device(). This will be

>>>> also used by coresight.

>>>>

>>>> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

>>>> Cc: "Rafael J. Wysocki" <rafael@kernel.org>

>>>> Cc: linux-acpi@vger.kernel.org

>>>> Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>

>>>> ---

>>>>

>>>> Resending with linux-acpi in Cc, as requested by Rafael.

>>>

>>> Do any other patches in your series depend on this one?

>>

>> Yes, I do. But they are in the middle of a big series of changes and

>> I don't expect this series to go into 5.2. So, if you plan to pull this

>> please go ahead.

> 

> I would prefer the new exported function to return bool.  With that

> changed, I can apply the patch I think.

> 



That will need changes to all the other callers of bus_find_device()
to fix their match(). I guess that is a bit of an invasive change, so
I would rather do it in the "consolidation" series with
class_find_device().

Hope you're fine with that.

Suzuki

Patch

diff --git a/drivers/base/devcon.c b/drivers/base/devcon.c
index 04db9ae..f4a9e30 100644
--- a/drivers/base/devcon.c
+++ b/drivers/base/devcon.c
@@ -107,11 +107,6 @@  static struct bus_type *generic_match_buses[] = {
 	NULL,
 };
 
-static int device_fwnode_match(struct device *dev, void *fwnode)
-{
-	return dev_fwnode(dev) == fwnode;
-}
-
 static void *device_connection_fwnode_match(struct device_connection *con)
 {
 	struct bus_type *bus;
diff --git a/drivers/base/property.c b/drivers/base/property.c
index 8b91ab3..d10d923 100644
--- a/drivers/base/property.c
+++ b/drivers/base/property.c
@@ -25,6 +25,12 @@  struct fwnode_handle *dev_fwnode(struct device *dev)
 }
 EXPORT_SYMBOL_GPL(dev_fwnode);
 
+int device_fwnode_match(struct device *dev, void *fwnode)
+{
+	return dev_fwnode(dev) == fwnode;
+}
+EXPORT_SYMBOL_GPL(device_fwnode_match);
+
 /**
  * device_property_present - check if a property of a device is present
  * @dev: Device whose property is being checked
diff --git a/include/linux/property.h b/include/linux/property.h
index 65d3420..c8fd3d42 100644
--- a/include/linux/property.h
+++ b/include/linux/property.h
@@ -34,6 +34,7 @@  enum dev_dma_attr {
 };
 
 struct fwnode_handle *dev_fwnode(struct device *dev);
+int device_fwnode_match(struct device *dev, void *fwnode);
 
 bool device_property_present(struct device *dev, const char *propname);
 int device_property_read_u8_array(struct device *dev, const char *propname,