diff mbox series

[v1,1/1] device property: Add a note to the fwnode.h

Message ID 20250331163227.280501-1-andriy.shevchenko@linux.intel.com
State New
Headers show
Series [v1,1/1] device property: Add a note to the fwnode.h | expand

Commit Message

Andy Shevchenko March 31, 2025, 4:32 p.m. UTC
Add a note to the fwnode.h that the header should not be used
directly in the leaf drivers, they all should use the higher
level APIs and the respective headers.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 include/linux/fwnode.h | 6 ++++++
 1 file changed, 6 insertions(+)

Comments

Rafael J. Wysocki April 7, 2025, 6:44 p.m. UTC | #1
On Mon, Apr 7, 2025 at 8:36 PM Andy Shevchenko
<andriy.shevchenko@linux.intel.com> wrote:
>
> On Mon, Apr 07, 2025 at 08:17:17PM +0200, Rafael J. Wysocki wrote:
> > On Mon, Mar 31, 2025 at 6:32 PM Andy Shevchenko
> > <andriy.shevchenko@linux.intel.com> wrote:
> > >
> > > Add a note to the fwnode.h that the header should not be used
> > > directly in the leaf drivers, they all should use the higher
> > > level APIs and the respective headers.
> >
> > This sounds like a solution to a problem, but the problem statement is missing.
>
> > What's your motivation?
>
> Found a few drivers that are mistakenly include fwnode.h while they meant to
> have either of.h or more likely property.h.

I see.

I would then say

"This header file provides low-level data types and definitions for
firmware and device property providers.  The respective API header
files supplied by them should contain all of the requisite data types
and definitions for end users, so including it directly should not be
necessary."

And I would mention that the purpose is to give guidance to driver
writers to avoid repeating a common mistake.

>
> ...
>
> > > + * Note, this header is not meant to be used by the leaf drivers.
> > > + * It provides the low level data types and definitions for the firmware
> > > + * and device property providers. The respective API headers should
> > > + * guarantee all the required data types and definitions without including
> > > + * this header directly.
>
> --
Andy Shevchenko April 7, 2025, 6:48 p.m. UTC | #2
On Mon, Apr 07, 2025 at 08:44:20PM +0200, Rafael J. Wysocki wrote:
> On Mon, Apr 7, 2025 at 8:36 PM Andy Shevchenko
> <andriy.shevchenko@linux.intel.com> wrote:
> > On Mon, Apr 07, 2025 at 08:17:17PM +0200, Rafael J. Wysocki wrote:
> > > On Mon, Mar 31, 2025 at 6:32 PM Andy Shevchenko
> > > <andriy.shevchenko@linux.intel.com> wrote:
> > > >
> > > > Add a note to the fwnode.h that the header should not be used
> > > > directly in the leaf drivers, they all should use the higher
> > > > level APIs and the respective headers.
> > >
> > > This sounds like a solution to a problem, but the problem statement is missing.
> >
> > > What's your motivation?
> >
> > Found a few drivers that are mistakenly include fwnode.h while they meant to
> > have either of.h or more likely property.h.
> 
> I see.
> 
> I would then say
> 
> "This header file provides low-level data types and definitions for
> firmware and device property providers.  The respective API header
> files supplied by them should contain all of the requisite data types
> and definitions for end users, so including it directly should not be
> necessary."
> 
> And I would mention that the purpose is to give guidance to driver
> writers to avoid repeating a common mistake.

A-ha, thanks for the suggestion, since there is also a v2, which almost
the same, I will incorporate it into v3.
diff mbox series

Patch

diff --git a/include/linux/fwnode.h b/include/linux/fwnode.h
index 6fa0a268d538..da537c7c30dc 100644
--- a/include/linux/fwnode.h
+++ b/include/linux/fwnode.h
@@ -2,6 +2,12 @@ 
 /*
  * fwnode.h - Firmware device node object handle type definition.
  *
+ * Note, this header is not meant to be used by the leaf drivers.
+ * It provides the low level data types and definitions for the firmware
+ * and device property providers. The respective API headers should
+ * guarantee all the required data types and definitions without including
+ * this header directly.
+ *
  * Copyright (C) 2015, Intel Corporation
  * Author: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
  */