Commit 76787cf4 authored by Linus Torvalds's avatar Linus Torvalds

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

Pull DeviceTree fixes from Rob Herring:

 - fix path to display timing binding

 - fix some typos in interrupt-names and clock-names

 - fix a resource leak on overlay removal

 - add missing documentation for R8A77965 DMA, serial, and net

 - cleanup sunxi pinctrl description

 - add Kieback & Peter GmbH vendor prefix

* tag 'devicetree-fixes-for-4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux:
  dt-bindings: panel: lvds: Fix path to display timing bindings
  dt-bindings: mvebu-uart: DT fix s/interrupts-names/interrupt-names/
  dt-bindings: meson-uart: DT fix s/clocks-names/clock-names/
  of: overlay: Stop leaking resources on overlay removal
  dtc: checks: drop warning for missing PCI bridge bus-range
  dt-bindings: dmaengine: rcar-dmac: document R8A77965 support
  dt-bindings: serial: sh-sci: Add support for r8a77965 (H)SCIF
  dt-bindings: net: ravb: Add support for r8a77965 SoC
  dt-bindings: pinctrl: sunxi: Fix reference to driver
  doc: Add vendor prefix for Kieback & Peter GmbH
parents 75bc37fe f1303070
...@@ -38,7 +38,7 @@ Display Timings ...@@ -38,7 +38,7 @@ Display Timings
require specific display timings. The panel-timing subnode expresses those require specific display timings. The panel-timing subnode expresses those
timings as specified in the timing subnode section of the display timing timings as specified in the timing subnode section of the display timing
bindings defined in bindings defined in
Documentation/devicetree/bindings/display/display-timing.txt. Documentation/devicetree/bindings/display/panel/display-timing.txt.
Connectivity Connectivity
......
...@@ -26,6 +26,7 @@ Required Properties: ...@@ -26,6 +26,7 @@ Required Properties:
- "renesas,dmac-r8a7794" (R-Car E2) - "renesas,dmac-r8a7794" (R-Car E2)
- "renesas,dmac-r8a7795" (R-Car H3) - "renesas,dmac-r8a7795" (R-Car H3)
- "renesas,dmac-r8a7796" (R-Car M3-W) - "renesas,dmac-r8a7796" (R-Car M3-W)
- "renesas,dmac-r8a77965" (R-Car M3-N)
- "renesas,dmac-r8a77970" (R-Car V3M) - "renesas,dmac-r8a77970" (R-Car V3M)
- "renesas,dmac-r8a77980" (R-Car V3H) - "renesas,dmac-r8a77980" (R-Car V3H)
......
...@@ -18,6 +18,7 @@ Required properties: ...@@ -18,6 +18,7 @@ Required properties:
- "renesas,etheravb-r8a7795" for the R8A7795 SoC. - "renesas,etheravb-r8a7795" for the R8A7795 SoC.
- "renesas,etheravb-r8a7796" for the R8A7796 SoC. - "renesas,etheravb-r8a7796" for the R8A7796 SoC.
- "renesas,etheravb-r8a77965" for the R8A77965 SoC.
- "renesas,etheravb-r8a77970" for the R8A77970 SoC. - "renesas,etheravb-r8a77970" for the R8A77970 SoC.
- "renesas,etheravb-r8a77980" for the R8A77980 SoC. - "renesas,etheravb-r8a77980" for the R8A77980 SoC.
- "renesas,etheravb-r8a77995" for the R8A77995 SoC. - "renesas,etheravb-r8a77995" for the R8A77995 SoC.
......
...@@ -56,9 +56,9 @@ pins it needs, and how they should be configured, with regard to muxer ...@@ -56,9 +56,9 @@ pins it needs, and how they should be configured, with regard to muxer
configuration, drive strength and pullups. If one of these options is configuration, drive strength and pullups. If one of these options is
not set, its actual value will be unspecified. not set, its actual value will be unspecified.
This driver supports the generic pin multiplexing and configuration Allwinner A1X Pin Controller supports the generic pin multiplexing and
bindings. For details on each properties, you can refer to configuration bindings. For details on each properties, you can refer to
./pinctrl-bindings.txt. ./pinctrl-bindings.txt.
Required sub-node properties: Required sub-node properties:
- pins - pins
......
...@@ -43,6 +43,8 @@ Required properties: ...@@ -43,6 +43,8 @@ Required properties:
- "renesas,hscif-r8a7795" for R8A7795 (R-Car H3) HSCIF compatible UART. - "renesas,hscif-r8a7795" for R8A7795 (R-Car H3) HSCIF compatible UART.
- "renesas,scif-r8a7796" for R8A7796 (R-Car M3-W) SCIF compatible UART. - "renesas,scif-r8a7796" for R8A7796 (R-Car M3-W) SCIF compatible UART.
- "renesas,hscif-r8a7796" for R8A7796 (R-Car M3-W) HSCIF compatible UART. - "renesas,hscif-r8a7796" for R8A7796 (R-Car M3-W) HSCIF compatible UART.
- "renesas,scif-r8a77965" for R8A77965 (R-Car M3-N) SCIF compatible UART.
- "renesas,hscif-r8a77965" for R8A77965 (R-Car M3-N) HSCIF compatible UART.
- "renesas,scif-r8a77970" for R8A77970 (R-Car V3M) SCIF compatible UART. - "renesas,scif-r8a77970" for R8A77970 (R-Car V3M) SCIF compatible UART.
- "renesas,hscif-r8a77970" for R8A77970 (R-Car V3M) HSCIF compatible UART. - "renesas,hscif-r8a77970" for R8A77970 (R-Car V3M) HSCIF compatible UART.
- "renesas,scif-r8a77980" for R8A77980 (R-Car V3H) SCIF compatible UART. - "renesas,scif-r8a77980" for R8A77980 (R-Car V3H) SCIF compatible UART.
......
...@@ -182,6 +182,7 @@ karo Ka-Ro electronics GmbH ...@@ -182,6 +182,7 @@ karo Ka-Ro electronics GmbH
keithkoep Keith & Koep GmbH keithkoep Keith & Koep GmbH
keymile Keymile GmbH keymile Keymile GmbH
khadas Khadas khadas Khadas
kiebackpeter Kieback & Peter GmbH
kinetic Kinetic Technologies kinetic Kinetic Technologies
kingnovel Kingnovel Technology Co., Ltd. kingnovel Kingnovel Technology Co., Ltd.
kosagi Sutajio Ko-Usagi PTE Ltd. kosagi Sutajio Ko-Usagi PTE Ltd.
......
...@@ -98,6 +98,14 @@ Finally, if you need to remove all overlays in one-go, just call ...@@ -98,6 +98,14 @@ Finally, if you need to remove all overlays in one-go, just call
of_overlay_remove_all() which will remove every single one in the correct of_overlay_remove_all() which will remove every single one in the correct
order. order.
In addition, there is the option to register notifiers that get called on
overlay operations. See of_overlay_notifier_register/unregister and
enum of_overlay_notify_action for details.
Note that a notifier callback is not supposed to store pointers to a device
tree node or its content beyond OF_OVERLAY_POST_REMOVE corresponding to the
respective node it received.
Overlay DTS Format Overlay DTS Format
------------------ ------------------
......
...@@ -102,12 +102,28 @@ static DEFINE_IDR(ovcs_idr); ...@@ -102,12 +102,28 @@ static DEFINE_IDR(ovcs_idr);
static BLOCKING_NOTIFIER_HEAD(overlay_notify_chain); static BLOCKING_NOTIFIER_HEAD(overlay_notify_chain);
/**
* of_overlay_notifier_register() - Register notifier for overlay operations
* @nb: Notifier block to register
*
* Register for notification on overlay operations on device tree nodes. The
* reported actions definied by @of_reconfig_change. The notifier callback
* furthermore receives a pointer to the affected device tree node.
*
* Note that a notifier callback is not supposed to store pointers to a device
* tree node or its content beyond @OF_OVERLAY_POST_REMOVE corresponding to the
* respective node it received.
*/
int of_overlay_notifier_register(struct notifier_block *nb) int of_overlay_notifier_register(struct notifier_block *nb)
{ {
return blocking_notifier_chain_register(&overlay_notify_chain, nb); return blocking_notifier_chain_register(&overlay_notify_chain, nb);
} }
EXPORT_SYMBOL_GPL(of_overlay_notifier_register); EXPORT_SYMBOL_GPL(of_overlay_notifier_register);
/**
* of_overlay_notifier_register() - Unregister notifier for overlay operations
* @nb: Notifier block to unregister
*/
int of_overlay_notifier_unregister(struct notifier_block *nb) int of_overlay_notifier_unregister(struct notifier_block *nb)
{ {
return blocking_notifier_chain_unregister(&overlay_notify_chain, nb); return blocking_notifier_chain_unregister(&overlay_notify_chain, nb);
...@@ -671,17 +687,13 @@ static void free_overlay_changeset(struct overlay_changeset *ovcs) ...@@ -671,17 +687,13 @@ static void free_overlay_changeset(struct overlay_changeset *ovcs)
of_node_put(ovcs->fragments[i].overlay); of_node_put(ovcs->fragments[i].overlay);
} }
kfree(ovcs->fragments); kfree(ovcs->fragments);
/* /*
* TODO * There should be no live pointers into ovcs->overlay_tree and
* * ovcs->fdt due to the policy that overlay notifiers are not allowed
* would like to: kfree(ovcs->overlay_tree); * to retain pointers into the overlay devicetree.
* but can not since drivers may have pointers into this data
*
* would like to: kfree(ovcs->fdt);
* but can not since drivers may have pointers into this data
*/ */
kfree(ovcs->overlay_tree);
kfree(ovcs->fdt);
kfree(ovcs); kfree(ovcs);
} }
......
...@@ -787,10 +787,9 @@ static void check_pci_bridge(struct check *c, struct dt_info *dti, struct node * ...@@ -787,10 +787,9 @@ static void check_pci_bridge(struct check *c, struct dt_info *dti, struct node *
FAIL(c, dti, node, "incorrect #size-cells for PCI bridge"); FAIL(c, dti, node, "incorrect #size-cells for PCI bridge");
prop = get_property(node, "bus-range"); prop = get_property(node, "bus-range");
if (!prop) { if (!prop)
FAIL(c, dti, node, "missing bus-range for PCI bridge");
return; return;
}
if (prop->val.len != (sizeof(cell_t) * 2)) { if (prop->val.len != (sizeof(cell_t) * 2)) {
FAIL_PROP(c, dti, node, prop, "value must be 2 cells"); FAIL_PROP(c, dti, node, prop, "value must be 2 cells");
return; return;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment