diff mbox series

[v3,06/14] include: fwnode.h: Define format macros for ports and endpoints

Message ID 20201224010907.263125-7-djrscally@gmail.com (mailing list archive)
State New, archived
Headers show
Series Add functionality to ipu3-cio2 driver allowing software_node connections to sensors on platforms designed for Windows | expand

Commit Message

Daniel Scally Dec. 24, 2020, 1:08 a.m. UTC
OF, ACPI and software_nodes all implement graphs including nodes for ports
and endpoints. These are all intended to be named with a common schema,
as "port@n" and "endpoint@n" where n is an unsigned int representing the
index of the node. To ensure commonality across the subsystems, provide a
set of macros to define the format.

Suggested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Daniel Scally <djrscally@gmail.com>
---
Changes in v3
	- Patch introduced

 include/linux/fwnode.h | 13 +++++++++++++
 1 file changed, 13 insertions(+)

Comments

Andy Shevchenko Dec. 24, 2020, 12:17 p.m. UTC | #1
On Thu, Dec 24, 2020 at 3:12 AM Daniel Scally <djrscally@gmail.com> wrote:
>
> OF, ACPI and software_nodes all implement graphs including nodes for ports
> and endpoints. These are all intended to be named with a common schema,
> as "port@n" and "endpoint@n" where n is an unsigned int representing the
> index of the node. To ensure commonality across the subsystems, provide a
> set of macros to define the format.

Nitpicks below, but in general that's what I meant, thanks!

Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
(after addressing nitpicks)

> Suggested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> Signed-off-by: Daniel Scally <djrscally@gmail.com>
> ---
> Changes in v3
>         - Patch introduced
>
>  include/linux/fwnode.h | 13 +++++++++++++
>  1 file changed, 13 insertions(+)
>
> diff --git a/include/linux/fwnode.h b/include/linux/fwnode.h
> index 9506f8ec0974..52889efceb7d 100644
> --- a/include/linux/fwnode.h
> +++ b/include/linux/fwnode.h
> @@ -32,6 +32,19 @@ struct fwnode_endpoint {
>         const struct fwnode_handle *local_fwnode;
>  };
>
> +/*
> + * ports and endpoints defined in OF, ACPI and as software_nodes should all
> + * follow a common naming scheme; use these macros to ensure commonality across
> + * the subsystems.
> + *
> + * The *PREFIX_LEN macros refer to the length of the "port@" and "endpoint@"

*PREFIX_LEN -> *_PREFIX_LEN

> + * sections of the naming scheme.
> + */
> +#define FWNODE_GRAPH_PORT_NAME_FORMAT          "port@%u"
> +#define FWNODE_GRAPH_PORT_NAME_PREFIX_LEN      5
> +#define FWNODE_GRAPH_ENDPOINT_NAME_FORMAT      "endpoint@%u"
> +#define FWNODE_GRAPH_ENDPOINT_PREFIX_LEN       9

