Messages in this thread | | | Subject | Re: [PATCH v6 01/12] drivers: base: Unified device connection lookup | From | Hans de Goede <> | Date | Sun, 11 Mar 2018 19:24:18 +0100 |
| |
Hi all,
On 09-03-18 18:53, Greg Kroah-Hartman wrote: > On Fri, Mar 02, 2018 at 11:20:46AM +0100, Hans de Goede wrote: >> From: Heikki Krogerus <heikki.krogerus@linux.intel.com> >> >> Several frameworks - clk, gpio, phy, pmw, etc. - maintain >> lookup tables for describing connections and provide custom >> API for handling them. This introduces a single generic >> lookup table and API for the connections. >> >> The motivation for this commit is centralizing the >> connection lookup, but the goal is to ultimately extract the >> connection descriptions also from firmware by using the >> fwnode_graph_* functions and other mechanisms that are >> available. >> >> Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com> >> Reviewed-by: Hans de Goede <hdegoede@redhat.com> >> Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com> >> Signed-off-by: Hans de Goede <hdegoede@redhat.com> > > Sorry for the delay, just now reviewing this patch... > > The content is fine (if not scary for the obvious reason of passing > around 'struct device' of different bus types, but ok...), but the api > naming is "rough":
Heikki, I think it is best if you answer Greg's remarks. FWIW I'm fine with the changes Greg proposes.
I currently have significantly less bandwidth for this due to personal circumstances, so if a new version of this patch-set is necessary it would be great if you (Heikki) can do a v7.
Regards,
Hans
> >> --- /dev/null >> +++ b/include/linux/connection.h > > "connection.h" is vague, why not just put this in device.h? > >> @@ -0,0 +1,34 @@ >> +// SPDX-License-Identifier: GPL-2.0 >> + >> +#ifndef _LINUX_CONNECTION_H_ >> +#define _LINUX_CONNECTION_H_ >> + >> +#include <linux/list.h> >> + >> +struct device; >> + >> +/** >> + * struct devcon - Device Connection Descriptor >> + * @endpoint: The names of the two devices connected together >> + * @id: Unique identifier for the connection >> + * @list: List head, private for devcon internal use only >> + */ >> +struct devcon { > > 'struct device_connection'? Spell it out please, people might think > this is a "developer conference" :) > >> + const char *endpoint[2]; >> + const char *id; >> + struct list_head list; >> +}; >> + >> +void *__device_find_connection(struct device *dev, const char *con_id, >> + void *data, >> + void *(*match)(struct devcon *con, int ep, >> + void *data)); > > Ick, __* functions are usually "no lock needed", but here you are doing > a lot "more" than the normal device_find_connection() call. Why not > make this: > device_connection_find_match()? > >> + >> +struct device *device_find_connection(struct device *dev, const char *con_id); > > device_connection_find()? > >> + >> +#define DEVCON(_ep0, _ep1, _id) (struct devcon) { { _ep0, _ep1 }, _id, } > > Can you use named identifiers here? > >> + >> +void add_device_connection(struct devcon *con); >> +void remove_device_connection(struct devcon *con); > > device_connection_add() and device_connection_remove()? > > I can make the api name changes in an add-on patch. > > thanks, > > greg k-h >
| |