aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/devicetree/bindings/display/panel/panel-common.txt2
-rw-r--r--Documentation/devicetree/bindings/dma/renesas,rcar-dmac.txt1
-rw-r--r--Documentation/devicetree/bindings/net/renesas,ravb.txt1
-rw-r--r--Documentation/devicetree/bindings/pinctrl/allwinner,sunxi-pinctrl.txt6
-rw-r--r--Documentation/devicetree/bindings/serial/renesas,sci-serial.txt2
-rw-r--r--Documentation/devicetree/bindings/vendor-prefixes.txt1
-rw-r--r--Documentation/devicetree/overlay-notes.txt8
-rw-r--r--drivers/of/overlay.c30
-rw-r--r--scripts/dtc/checks.c5
9 files changed, 40 insertions, 16 deletions
diff --git a/Documentation/devicetree/bindings/display/panel/panel-common.txt b/Documentation/devicetree/bindings/display/panel/panel-common.txt
index 557fa765adcb..5d2519af4bb5 100644
--- a/Documentation/devicetree/bindings/display/panel/panel-common.txt
+++ b/Documentation/devicetree/bindings/display/panel/panel-common.txt
@@ -38,7 +38,7 @@ Display Timings
38 require specific display timings. The panel-timing subnode expresses those 38 require specific display timings. The panel-timing subnode expresses those
39 timings as specified in the timing subnode section of the display timing 39 timings as specified in the timing subnode section of the display timing
40 bindings defined in 40 bindings defined in
41 Documentation/devicetree/bindings/display/display-timing.txt. 41 Documentation/devicetree/bindings/display/panel/display-timing.txt.
42 42
43 43
44Connectivity 44Connectivity
diff --git a/Documentation/devicetree/bindings/dma/renesas,rcar-dmac.txt b/Documentation/devicetree/bindings/dma/renesas,rcar-dmac.txt
index aadfb236d53a..61315eaa7660 100644
--- a/Documentation/devicetree/bindings/dma/renesas,rcar-dmac.txt
+++ b/Documentation/devicetree/bindings/dma/renesas,rcar-dmac.txt
@@ -26,6 +26,7 @@ Required Properties:
26 - "renesas,dmac-r8a7794" (R-Car E2) 26 - "renesas,dmac-r8a7794" (R-Car E2)
27 - "renesas,dmac-r8a7795" (R-Car H3) 27 - "renesas,dmac-r8a7795" (R-Car H3)
28 - "renesas,dmac-r8a7796" (R-Car M3-W) 28 - "renesas,dmac-r8a7796" (R-Car M3-W)
29 - "renesas,dmac-r8a77965" (R-Car M3-N)
29 - "renesas,dmac-r8a77970" (R-Car V3M) 30 - "renesas,dmac-r8a77970" (R-Car V3M)
30 - "renesas,dmac-r8a77980" (R-Car V3H) 31 - "renesas,dmac-r8a77980" (R-Car V3H)
31 32
diff --git a/Documentation/devicetree/bindings/net/renesas,ravb.txt b/Documentation/devicetree/bindings/net/renesas,ravb.txt
index c306f55d335b..890526dbfc26 100644
--- a/Documentation/devicetree/bindings/net/renesas,ravb.txt
+++ b/Documentation/devicetree/bindings/net/renesas,ravb.txt
@@ -18,6 +18,7 @@ Required properties:
18 18
19 - "renesas,etheravb-r8a7795" for the R8A7795 SoC. 19 - "renesas,etheravb-r8a7795" for the R8A7795 SoC.
20 - "renesas,etheravb-r8a7796" for the R8A7796 SoC. 20 - "renesas,etheravb-r8a7796" for the R8A7796 SoC.
21 - "renesas,etheravb-r8a77965" for the R8A77965 SoC.
21 - "renesas,etheravb-r8a77970" for the R8A77970 SoC. 22 - "renesas,etheravb-r8a77970" for the R8A77970 SoC.
22 - "renesas,etheravb-r8a77980" for the R8A77980 SoC. 23 - "renesas,etheravb-r8a77980" for the R8A77980 SoC.
23 - "renesas,etheravb-r8a77995" for the R8A77995 SoC. 24 - "renesas,etheravb-r8a77995" for the R8A77995 SoC.
diff --git a/Documentation/devicetree/bindings/pinctrl/allwinner,sunxi-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/allwinner,sunxi-pinctrl.txt
index ed5eb547afc8..64bc5c2a76da 100644
--- a/Documentation/devicetree/bindings/pinctrl/allwinner,sunxi-pinctrl.txt
+++ b/Documentation/devicetree/bindings/pinctrl/allwinner,sunxi-pinctrl.txt
@@ -56,9 +56,9 @@ pins it needs, and how they should be configured, with regard to muxer
56configuration, drive strength and pullups. If one of these options is 56configuration, drive strength and pullups. If one of these options is
57not set, its actual value will be unspecified. 57not set, its actual value will be unspecified.
58 58
59This driver supports the generic pin multiplexing and configuration 59Allwinner A1X Pin Controller supports the generic pin multiplexing and
60bindings. For details on each properties, you can refer to 60configuration bindings. For details on each properties, you can refer to
61./pinctrl-bindings.txt. 61 ./pinctrl-bindings.txt.
62 62
63Required sub-node properties: 63Required sub-node properties:
64 - pins 64 - pins
diff --git a/Documentation/devicetree/bindings/serial/renesas,sci-serial.txt b/Documentation/devicetree/bindings/serial/renesas,sci-serial.txt
index a006ea4d065f..106808b55b6d 100644
--- a/Documentation/devicetree/bindings/serial/renesas,sci-serial.txt
+++ b/Documentation/devicetree/bindings/serial/renesas,sci-serial.txt
@@ -43,6 +43,8 @@ Required properties:
43 - "renesas,hscif-r8a7795" for R8A7795 (R-Car H3) HSCIF compatible UART. 43 - "renesas,hscif-r8a7795" for R8A7795 (R-Car H3) HSCIF compatible UART.
44 - "renesas,scif-r8a7796" for R8A7796 (R-Car M3-W) SCIF compatible UART. 44 - "renesas,scif-r8a7796" for R8A7796 (R-Car M3-W) SCIF compatible UART.
45 - "renesas,hscif-r8a7796" for R8A7796 (R-Car M3-W) HSCIF compatible UART. 45 - "renesas,hscif-r8a7796" for R8A7796 (R-Car M3-W) HSCIF compatible UART.
46 - "renesas,scif-r8a77965" for R8A77965 (R-Car M3-N) SCIF compatible UART.
47 - "renesas,hscif-r8a77965" for R8A77965 (R-Car M3-N) HSCIF compatible UART.
46 - "renesas,scif-r8a77970" for R8A77970 (R-Car V3M) SCIF compatible UART. 48 - "renesas,scif-r8a77970" for R8A77970 (R-Car V3M) SCIF compatible UART.
47 - "renesas,hscif-r8a77970" for R8A77970 (R-Car V3M) HSCIF compatible UART. 49 - "renesas,hscif-r8a77970" for R8A77970 (R-Car V3M) HSCIF compatible UART.
48 - "renesas,scif-r8a77980" for R8A77980 (R-Car V3H) SCIF compatible UART. 50 - "renesas,scif-r8a77980" for R8A77980 (R-Car V3H) SCIF compatible UART.
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt b/Documentation/devicetree/bindings/vendor-prefixes.txt
index b5f978a4cac6..a38d8bfae19c 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.txt
+++ b/Documentation/devicetree/bindings/vendor-prefixes.txt
@@ -182,6 +182,7 @@ karo Ka-Ro electronics GmbH
182keithkoep Keith & Koep GmbH 182keithkoep Keith & Koep GmbH
183keymile Keymile GmbH 183keymile Keymile GmbH
184khadas Khadas 184khadas Khadas
185kiebackpeter Kieback & Peter GmbH
185kinetic Kinetic Technologies 186kinetic Kinetic Technologies
186kingnovel Kingnovel Technology Co., Ltd. 187kingnovel Kingnovel Technology Co., Ltd.
187kosagi Sutajio Ko-Usagi PTE Ltd. 188kosagi Sutajio Ko-Usagi PTE Ltd.
diff --git a/Documentation/devicetree/overlay-notes.txt b/Documentation/devicetree/overlay-notes.txt
index a4feb6dde8cd..725fb8d255c1 100644
--- a/Documentation/devicetree/overlay-notes.txt
+++ b/Documentation/devicetree/overlay-notes.txt
@@ -98,6 +98,14 @@ Finally, if you need to remove all overlays in one-go, just call
98of_overlay_remove_all() which will remove every single one in the correct 98of_overlay_remove_all() which will remove every single one in the correct
99order. 99order.
100 100
101In addition, there is the option to register notifiers that get called on
102overlay operations. See of_overlay_notifier_register/unregister and
103enum of_overlay_notify_action for details.
104
105Note that a notifier callback is not supposed to store pointers to a device
106tree node or its content beyond OF_OVERLAY_POST_REMOVE corresponding to the
107respective node it received.
108
101Overlay DTS Format 109Overlay DTS Format
102------------------ 110------------------
103 111
diff --git a/drivers/of/overlay.c b/drivers/of/overlay.c
index b35fe88f1851..7baa53e5b1d7 100644
--- a/drivers/of/overlay.c
+++ b/drivers/of/overlay.c
@@ -102,12 +102,28 @@ static DEFINE_IDR(ovcs_idr);
102 102
103static BLOCKING_NOTIFIER_HEAD(overlay_notify_chain); 103static BLOCKING_NOTIFIER_HEAD(overlay_notify_chain);
104 104
105/**
106 * of_overlay_notifier_register() - Register notifier for overlay operations
107 * @nb: Notifier block to register
108 *
109 * Register for notification on overlay operations on device tree nodes. The
110 * reported actions definied by @of_reconfig_change. The notifier callback
111 * furthermore receives a pointer to the affected device tree node.
112 *
113 * Note that a notifier callback is not supposed to store pointers to a device
114 * tree node or its content beyond @OF_OVERLAY_POST_REMOVE corresponding to the
115 * respective node it received.
116 */
105int of_overlay_notifier_register(struct notifier_block *nb) 117int of_overlay_notifier_register(struct notifier_block *nb)
106{ 118{
107 return blocking_notifier_chain_register(&overlay_notify_chain, nb); 119 return blocking_notifier_chain_register(&overlay_notify_chain, nb);
108} 120}
109EXPORT_SYMBOL_GPL(of_overlay_notifier_register); 121EXPORT_SYMBOL_GPL(of_overlay_notifier_register);
110 122
123/**
124 * of_overlay_notifier_register() - Unregister notifier for overlay operations
125 * @nb: Notifier block to unregister
126 */
111int of_overlay_notifier_unregister(struct notifier_block *nb) 127int of_overlay_notifier_unregister(struct notifier_block *nb)
112{ 128{
113 return blocking_notifier_chain_unregister(&overlay_notify_chain, nb); 129 return blocking_notifier_chain_unregister(&overlay_notify_chain, nb);
@@ -671,17 +687,13 @@ static void free_overlay_changeset(struct overlay_changeset *ovcs)
671 of_node_put(ovcs->fragments[i].overlay); 687 of_node_put(ovcs->fragments[i].overlay);
672 } 688 }
673 kfree(ovcs->fragments); 689 kfree(ovcs->fragments);
674
675 /* 690 /*
676 * TODO 691 * There should be no live pointers into ovcs->overlay_tree and
677 * 692 * ovcs->fdt due to the policy that overlay notifiers are not allowed
678 * would like to: kfree(ovcs->overlay_tree); 693 * to retain pointers into the overlay devicetree.
679 * but can not since drivers may have pointers into this data
680 *
681 * would like to: kfree(ovcs->fdt);
682 * but can not since drivers may have pointers into this data
683 */ 694 */
684 695 kfree(ovcs->overlay_tree);
696 kfree(ovcs->fdt);
685 kfree(ovcs); 697 kfree(ovcs);
686} 698}
687 699
diff --git a/scripts/dtc/checks.c b/scripts/dtc/checks.c
index c07ba4da9e36..815eaf140ab5 100644
--- a/scripts/dtc/checks.c
+++ b/scripts/dtc/checks.c
@@ -787,10 +787,9 @@ static void check_pci_bridge(struct check *c, struct dt_info *dti, struct node *
787 FAIL(c, dti, node, "incorrect #size-cells for PCI bridge"); 787 FAIL(c, dti, node, "incorrect #size-cells for PCI bridge");
788 788
789 prop = get_property(node, "bus-range"); 789 prop = get_property(node, "bus-range");
790 if (!prop) { 790 if (!prop)
791 FAIL(c, dti, node, "missing bus-range for PCI bridge");
792 return; 791 return;
793 } 792
794 if (prop->val.len != (sizeof(cell_t) * 2)) { 793 if (prop->val.len != (sizeof(cell_t) * 2)) {
795 FAIL_PROP(c, dti, node, prop, "value must be 2 cells"); 794 FAIL_PROP(c, dti, node, prop, "value must be 2 cells");
796 return; 795 return;