Hi Linus,

Please pull from the tag

 git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
 devprop-5.4-rc1

with top-most commit 016049a816774edc9c3cd81afa7724d7ab001585

 software node: Initialize the return value in software_node_find_by_name()

on top of commit a55aa89aab90fae7c815b0551b07be37db359d76

 Linux 5.3-rc6

to receive device properties framework updates for 5.4-rc1.

These include software node support improvements (Heikki Krogerus)
and two assorted cleanups (Andy Shevchenko, Geert Uytterhoeven).

There was a conflict between this and the USB tree in linux-next
which was resolved by Stephen by applying the appended diff.

Thanks!


---------------

Andy Shevchenko (1):
      device property: Remove duplicate test for NULL

Geert Uytterhoeven (1):
      ACPI / property: Fix acpi_graph_get_remote_endpoint() name in kerneldoc

Heikki Krogerus (5):
      software node: Add software_node_find_by_name()
      usb: roles: intel_xhci: Supplying software node for the role mux
      platform/x86: intel_cht_int33fe: Use new API to gain access to
the role switch
      software node: Initialize the return value in software_node_to_swnode()
      software node: Initialize the return value in software_node_find_by_name()

---------------

 drivers/acpi/property.c                        |  2 +-
 drivers/base/swnode.c                          | 39 +++++++++++++++++-
 drivers/platform/x86/intel_cht_int33fe.c       | 57 +++++---------------------
 drivers/usb/roles/intel-xhci-usb-role-switch.c | 27 ++++++++----
 include/linux/fwnode.h                         |  9 ++--
 include/linux/property.h                       |  4 ++
 6 files changed, 78 insertions(+), 60 deletions(-)

---------------

diff --cc drivers/usb/roles/intel-xhci-usb-role-switch.c
index 7325a84dd1c8,88d041601c51..000000000000
--- a/drivers/usb/roles/intel-xhci-usb-role-switch.c
+++ b/drivers/usb/roles/intel-xhci-usb-role-switch.c
@@@ -37,12 -44,9 +44,13 @@@
  struct intel_xhci_usb_data {
      struct usb_role_switch *role_sw;
      void __iomem *base;
+     bool enable_sw_switch;
  };

 +static const struct software_node intel_xhci_usb_node = {
 +    "intel-xhci-usb-sw",
 +};
 +
  static int intel_xhci_usb_set_role(struct device *dev, enum usb_role role)
  {
      struct intel_xhci_usb_data *data = dev_get_drvdata(dev);
@@@ -147,20 -167,12 +167,22 @@@ static int intel_xhci_usb_probe(struct

      platform_set_drvdata(pdev, data);

+     data->enable_sw_switch = !device_property_read_bool(dev,
+                         "sw_switch_disable");
 +    ret = software_node_register(&intel_xhci_usb_node);
 +    if (ret)
 +        return ret;
 +
 +    sw_desc.set = intel_xhci_usb_set_role,
 +    sw_desc.get = intel_xhci_usb_get_role,
 +    sw_desc.allow_userspace_control = true,
 +    sw_desc.fwnode = software_node_fwnode(&intel_xhci_usb_node);

      data->role_sw = usb_role_switch_register(dev, &sw_desc);
 -    if (IS_ERR(data->role_sw))
 +    if (IS_ERR(data->role_sw)) {
 +        fwnode_handle_put(sw_desc.fwnode);
          return PTR_ERR(data->role_sw);
 +    }

      pm_runtime_set_active(dev);
      pm_runtime_enable(dev);

Reply via email to