Message ID | 1555344260-12375-28-git-send-email-suzuki.poulose@arm.com |
---|---|
State | New |
Headers | show |
Series | coresight: Support for ACPI bindings | expand |
On Mon, Apr 15, 2019 at 6:06 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> > Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com> Can you resend this with a CC to linux-acpi@vger.kernel.org, please? There's some device properties material for 5.2 collected already and it would be good to keep all that together. > --- > 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 >
Hi Rafael On 04/16/2019 11:20 AM, Rafael J. Wysocki wrote: > On Mon, Apr 15, 2019 at 6:06 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> >> Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com> > > Can you resend this with a CC to linux-acpi@vger.kernel.org, please? > > There's some device properties material for 5.2 collected already and > it would be good to keep all that together. > Sure, will do. Btw, I have a question w.r.t the match function. We have : class_find_device(struct class *class, struct device *start, const void *data, int (*match)(struct device *, const void *)) and bus_find_device(struct bus_type *bus, struct device *start, void *data, int (*match)(struct device *dev, void *data)) Just because the "match" has slightly different constraint for the data (i.e, const void * vs void *), we can't reuse the same match function for class_find_device. Do you think we should converge the types to reuse the same match every where (Of course in a separate patch series) ? Cheers Suzuki
On Tue, Apr 16, 2019 at 12:31 PM Suzuki K Poulose <suzuki.poulose@arm.com> wrote: > > Hi Rafael > > On 04/16/2019 11:20 AM, Rafael J. Wysocki wrote: > > On Mon, Apr 15, 2019 at 6:06 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> > >> Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com> > > > > Can you resend this with a CC to linux-acpi@vger.kernel.org, please? > > > > There's some device properties material for 5.2 collected already and > > it would be good to keep all that together. > > > > Sure, will do. Btw, I have a question w.r.t the match function. > > We have : > > > class_find_device(struct class *class, struct device *start, > const void *data, > int (*match)(struct device *, const void *)) > and > > bus_find_device(struct bus_type *bus, > struct device *start, void *data, > int (*match)(struct device *dev, void *data)) > > Just because the "match" has slightly different constraint for the > data (i.e, const void * vs void *), we can't reuse the same match > function for class_find_device. Do you think we should converge the > types to reuse the same match every where (Of course in a separate > patch series) ? AFAICS, (void *) pointers can be passed to functions taking (const void *) arguments, so yes, it looks like that could be consolidated and it also would be a valuable cleanup IMO.
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.
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,
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> Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com> --- 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