[PATCH v6 00/12] ACPI graph support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




Hello everyone,

Rafael: this set has no external dependencies, it can be applied without
the two other sets. Tested with the V4L2 fwnode patches both on ACPI and
DT. I'll still address Mika's comments in the bugfix set and repost the
other patch with dependency information.

The patches apply on both v4.11-rc1 and linux-next. I'd like to base my
V4L2 patches on this set; could you create me an immutable branch on
v4.11-rc1 when you apply the patches, please? The rest of the patches are
not needed for here since they make no interface changes to the fwnode
framework.

Thanks.


This is the sixth version of the ACPI graph support patchset.

The previous RFC version of the set is available here:

<URL:http://www.spinics.net/lists/linux-acpi/msg69547.html> 

There are also v1, v2, v3, v4 and v5 which can be found here:

<URL:http://www.spinics.net/lists/linux-acpi/msg71661.html>
<URL:http://www.spinics.net/lists/linux-acpi/msg71809.html>
<URL:http://www.spinics.net/lists/linux-acpi/msg72171.html>
<URL:http://www.spinics.net/lists/linux-acpi/msg72346.html>
<URL:http://www.spinics.net/lists/linux-acpi/msg72641.html>

This set contains patches written by Mika Westerberg and by myself. The 
patchset brings support for graphs to ACPI. The functionality achieved by 
these patches is very similar to what the Device tree provides: the port
and the endpoint concept are being employed. The patches make use of the
_DSD property and data extensions to achieve this. The fwnode interface is
extended by graph functionality; this way graph information originating 
from both OF and ACPI may be accessed using the same interface, without 
being aware of the underlying firmware interface. 

The last patch of the set contains ASL documentation including an example.

The entire set may also be found here (on mediatree.git master, but it
also applies cleanly on linux-next):

<URL:https://git.linuxtv.org/sailus/media_tree.git/log/?h=acpi-graph> 

The resulting fwnode graph interface has been tested using V4L2 async with
fwnode matching and smiapp and omap3isp drivers, with appropriate changes 
to make use of the fwnode interface in drivers.

I'm additionally moving the firmware implementation specific code from
drivers/base/property.c to firmware specific locations. I'll post that
patchset soon. It'll be available here:

<URL:https://git.linuxtv.org/sailus/media_tree.git/log/?h=acpi-graph-cleaned>

The V4L2 patches can be found here. The fwnode graph interface is used by 
the newly added V4L2 fwnode framework which replaces the V4L2 OF
framework, with equivalent functionality. 

<URL:https://git.linuxtv.org/sailus/media_tree.git/log/?h=v4l2-acpi>

changes since v5.1:

- Drop patch "of: Add nop implementation of of_get_next_parent()". It is
  no longer needed.

changes since v5:

- Read the "endpoint" property on ACPI to read the endpoint number instead
  of relying on the index.

- Call fwnode_get_parent() to get the parent, independently of the FW           
  type. In other words, squashed "device property: Implement                    
  fwnode_get_next_parent() using fwnode interface" to this one.                 

- Clarify port and endpoint node object naming. Using both port and endpoint    
  cleanly resolves object naming by using the appropriate port and              
  endpoint numbers.                                                             
                                                                                
- Endpoint node numbers are unique within a port, not an endpoint.              

changes since v4:

- Use port and endpoint numbers in references. This is more reliable, as
  the port and endpoint numbers are more stable than their location in the
  data extension array. Because of this, also require the "endpoint"
  property to be there. The documentation (the last patch) is changed
  accordingly.

- Move dev_fwnode() implementation back to property.c where it was.
  EXPORT_SYMBOL_GPL() it, and add a prototype in include/linux/property.h.
  This removes the need for patches "[PATCH v4 10/16] irqchip/gic: Add
  missing forward declaration for struct device" and "of: No need to
  include linux/property.h, linux/fwnode.h is sufficient".

- Fix fwnode_graph_parse_endpoint() KernelDoc documentation.

- Add documentation for struct fwnode_endpoint.

- Removed patch "[PATCH v4 09/16] driver core: Arrange headers
  alphabetically" from the set.

changes since v3:

- Rebase on current PM tree including 4.11-rc1 merge --- there were a few
  conflicts.

changes since v2.2:

- Drop device_fwnode_handle() function in favour of moving the existing
  dev_fwnode() function from drivers/base/property.c to linux/property.h
  (now patch 12).

- Unmerge two unrelated patches accidentally merged between RFC v1 and
  PATCH v1 of the series. The patch adding device_fwnode_handle() was
  accidentally merged with "device property: Obtain device's fwnode
  independently of FW type".

- Remove redundant forward declaration of struct device in
  linux/property.h.

changes since v2:

- Include linux/property.h for property fwnode API in additional drivers
  (current patch 11).

changes since v1: 

- Fix a few checkpatch.pl warnings in Mika's patches (too long lines),

- remove the "endpoint" property specifying the endpoint id. The endpoint 
id is a software concept and the index in the endpoint array can be used
instead if needed. The changes are in patches "device property: Add 
support for fwnode endpoints" and "ACPI / DSD: Document references, 
ports and endpoints" and

- add patch "irqchip/gic: Add missing forward declaration for 
struct device" (patch 9) to fix compilation warning on arm64 caused 
by "of: No need to include linux/property.h, linux/fwnode.h is
sufficient" (now patch 10)

changes since RFC v1: 

- Rebased the set --- there were a few conflicts. 

- Fixed a bug in ACPI graph parsing. (Thanks to Mika!)

- Remove one layer (the "ports" node) of the _DSD hierarchical data 
structure. Change the documentation accordingly. Instead, rely on the 
presence of "port" and "endpoint" properties to identify port and 
endpoint nodes. 

- Add a reference the DSD property rule document [1].


Mika Westerberg (6):
  ACPI / property: Add possiblity to retrieve parent firmware node
  device property: Add fwnode_get_parent()
  ACPI / property: Add fwnode_get_next_child_node()
  device property: Add fwnode_get_named_child_node()
  ACPI / property: Add support for remote endpoints
  device property: Add support for remote endpoints

Sakari Ailus (6):
  device property: Add fwnode_handle_get()
  of: Add of_fwnode_handle() to convert device nodes to fwnode_handle
  device property: Make dev_fwnode() public
  device property: Add support for fwnode endpoints
  device property: Add fwnode_get_next_parent()
  ACPI / DSD: Document references, ports and endpoints

 Documentation/acpi/dsd/graph.txt | 162 +++++++++++++++++++++++
 drivers/acpi/property.c          | 237 +++++++++++++++++++++++++++++----
 drivers/base/property.c          | 275 +++++++++++++++++++++++++++++++++++++--
 include/acpi/acpi_bus.h          |   1 +
 include/linux/acpi.h             |  38 +++++-
 include/linux/fwnode.h           |  12 ++
 include/linux/of.h               |   4 +
 include/linux/property.h         |  26 ++++
 8 files changed, 712 insertions(+), 43 deletions(-)
 create mode 100644 Documentation/acpi/dsd/graph.txt

-- 
Kind regards,
Sakari
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]
  Powered by Linux