On Friday, May 31, 2019 4:15:31 PM CEST Heikki Krogerus wrote: > Hi, > > This is the fourth, and hopefully the final version, of my proposal to > make it possible to use fwnode_property_get_reference_args() also with > software nodes. The two issues reported by Hans in v4 are now fixed, > which were a typo in a comment, and the fwnode->secondary->secondary > of max17074 needs to have value ERR_PTR(-ENODEV). > > v4 cover letter: > > I'm not splitting this series in two after all. After thinking about > this for some time, I decided to add support for static software > nodes. I did not want to support them because I don't want to make it > easy to maintain board files, but in end they make the use of the > software nodes so much more easier compared to if we always had to > dynamically allocate them that it's a no-brainer. The references can > now be also described statically. Actually, those can now only be > described statically. > > Hans! I applied (hopefully) all of the fixes you proposed in v3. I > hope you have time to test these. > > v3 cover letter: > > This is the third version of my proposal to add reference handling to > the software node code. In this version I renamed ACPI_NAME_SIZE to > ACPI_NAMESEG_SIZE in 6/13, and slit patch 9/13 in two separate patches > (9/13 and 10/13) as suggested by Andy. Patch 9/13 will now only move > the registration of max17047 out of probe, and 10/13 will introduce > the software nodes. > > v2 cover letter: > > This is the second version of this series. In this version I'm > introducing a new helper device_find_child_by_name() as proposed > by Andy. Andy requested also another helper that could be used for > chaining the fwnodes, but I decided not to add that now. I would like > to still think about how we should handle exceptions like if there > already is a secondary node assigned for a node. > > v1 cover letter: > > This series adds support for software fwnode reference handling. In > practice it means making fwnode_property_get_reference_args() function > usable in the drivers also with software nodes. I send the series > originally as RFC [1]. > > As the first user for the software node references, I'm converting > intel_cht_int33fe.c to use them as part of the series. > > [1] https://lkml.org/lkml/2019/3/15/457 > > thanks, > > Heikki Krogerus (16): > software node: Allow node creation without properties > software node: Simplify software_node_release() function > software node: Add support for static node descriptors > software node: Use kobject name when finding child nodes by name > software node: Add software_node_get_reference_args() > driver core: Add helper device_find_child_by_name() > ACPI / property: Don't limit named child node matching to data nodes > device property: Introduce fwnode_find_reference() > device connection: Find connections also by checking the references > usb: typec: Registering real device entries for the muxes > platform/x86: intel_cht_int33fe: Register max17047 in its own function > platform/x86: intel_cht_int33fe: Remove unused fusb302 device property > platform/x86: intel_cht_int33fe: Provide software nodes for the > devices > platform/x86: intel_cht_int33fe: Provide fwnode for the USB connector > platform/x86: intel_cht_int33fe: Supply fwnodes for the external > dependencies > platform/x86: intel_cht_int33fe: Replacing the old connections with > references > > drivers/acpi/property.c | 26 +- > drivers/base/core.c | 28 ++ > drivers/base/devcon.c | 26 ++ > drivers/base/property.c | 24 ++ > drivers/base/swnode.c | 324 +++++++++++++++++------ > drivers/platform/x86/intel_cht_int33fe.c | 291 ++++++++++++++++---- > drivers/usb/roles/class.c | 2 +- > drivers/usb/typec/bus.h | 15 ++ > drivers/usb/typec/class.c | 17 +- > drivers/usb/typec/mux.c | 238 ++++++++++++----- > drivers/usb/typec/mux/pi3usb30532.c | 46 ++-- > include/linux/device.h | 2 + > include/linux/property.h | 51 ++++ > include/linux/usb/typec_mux.h | 62 ++--- > 14 files changed, 903 insertions(+), 249 deletions(-) > > All applied (but you know that already). Thanks!