_FORMAT -> _FMT (however, V4L2 guys may correct me, because IIRC _FMT
suffix is also used for other things in v4l2.

>  #define NR_FWNODE_REFERENCE_ARGS       8
>
>  /**
Laurent Pinchart Dec. 24, 2020, 12:41 p.m. UTC | #2
Hi Daniel,

Thank you for the patch.

On Thu, Dec 24, 2020 at 02:17:07PM +0200, Andy Shevchenko wrote:
> On Thu, Dec 24, 2020 at 3:12 AM Daniel Scally wrote:
> >
> > OF, ACPI and software_nodes all implement graphs including nodes for ports
> > and endpoints. These are all intended to be named with a common schema,
> > as "port@n" and "endpoint@n" where n is an unsigned int representing the
> > index of the node. To ensure commonality across the subsystems, provide a
> > set of macros to define the format.
> 
> Nitpicks below, but in general that's what I meant, thanks!
> 
> Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
> (after addressing nitpicks)
> 
> > Suggested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> > Signed-off-by: Daniel Scally <djrscally@gmail.com>
> > ---
> > Changes in v3
> >         - Patch introduced
> >
> >  include/linux/fwnode.h | 13 +++++++++++++
> >  1 file changed, 13 insertions(+)
> >
> > diff --git a/include/linux/fwnode.h b/include/linux/fwnode.h
> > index 9506f8ec0974..52889efceb7d 100644
> > --- a/include/linux/fwnode.h
> > +++ b/include/linux/fwnode.h
> > @@ -32,6 +32,19 @@ struct fwnode_endpoint {
> >         const struct fwnode_handle *local_fwnode;
> >  };
> >
> > +/*
> > + * ports and endpoints defined in OF, ACPI and as software_nodes should all
> > + * follow a common naming scheme; use these macros to ensure commonality across
> > + * the subsystems.
> > + *
> > + * The *PREFIX_LEN macros refer to the length of the "port@" and "endpoint@"
> 
> *PREFIX_LEN -> *_PREFIX_LEN
> 
> > + * sections of the naming scheme.
> > + */
> > +#define FWNODE_GRAPH_PORT_NAME_FORMAT          "port@%u"
> > +#define FWNODE_GRAPH_PORT_NAME_PREFIX_LEN      5
> > +#define FWNODE_GRAPH_ENDPOINT_NAME_FORMAT      "endpoint@%u"
> > +#define FWNODE_GRAPH_ENDPOINT_PREFIX_LEN       9
> 
> _FORMAT -> _FMT (however, V4L2 guys may correct me, because IIRC _FMT
> suffix is also used for other things in v4l2.

This isn't related to V4L2, so it doesn't matter much :-) I personally
prefer spelling names out in full when that wouldn't result in too long
lines, but it's really a matter of personal preference, I don't mind
either way.

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

> >  #define NR_FWNODE_REFERENCE_ARGS       8
> >
> >  /**
Sakari Ailus Dec. 28, 2020, 4:30 p.m. UTC | #3
Hi Daniel, Andy,

On Thu, Dec 24, 2020 at 01:08:59AM +0000, Daniel Scally wrote:
> OF, ACPI and software_nodes all implement graphs including nodes for ports
> and endpoints. These are all intended to be named with a common schema,
> as "port@n" and "endpoint@n" where n is an unsigned int representing the
> index of the node. To ensure commonality across the subsystems, provide a
> set of macros to define the format.
> 
> Suggested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> Signed-off-by: Daniel Scally <djrscally@gmail.com>
> ---
> Changes in v3
> 	- Patch introduced
> 
>  include/linux/fwnode.h | 13 +++++++++++++
>  1 file changed, 13 insertions(+)
> 
> diff --git a/include/linux/fwnode.h b/include/linux/fwnode.h
> index 9506f8ec0974..52889efceb7d 100644
> --- a/include/linux/fwnode.h
> +++ b/include/linux/fwnode.h
> @@ -32,6 +32,19 @@ struct fwnode_endpoint {
>  	const struct fwnode_handle *local_fwnode;
>  };
>  
> +/*
> + * ports and endpoints defined in OF, ACPI and as software_nodes should all
> + * follow a common naming scheme; use these macros to ensure commonality across
> + * the subsystems.
> + *
> + * The *PREFIX_LEN macros refer to the length of the "port@" and "endpoint@"
> + * sections of the naming scheme.
> + */
> +#define FWNODE_GRAPH_PORT_NAME_FORMAT		"port@%u"
> +#define FWNODE_GRAPH_PORT_NAME_PREFIX_LEN	5
> +#define FWNODE_GRAPH_ENDPOINT_NAME_FORMAT	"endpoint@%u"
> +#define FWNODE_GRAPH_ENDPOINT_PREFIX_LEN	9
> +
>  #define NR_FWNODE_REFERENCE_ARGS	8

I'd keep such definitions local to the swnode implementation as neither
ACPI nor DT have an apparent need for them. They do use the naming, but
don't appear to format such strings.
Sakari Ailus Dec. 28, 2020, 5:11 p.m. UTC | #4
On Mon, Dec 28, 2020 at 06:30:24PM +0200, Sakari Ailus wrote:
> Hi Daniel, Andy,
> 
> On Thu, Dec 24, 2020 at 01:08:59AM +0000, Daniel Scally wrote:
> > OF, ACPI and software_nodes all implement graphs including nodes for ports
> > and endpoints. These are all intended to be named with a common schema,
> > as "port@n" and "endpoint@n" where n is an unsigned int representing the
> > index of the node. To ensure commonality across the subsystems, provide a
> > set of macros to define the format.
> > 
> > Suggested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> > Signed-off-by: Daniel Scally <djrscally@gmail.com>
> > ---
> > Changes in v3
> > 	- Patch introduced
> > 
> >  include/linux/fwnode.h | 13 +++++++++++++
> >  1 file changed, 13 insertions(+)
> > 
> > diff --git a/include/linux/fwnode.h b/include/linux/fwnode.h
> > index 9506f8ec0974..52889efceb7d 100644
> > --- a/include/linux/fwnode.h
> > +++ b/include/linux/fwnode.h
> > @@ -32,6 +32,19 @@ struct fwnode_endpoint {
> >  	const struct fwnode_handle *local_fwnode;
> >  };
> >  
> > +/*
> > + * ports and endpoints defined in OF, ACPI and as software_nodes should all
> > + * follow a common naming scheme; use these macros to ensure commonality across
> > + * the subsystems.
> > + *
> > + * The *PREFIX_LEN macros refer to the length of the "port@" and "endpoint@"
> > + * sections of the naming scheme.
> > + */
> > +#define FWNODE_GRAPH_PORT_NAME_FORMAT		"port@%u"
> > +#define FWNODE_GRAPH_PORT_NAME_PREFIX_LEN	5
> > +#define FWNODE_GRAPH_ENDPOINT_NAME_FORMAT	"endpoint@%u"
> > +#define FWNODE_GRAPH_ENDPOINT_PREFIX_LEN	9
> > +
> >  #define NR_FWNODE_REFERENCE_ARGS	8
> 
> I'd keep such definitions local to the swnode implementation as neither
> ACPI nor DT have an apparent need for them. They do use the naming, but
> don't appear to format such strings.

Ah, I noticed these are used by the later patches. Please ignore that
comment then.

But these are still definitions, so I'd use SWNODE prefix rather than
FWNODE. That should also be reflected in the comment.

ACPI does not have a format port concept so the definitions that are being
used can be said to be specific to Linux.
Daniel Scally Dec. 28, 2020, 9:36 p.m. UTC | #5
Hi Sakari

On 28/12/2020 17:11, Sakari Ailus wrote:
> On Mon, Dec 28, 2020 at 06:30:24PM +0200, Sakari Ailus wrote:
>> Hi Daniel, Andy,
>>
>> On Thu, Dec 24, 2020 at 01:08:59AM +0000, Daniel Scally wrote:
>>> OF, ACPI and software_nodes all implement graphs including nodes for ports
>>> and endpoints. These are all intended to be named with a common schema,
>>> as "port@n" and "endpoint@n" where n is an unsigned int representing the
>>> index of the node. To ensure commonality across the subsystems, provide a
>>> set of macros to define the format.
>>>
>>> Suggested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
>>> Signed-off-by: Daniel Scally <djrscally@gmail.com>
>>> ---
>>> Changes in v3
>>> 	- Patch introduced
>>>
>>>  include/linux/fwnode.h | 13 +++++++++++++
>>>  1 file changed, 13 insertions(+)
>>>
>>> diff --git a/include/linux/fwnode.h b/include/linux/fwnode.h
>>> index 9506f8ec0974..52889efceb7d 100644
>>> --- a/include/linux/fwnode.h
>>> +++ b/include/linux/fwnode.h
>>> @@ -32,6 +32,19 @@ struct fwnode_endpoint {
>>>  	const struct fwnode_handle *local_fwnode;
>>>  };
>>>  
>>> +/*
>>> + * ports and endpoints defined in OF, ACPI and as software_nodes should all
>>> + * follow a common naming scheme; use these macros to ensure commonality across
>>> + * the subsystems.
>>> + *
>>> + * The *PREFIX_LEN macros refer to the length of the "port@" and "endpoint@"
>>> + * sections of the naming scheme.
>>> + */
>>> +#define FWNODE_GRAPH_PORT_NAME_FORMAT		"port@%u"
>>> +#define FWNODE_GRAPH_PORT_NAME_PREFIX_LEN	5
>>> +#define FWNODE_GRAPH_ENDPOINT_NAME_FORMAT	"endpoint@%u"
>>> +#define FWNODE_GRAPH_ENDPOINT_PREFIX_LEN	9
>>> +
>>>  #define NR_FWNODE_REFERENCE_ARGS	8
>>
>> I'd keep such definitions local to the swnode implementation as neither
>> ACPI nor DT have an apparent need for them. They do use the naming, but
>> don't appear to format such strings.
> 
> Ah, I noticed these are used by the later patches. Please ignore that
> comment then.
> 
> But these are still definitions, so I'd use SWNODE prefix rather than
> FWNODE. That should also be reflected in the comment.

Fine by me; I shall change that.

> ACPI does not have a format port concept so the definitions that are being
> used can be said to be specific to Linux.
>
diff mbox series

Patch

diff --git a/include/linux/fwnode.h b/include/linux/fwnode.h
index 9506f8ec0974..52889efceb7d 100644
--- a/include/linux/fwnode.h
+++ b/include/linux/fwnode.h
@@ -32,6 +32,19 @@  struct fwnode_endpoint {
 	const struct fwnode_handle *local_fwnode;
 };
 
+/*
+ * ports and endpoints defined in OF, ACPI and as software_nodes should all
+ * follow a common naming scheme; use these macros to ensure commonality across
+ * the subsystems.
+ *
+ * The *PREFIX_LEN macros refer to the length of the "port@" and "endpoint@"
+ * sections of the naming scheme.
+ */
+#define FWNODE_GRAPH_PORT_NAME_FORMAT		"port@%u"
+#define FWNODE_GRAPH_PORT_NAME_PREFIX_LEN	5
+#define FWNODE_GRAPH_ENDPOINT_NAME_FORMAT	"endpoint@%u"
+#define FWNODE_GRAPH_ENDPOINT_PREFIX_LEN	9
+
 #define NR_FWNODE_REFERENCE_ARGS	8
 
 /**