Commit 4413ad01 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'devicetree-fixes-for-6.2-3' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux

Pull devicetree fixes from Rob Herring:

 - Fix interaction between fw_devlink and DT overlays causing devices to
   not be probed

 - Fix the compatible string for loongson,cpu-interrupt-controller

* tag 'devicetree-fixes-for-6.2-3' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux:
  treewide: Fix probing of devices in DT overlays
  dt-bindings: interrupt-controller: loongarch: Fix mismatched compatible
parents 531f27ad 1a50d940
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/interrupt-controller/loongarch,cpu-interrupt-controller.yaml#
$id: http://devicetree.org/schemas/interrupt-controller/loongson,cpu-interrupt-controller.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: LoongArch CPU Interrupt Controller
@@ -11,7 +11,7 @@ maintainers:

properties:
  compatible:
    const: loongarch,cpu-interrupt-controller
    const: loongson,cpu-interrupt-controller

  '#interrupt-cells':
    const: 1
@@ -28,7 +28,7 @@ required:
examples:
  - |
    interrupt-controller {
      compatible = "loongarch,cpu-interrupt-controller";
      compatible = "loongson,cpu-interrupt-controller";
      #interrupt-cells = <1>;
      interrupt-controller;
    };
+6 −0
Original line number Diff line number Diff line
@@ -329,6 +329,12 @@ static int of_weim_notify(struct notifier_block *nb, unsigned long action,
				 "Failed to setup timing for '%pOF'\n", rd->dn);

		if (!of_node_check_flag(rd->dn, OF_POPULATED)) {
			/*
			 * Clear the flag before adding the device so that
			 * fw_devlink doesn't skip adding consumers to this
			 * device.
			 */
			rd->dn->fwnode.flags &= ~FWNODE_FLAG_NOT_DEVICE;
			if (!of_platform_device_create(rd->dn, NULL, &pdev->dev)) {
				dev_err(&pdev->dev,
					"Failed to create child device '%pOF'\n",
+5 −0
Original line number Diff line number Diff line
@@ -178,6 +178,11 @@ static int of_i2c_notify(struct notifier_block *nb, unsigned long action,
			return NOTIFY_OK;
		}

		/*
		 * Clear the flag before adding the device so that fw_devlink
		 * doesn't skip adding consumers to this device.
		 */
		rd->dn->fwnode.flags &= ~FWNODE_FLAG_NOT_DEVICE;
		client = of_i2c_register_device(adap, rd->dn);
		if (IS_ERR(client)) {
			dev_err(&adap->dev, "failed to create client for '%pOF'\n",
+1 −0
Original line number Diff line number Diff line
@@ -226,6 +226,7 @@ static void __of_attach_node(struct device_node *np)
	np->sibling = np->parent->child;
	np->parent->child = np;
	of_node_clear_flag(np, OF_DETACHED);
	np->fwnode.flags |= FWNODE_FLAG_NOT_DEVICE;
}

/**
+5 −0
Original line number Diff line number Diff line
@@ -737,6 +737,11 @@ static int of_platform_notify(struct notifier_block *nb,
		if (of_node_check_flag(rd->dn, OF_POPULATED))
			return NOTIFY_OK;

		/*
		 * Clear the flag before adding the device so that fw_devlink
		 * doesn't skip adding consumers to this device.
		 */
		rd->dn->fwnode.flags &= ~FWNODE_FLAG_NOT_DEVICE;
		/* pdev_parent may be NULL when no bus platform device */
		pdev_parent = of_find_device_by_node(rd->dn->parent);
		pdev = of_platform_device_create(rd->dn, NULL,
Loading