aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2018-07-18 19:19:36 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2018-07-18 19:19:36 -0400
commit05df204549c510c7c56e58d25098c448998a0cd5 (patch)
tree2864b1a840abbcdcbd6720c6a19166029a8921ce
parent04a1320651757c78277bea48bec97f0d43e6b17b (diff)
parentb9952b5218added5577e4a3443969bc20884cea9 (diff)
Merge tag 'devicetree-fixes-for-4.18' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux
Pull DeviceTree fixes from Rob Herring: - Fix phandle cache to work with overlays - Correct the default clock-frequency for QCom geni-i2c - Binding doc quote and spelling fixes * tag 'devicetree-fixes-for-4.18' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: of: overlay: update phandle cache on overlay apply and remove dt-bindings: Fix unbalanced quotation marks dt-bindings: soc: qcom: Fix default clock-freq for qcom,geni-i2c dt-bindings: w1-gpio: Remove unneeded unit address Documentation: devicetree: tilcdc: fix spelling mistake "suppors" -> "supports"
-rw-r--r--Documentation/devicetree/bindings/arm/samsung/samsung-boards.txt2
-rw-r--r--Documentation/devicetree/bindings/display/tilcdc/tilcdc.txt2
-rw-r--r--Documentation/devicetree/bindings/gpio/nintendo,hollywood-gpio.txt2
-rw-r--r--Documentation/devicetree/bindings/input/touchscreen/hideep.txt2
-rw-r--r--Documentation/devicetree/bindings/interrupt-controller/nvidia,tegra20-ictlr.txt2
-rw-r--r--Documentation/devicetree/bindings/interrupt-controller/st,stm32-exti.txt2
-rw-r--r--Documentation/devicetree/bindings/mips/brcm/soc.txt2
-rw-r--r--Documentation/devicetree/bindings/net/fsl-fman.txt2
-rw-r--r--Documentation/devicetree/bindings/power/power_domain.txt2
-rw-r--r--Documentation/devicetree/bindings/regulator/tps65090.txt2
-rw-r--r--Documentation/devicetree/bindings/reset/st,sti-softreset.txt2
-rw-r--r--Documentation/devicetree/bindings/soc/qcom/qcom,geni-se.txt2
-rw-r--r--Documentation/devicetree/bindings/sound/qcom,apq8016-sbc.txt2
-rw-r--r--Documentation/devicetree/bindings/sound/qcom,apq8096.txt2
-rw-r--r--Documentation/devicetree/bindings/w1/w1-gpio.txt2
-rw-r--r--drivers/of/base.c6
-rw-r--r--drivers/of/of_private.h2
-rw-r--r--drivers/of/overlay.c11
18 files changed, 31 insertions, 18 deletions
diff --git a/Documentation/devicetree/bindings/arm/samsung/samsung-boards.txt b/Documentation/devicetree/bindings/arm/samsung/samsung-boards.txt
index bdadc3da9556..6970f30a3770 100644
--- a/Documentation/devicetree/bindings/arm/samsung/samsung-boards.txt
+++ b/Documentation/devicetree/bindings/arm/samsung/samsung-boards.txt
@@ -66,7 +66,7 @@ Required root node properties:
66 - "insignal,arndale-octa" - for Exynos5420-based Insignal Arndale 66 - "insignal,arndale-octa" - for Exynos5420-based Insignal Arndale
67 Octa board. 67 Octa board.
68 - "insignal,origen" - for Exynos4210-based Insignal Origen board. 68 - "insignal,origen" - for Exynos4210-based Insignal Origen board.
69 - "insignal,origen4412 - for Exynos4412-based Insignal Origen board. 69 - "insignal,origen4412" - for Exynos4412-based Insignal Origen board.
70 70
71 71
72Optional nodes: 72Optional nodes:
diff --git a/Documentation/devicetree/bindings/display/tilcdc/tilcdc.txt b/Documentation/devicetree/bindings/display/tilcdc/tilcdc.txt
index 6fddb4f4f71a..3055d5c2c04e 100644
--- a/Documentation/devicetree/bindings/display/tilcdc/tilcdc.txt
+++ b/Documentation/devicetree/bindings/display/tilcdc/tilcdc.txt
@@ -36,7 +36,7 @@ Optional nodes:
36 36
37 - port/ports: to describe a connection to an external encoder. The 37 - port/ports: to describe a connection to an external encoder. The
38 binding follows Documentation/devicetree/bindings/graph.txt and 38 binding follows Documentation/devicetree/bindings/graph.txt and
39 suppors a single port with a single endpoint. 39 supports a single port with a single endpoint.
40 40
41 - See also Documentation/devicetree/bindings/display/tilcdc/panel.txt and 41 - See also Documentation/devicetree/bindings/display/tilcdc/panel.txt and
42 Documentation/devicetree/bindings/display/tilcdc/tfp410.txt for connecting 42 Documentation/devicetree/bindings/display/tilcdc/tfp410.txt for connecting
diff --git a/Documentation/devicetree/bindings/gpio/nintendo,hollywood-gpio.txt b/Documentation/devicetree/bindings/gpio/nintendo,hollywood-gpio.txt
index 20fc72d9e61e..45a61b462287 100644
--- a/Documentation/devicetree/bindings/gpio/nintendo,hollywood-gpio.txt
+++ b/Documentation/devicetree/bindings/gpio/nintendo,hollywood-gpio.txt
@@ -1,7 +1,7 @@
1Nintendo Wii (Hollywood) GPIO controller 1Nintendo Wii (Hollywood) GPIO controller
2 2
3Required properties: 3Required properties:
4- compatible: "nintendo,hollywood-gpio 4- compatible: "nintendo,hollywood-gpio"
5- reg: Physical base address and length of the controller's registers. 5- reg: Physical base address and length of the controller's registers.
6- gpio-controller: Marks the device node as a GPIO controller. 6- gpio-controller: Marks the device node as a GPIO controller.
7- #gpio-cells: Should be <2>. The first cell is the pin number and the 7- #gpio-cells: Should be <2>. The first cell is the pin number and the
diff --git a/Documentation/devicetree/bindings/input/touchscreen/hideep.txt b/Documentation/devicetree/bindings/input/touchscreen/hideep.txt
index 121d9b7c79a2..1063c30d53f7 100644
--- a/Documentation/devicetree/bindings/input/touchscreen/hideep.txt
+++ b/Documentation/devicetree/bindings/input/touchscreen/hideep.txt
@@ -32,7 +32,7 @@ i2c@00000000 {
32 reg = <0x6c>; 32 reg = <0x6c>;
33 interrupt-parent = <&gpx1>; 33 interrupt-parent = <&gpx1>;
34 interrupts = <2 IRQ_TYPE_LEVEL_LOW>; 34 interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
35 vdd-supply = <&ldo15_reg>"; 35 vdd-supply = <&ldo15_reg>;
36 vid-supply = <&ldo18_reg>; 36 vid-supply = <&ldo18_reg>;
37 reset-gpios = <&gpx1 5 0>; 37 reset-gpios = <&gpx1 5 0>;
38 touchscreen-size-x = <1080>; 38 touchscreen-size-x = <1080>;
diff --git a/Documentation/devicetree/bindings/interrupt-controller/nvidia,tegra20-ictlr.txt b/Documentation/devicetree/bindings/interrupt-controller/nvidia,tegra20-ictlr.txt
index 1099fe0788fa..f246ccbf8838 100644
--- a/Documentation/devicetree/bindings/interrupt-controller/nvidia,tegra20-ictlr.txt
+++ b/Documentation/devicetree/bindings/interrupt-controller/nvidia,tegra20-ictlr.txt
@@ -15,7 +15,7 @@ Required properties:
15 include "nvidia,tegra30-ictlr". 15 include "nvidia,tegra30-ictlr".
16- reg : Specifies base physical address and size of the registers. 16- reg : Specifies base physical address and size of the registers.
17 Each controller must be described separately (Tegra20 has 4 of them, 17 Each controller must be described separately (Tegra20 has 4 of them,
18 whereas Tegra30 and later have 5" 18 whereas Tegra30 and later have 5).
19- interrupt-controller : Identifies the node as an interrupt controller. 19- interrupt-controller : Identifies the node as an interrupt controller.
20- #interrupt-cells : Specifies the number of cells needed to encode an 20- #interrupt-cells : Specifies the number of cells needed to encode an
21 interrupt source. The value must be 3. 21 interrupt source. The value must be 3.
diff --git a/Documentation/devicetree/bindings/interrupt-controller/st,stm32-exti.txt b/Documentation/devicetree/bindings/interrupt-controller/st,stm32-exti.txt
index 136bd612bd83..6a36bf66d932 100644
--- a/Documentation/devicetree/bindings/interrupt-controller/st,stm32-exti.txt
+++ b/Documentation/devicetree/bindings/interrupt-controller/st,stm32-exti.txt
@@ -12,7 +12,7 @@ Required properties:
12 specifier, shall be 2 12 specifier, shall be 2
13- interrupts: interrupts references to primary interrupt controller 13- interrupts: interrupts references to primary interrupt controller
14 (only needed for exti controller with multiple exti under 14 (only needed for exti controller with multiple exti under
15 same parent interrupt: st,stm32-exti and st,stm32h7-exti") 15 same parent interrupt: st,stm32-exti and st,stm32h7-exti)
16 16
17Example: 17Example:
18 18
diff --git a/Documentation/devicetree/bindings/mips/brcm/soc.txt b/Documentation/devicetree/bindings/mips/brcm/soc.txt
index 356c29789cf5..3a66d3c483e1 100644
--- a/Documentation/devicetree/bindings/mips/brcm/soc.txt
+++ b/Documentation/devicetree/bindings/mips/brcm/soc.txt
@@ -152,7 +152,7 @@ Required properties:
152- compatible : should contain one of: 152- compatible : should contain one of:
153 "brcm,bcm7425-timers" 153 "brcm,bcm7425-timers"
154 "brcm,bcm7429-timers" 154 "brcm,bcm7429-timers"
155 "brcm,bcm7435-timers and 155 "brcm,bcm7435-timers" and
156 "brcm,brcmstb-timers" 156 "brcm,brcmstb-timers"
157- reg : the timers register range 157- reg : the timers register range
158- interrupts : the interrupt line for this timer block 158- interrupts : the interrupt line for this timer block
diff --git a/Documentation/devicetree/bindings/net/fsl-fman.txt b/Documentation/devicetree/bindings/net/fsl-fman.txt
index df873d1f3b7c..f8c33890bc29 100644
--- a/Documentation/devicetree/bindings/net/fsl-fman.txt
+++ b/Documentation/devicetree/bindings/net/fsl-fman.txt
@@ -238,7 +238,7 @@ PROPERTIES
238 Must include one of the following: 238 Must include one of the following:
239 - "fsl,fman-dtsec" for dTSEC MAC 239 - "fsl,fman-dtsec" for dTSEC MAC
240 - "fsl,fman-xgec" for XGEC MAC 240 - "fsl,fman-xgec" for XGEC MAC
241 - "fsl,fman-memac for mEMAC MAC 241 - "fsl,fman-memac" for mEMAC MAC
242 242
243- cell-index 243- cell-index
244 Usage: required 244 Usage: required
diff --git a/Documentation/devicetree/bindings/power/power_domain.txt b/Documentation/devicetree/bindings/power/power_domain.txt
index 9b387f861aed..7dec508987c7 100644
--- a/Documentation/devicetree/bindings/power/power_domain.txt
+++ b/Documentation/devicetree/bindings/power/power_domain.txt
@@ -133,7 +133,7 @@ located inside a PM domain with index 0 of a power controller represented by a
133node with the label "power". 133node with the label "power".
134In the second example the consumer device are partitioned across two PM domains, 134In the second example the consumer device are partitioned across two PM domains,
135the first with index 0 and the second with index 1, of a power controller that 135the first with index 0 and the second with index 1, of a power controller that
136is represented by a node with the label "power. 136is represented by a node with the label "power".
137 137
138Optional properties: 138Optional properties:
139- required-opps: This contains phandle to an OPP node in another device's OPP 139- required-opps: This contains phandle to an OPP node in another device's OPP
diff --git a/Documentation/devicetree/bindings/regulator/tps65090.txt b/Documentation/devicetree/bindings/regulator/tps65090.txt
index ca69f5e3040c..ae326f263597 100644
--- a/Documentation/devicetree/bindings/regulator/tps65090.txt
+++ b/Documentation/devicetree/bindings/regulator/tps65090.txt
@@ -16,7 +16,7 @@ Required properties:
16Optional properties: 16Optional properties:
17- ti,enable-ext-control: This is applicable for DCDC1, DCDC2 and DCDC3. 17- ti,enable-ext-control: This is applicable for DCDC1, DCDC2 and DCDC3.
18 If DCDCs are externally controlled then this property should be there. 18 If DCDCs are externally controlled then this property should be there.
19- "dcdc-ext-control-gpios: This is applicable for DCDC1, DCDC2 and DCDC3. 19- dcdc-ext-control-gpios: This is applicable for DCDC1, DCDC2 and DCDC3.
20 If DCDCs are externally controlled and if it is from GPIO then GPIO 20 If DCDCs are externally controlled and if it is from GPIO then GPIO
21 number should be provided. If it is externally controlled and no GPIO 21 number should be provided. If it is externally controlled and no GPIO
22 entry then driver will just configure this rails as external control 22 entry then driver will just configure this rails as external control
diff --git a/Documentation/devicetree/bindings/reset/st,sti-softreset.txt b/Documentation/devicetree/bindings/reset/st,sti-softreset.txt
index a21658f18fe6..3661e6153a92 100644
--- a/Documentation/devicetree/bindings/reset/st,sti-softreset.txt
+++ b/Documentation/devicetree/bindings/reset/st,sti-softreset.txt
@@ -15,7 +15,7 @@ Please refer to reset.txt in this directory for common reset
15controller binding usage. 15controller binding usage.
16 16
17Required properties: 17Required properties:
18- compatible: Should be st,stih407-softreset"; 18- compatible: Should be "st,stih407-softreset";
19- #reset-cells: 1, see below 19- #reset-cells: 1, see below
20 20
21example: 21example:
diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,geni-se.txt b/Documentation/devicetree/bindings/soc/qcom/qcom,geni-se.txt
index d330c73de9a2..68b7d6207e3d 100644
--- a/Documentation/devicetree/bindings/soc/qcom/qcom,geni-se.txt
+++ b/Documentation/devicetree/bindings/soc/qcom/qcom,geni-se.txt
@@ -39,7 +39,7 @@ Required properties:
39 39
40Optional property: 40Optional property:
41- clock-frequency: Desired I2C bus clock frequency in Hz. 41- clock-frequency: Desired I2C bus clock frequency in Hz.
42 When missing default to 400000Hz. 42 When missing default to 100000Hz.
43 43
44Child nodes should conform to I2C bus binding as described in i2c.txt. 44Child nodes should conform to I2C bus binding as described in i2c.txt.
45 45
diff --git a/Documentation/devicetree/bindings/sound/qcom,apq8016-sbc.txt b/Documentation/devicetree/bindings/sound/qcom,apq8016-sbc.txt
index 6a4aadc4ce06..84b28dbe9f15 100644
--- a/Documentation/devicetree/bindings/sound/qcom,apq8016-sbc.txt
+++ b/Documentation/devicetree/bindings/sound/qcom,apq8016-sbc.txt
@@ -30,7 +30,7 @@ Required properties:
30 30
31 Board connectors: 31 Board connectors:
32 * Headset Mic 32 * Headset Mic
33 * Secondary Mic", 33 * Secondary Mic
34 * DMIC 34 * DMIC
35 * Ext Spk 35 * Ext Spk
36 36
diff --git a/Documentation/devicetree/bindings/sound/qcom,apq8096.txt b/Documentation/devicetree/bindings/sound/qcom,apq8096.txt
index aa54e49fc8a2..c7600a93ab39 100644
--- a/Documentation/devicetree/bindings/sound/qcom,apq8096.txt
+++ b/Documentation/devicetree/bindings/sound/qcom,apq8096.txt
@@ -35,7 +35,7 @@ This binding describes the APQ8096 sound card, which uses qdsp for audio.
35 "Digital Mic3" 35 "Digital Mic3"
36 36
37 Audio pins and MicBias on WCD9335 Codec: 37 Audio pins and MicBias on WCD9335 Codec:
38 "MIC_BIAS1 38 "MIC_BIAS1"
39 "MIC_BIAS2" 39 "MIC_BIAS2"
40 "MIC_BIAS3" 40 "MIC_BIAS3"
41 "MIC_BIAS4" 41 "MIC_BIAS4"
diff --git a/Documentation/devicetree/bindings/w1/w1-gpio.txt b/Documentation/devicetree/bindings/w1/w1-gpio.txt
index 6e09c35d9f1a..37091902a021 100644
--- a/Documentation/devicetree/bindings/w1/w1-gpio.txt
+++ b/Documentation/devicetree/bindings/w1/w1-gpio.txt
@@ -15,7 +15,7 @@ Optional properties:
15 15
16Examples: 16Examples:
17 17
18 onewire@0 { 18 onewire {
19 compatible = "w1-gpio"; 19 compatible = "w1-gpio";
20 gpios = <&gpio 126 0>, <&gpio 105 0>; 20 gpios = <&gpio 126 0>, <&gpio 105 0>;
21 }; 21 };
diff --git a/drivers/of/base.c b/drivers/of/base.c
index 848f549164cd..466e3c8582f0 100644
--- a/drivers/of/base.c
+++ b/drivers/of/base.c
@@ -102,7 +102,7 @@ static u32 phandle_cache_mask;
102 * - the phandle lookup overhead reduction provided by the cache 102 * - the phandle lookup overhead reduction provided by the cache
103 * will likely be less 103 * will likely be less
104 */ 104 */
105static void of_populate_phandle_cache(void) 105void of_populate_phandle_cache(void)
106{ 106{
107 unsigned long flags; 107 unsigned long flags;
108 u32 cache_entries; 108 u32 cache_entries;
@@ -134,8 +134,7 @@ out:
134 raw_spin_unlock_irqrestore(&devtree_lock, flags); 134 raw_spin_unlock_irqrestore(&devtree_lock, flags);
135} 135}
136 136
137#ifndef CONFIG_MODULES 137int of_free_phandle_cache(void)
138static int __init of_free_phandle_cache(void)
139{ 138{
140 unsigned long flags; 139 unsigned long flags;
141 140
@@ -148,6 +147,7 @@ static int __init of_free_phandle_cache(void)
148 147
149 return 0; 148 return 0;
150} 149}
150#if !defined(CONFIG_MODULES)
151late_initcall_sync(of_free_phandle_cache); 151late_initcall_sync(of_free_phandle_cache);
152#endif 152#endif
153 153
diff --git a/drivers/of/of_private.h b/drivers/of/of_private.h
index 891d780c076a..216175d11d3d 100644
--- a/drivers/of/of_private.h
+++ b/drivers/of/of_private.h
@@ -79,6 +79,8 @@ int of_resolve_phandles(struct device_node *tree);
79#if defined(CONFIG_OF_OVERLAY) 79#if defined(CONFIG_OF_OVERLAY)
80void of_overlay_mutex_lock(void); 80void of_overlay_mutex_lock(void);
81void of_overlay_mutex_unlock(void); 81void of_overlay_mutex_unlock(void);
82int of_free_phandle_cache(void);
83void of_populate_phandle_cache(void);
82#else 84#else
83static inline void of_overlay_mutex_lock(void) {}; 85static inline void of_overlay_mutex_lock(void) {};
84static inline void of_overlay_mutex_unlock(void) {}; 86static inline void of_overlay_mutex_unlock(void) {};
diff --git a/drivers/of/overlay.c b/drivers/of/overlay.c
index 7baa53e5b1d7..eda57ef12fd0 100644
--- a/drivers/of/overlay.c
+++ b/drivers/of/overlay.c
@@ -804,6 +804,8 @@ static int of_overlay_apply(const void *fdt, struct device_node *tree,
804 goto err_free_overlay_changeset; 804 goto err_free_overlay_changeset;
805 } 805 }
806 806
807 of_populate_phandle_cache();
808
807 ret = __of_changeset_apply_notify(&ovcs->cset); 809 ret = __of_changeset_apply_notify(&ovcs->cset);
808 if (ret) 810 if (ret)
809 pr_err("overlay changeset entry notify error %d\n", ret); 811 pr_err("overlay changeset entry notify error %d\n", ret);
@@ -1046,8 +1048,17 @@ int of_overlay_remove(int *ovcs_id)
1046 1048
1047 list_del(&ovcs->ovcs_list); 1049 list_del(&ovcs->ovcs_list);
1048 1050
1051 /*
1052 * Disable phandle cache. Avoids race condition that would arise
1053 * from removing cache entry when the associated node is deleted.
1054 */
1055 of_free_phandle_cache();
1056
1049 ret_apply = 0; 1057 ret_apply = 0;
1050 ret = __of_changeset_revert_entries(&ovcs->cset, &ret_apply); 1058 ret = __of_changeset_revert_entries(&ovcs->cset, &ret_apply);
1059
1060 of_populate_phandle_cache();
1061
1051 if (ret) { 1062 if (ret) {
1052 if (ret_apply) 1063 if (ret_apply)
1053 devicetree_state_flags |= DTSF_REVERT_FAIL; 1064 devicetree_state_flags |= DTSF_REVERT_FAIL;