diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2018-07-18 19:19:36 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2018-07-18 19:19:36 -0400 |
commit | 05df204549c510c7c56e58d25098c448998a0cd5 (patch) | |
tree | 2864b1a840abbcdcbd6720c6a19166029a8921ce | |
parent | 04a1320651757c78277bea48bec97f0d43e6b17b (diff) | |
parent | b9952b5218added5577e4a3443969bc20884cea9 (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"
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 | ||
72 | Optional nodes: | 72 | Optional 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 @@ | |||
1 | Nintendo Wii (Hollywood) GPIO controller | 1 | Nintendo Wii (Hollywood) GPIO controller |
2 | 2 | ||
3 | Required properties: | 3 | Required 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 | ||
17 | Example: | 17 | Example: |
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 | |||
133 | node with the label "power". | 133 | node with the label "power". |
134 | In the second example the consumer device are partitioned across two PM domains, | 134 | In the second example the consumer device are partitioned across two PM domains, |
135 | the first with index 0 and the second with index 1, of a power controller that | 135 | the first with index 0 and the second with index 1, of a power controller that |
136 | is represented by a node with the label "power. | 136 | is represented by a node with the label "power". |
137 | 137 | ||
138 | Optional properties: | 138 | Optional 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: | |||
16 | Optional properties: | 16 | Optional 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 | |||
15 | controller binding usage. | 15 | controller binding usage. |
16 | 16 | ||
17 | Required properties: | 17 | Required 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 | ||
21 | example: | 21 | example: |
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 | ||
40 | Optional property: | 40 | Optional 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 | ||
44 | Child nodes should conform to I2C bus binding as described in i2c.txt. | 44 | Child 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 | ||
16 | Examples: | 16 | Examples: |
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 | */ |
105 | static void of_populate_phandle_cache(void) | 105 | void 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 | 137 | int of_free_phandle_cache(void) |
138 | static 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) | ||
151 | late_initcall_sync(of_free_phandle_cache); | 151 | late_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) |
80 | void of_overlay_mutex_lock(void); | 80 | void of_overlay_mutex_lock(void); |
81 | void of_overlay_mutex_unlock(void); | 81 | void of_overlay_mutex_unlock(void); |
82 | int of_free_phandle_cache(void); | ||
83 | void of_populate_phandle_cache(void); | ||
82 | #else | 84 | #else |
83 | static inline void of_overlay_mutex_lock(void) {}; | 85 | static inline void of_overlay_mutex_lock(void) {}; |
84 | static inline void of_overlay_mutex_unlock(void) {}; | 86 | static 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; |