diff options
author | Arnd Bergmann <arnd@arndb.de> | 2019-03-25 12:06:41 -0400 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2019-03-25 12:06:41 -0400 |
commit | 2e8c54db3b69f387a9651ca807a33506ec30fe87 (patch) | |
tree | 573f6706344bd2ead39474486ff54fc6d620f834 | |
parent | 0cee41d4d0fe781c1acc8db48871f1a759b1f8b9 (diff) | |
parent | 507aaeeef80d70c46bdf07cda49234b36c2bbdcb (diff) |
Merge tag 'imx-fixes-5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into arm/fixes
i.MX fixes for 5.1:
- Correct phy mode setting of imx6dl-yapp4 board to fix a problem
caused by commit 5ecdd77c61c8 ("net: dsa: qca8k: disable delay
for RGMII mode").
- Add a missing of_node_put call to fix leaked reference detected by
coccinelle in imx51 machine code.
- Fix imx6q cpuidle driver bug which causes that CPU might not wake up
at expected time.
- Increase reset duration of Ethernet phy Micrel KSZ9031RNX to fix
transmission timeouts error seen on imx6qdl-phytec-pfla02 board.
- Correct SPDX License Identifier style for imx6ull-pinfunc-snvs.h.
- Fix 'bus-witdh' typos in imx6qdl-icore-rqs.dtsi.
- Correct pseudo PHY address of switch device for imx6dl-yapp4 board.
- Update PWM driver options in imx defconfig files due to the change
on driver part.
* tag 'imx-fixes-5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux:
ARM: imx_v4_v5_defconfig: enable PWM driver
ARM: imx_v6_v7_defconfig: continue compiling the pwm driver
ARM: dts: imx6dl-yapp4: Use correct pseudo PHY address for the switch
ARM: dts: imx6qdl: Fix typo in imx6qdl-icore-rqs.dtsi
ARM: dts: imx6ull: Use the correct style for SPDX License Identifier
ARM: dts: pfla02: increase phy reset duration
ARM: imx6q: cpuidle: fix bug that CPU might not wake up at expected time
ARM: imx51: fix a leaked reference by adding missing of_node_put
ARM: dts: imx6dl-yapp4: Use rgmii-id phy mode on the cpu port
-rw-r--r-- | arch/arm/boot/dts/imx6dl-yapp4-common.dtsi | 6 | ||||
-rw-r--r-- | arch/arm/boot/dts/imx6qdl-icore-rqs.dtsi | 4 | ||||
-rw-r--r-- | arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi | 1 | ||||
-rw-r--r-- | arch/arm/boot/dts/imx6ull-pinfunc-snvs.h | 2 | ||||
-rw-r--r-- | arch/arm/configs/imx_v4_v5_defconfig | 3 | ||||
-rw-r--r-- | arch/arm/configs/imx_v6_v7_defconfig | 2 | ||||
-rw-r--r-- | arch/arm/mach-imx/cpuidle-imx6q.c | 27 | ||||
-rw-r--r-- | arch/arm/mach-imx/mach-imx51.c | 1 |
8 files changed, 22 insertions, 24 deletions
diff --git a/arch/arm/boot/dts/imx6dl-yapp4-common.dtsi b/arch/arm/boot/dts/imx6dl-yapp4-common.dtsi index b715ab0fa1ff..e8d800fec637 100644 --- a/arch/arm/boot/dts/imx6dl-yapp4-common.dtsi +++ b/arch/arm/boot/dts/imx6dl-yapp4-common.dtsi | |||
@@ -114,9 +114,9 @@ | |||
114 | reg = <2>; | 114 | reg = <2>; |
115 | }; | 115 | }; |
116 | 116 | ||
117 | switch@0 { | 117 | switch@10 { |
118 | compatible = "qca,qca8334"; | 118 | compatible = "qca,qca8334"; |
119 | reg = <0>; | 119 | reg = <10>; |
120 | 120 | ||
121 | switch_ports: ports { | 121 | switch_ports: ports { |
122 | #address-cells = <1>; | 122 | #address-cells = <1>; |
@@ -125,7 +125,7 @@ | |||
125 | ethphy0: port@0 { | 125 | ethphy0: port@0 { |
126 | reg = <0>; | 126 | reg = <0>; |
127 | label = "cpu"; | 127 | label = "cpu"; |
128 | phy-mode = "rgmii"; | 128 | phy-mode = "rgmii-id"; |
129 | ethernet = <&fec>; | 129 | ethernet = <&fec>; |
130 | 130 | ||
131 | fixed-link { | 131 | fixed-link { |
diff --git a/arch/arm/boot/dts/imx6qdl-icore-rqs.dtsi b/arch/arm/boot/dts/imx6qdl-icore-rqs.dtsi index 1d1b4bd0670f..a4217f564a53 100644 --- a/arch/arm/boot/dts/imx6qdl-icore-rqs.dtsi +++ b/arch/arm/boot/dts/imx6qdl-icore-rqs.dtsi | |||
@@ -264,7 +264,7 @@ | |||
264 | pinctrl-2 = <&pinctrl_usdhc3_200mhz>; | 264 | pinctrl-2 = <&pinctrl_usdhc3_200mhz>; |
265 | vmcc-supply = <®_sd3_vmmc>; | 265 | vmcc-supply = <®_sd3_vmmc>; |
266 | cd-gpios = <&gpio1 1 GPIO_ACTIVE_LOW>; | 266 | cd-gpios = <&gpio1 1 GPIO_ACTIVE_LOW>; |
267 | bus-witdh = <4>; | 267 | bus-width = <4>; |
268 | no-1-8-v; | 268 | no-1-8-v; |
269 | status = "okay"; | 269 | status = "okay"; |
270 | }; | 270 | }; |
@@ -275,7 +275,7 @@ | |||
275 | pinctrl-1 = <&pinctrl_usdhc4_100mhz>; | 275 | pinctrl-1 = <&pinctrl_usdhc4_100mhz>; |
276 | pinctrl-2 = <&pinctrl_usdhc4_200mhz>; | 276 | pinctrl-2 = <&pinctrl_usdhc4_200mhz>; |
277 | vmcc-supply = <®_sd4_vmmc>; | 277 | vmcc-supply = <®_sd4_vmmc>; |
278 | bus-witdh = <8>; | 278 | bus-width = <8>; |
279 | no-1-8-v; | 279 | no-1-8-v; |
280 | non-removable; | 280 | non-removable; |
281 | status = "okay"; | 281 | status = "okay"; |
diff --git a/arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi b/arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi index 433bf09a1954..027df06c5dc7 100644 --- a/arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi +++ b/arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi | |||
@@ -91,6 +91,7 @@ | |||
91 | pinctrl-0 = <&pinctrl_enet>; | 91 | pinctrl-0 = <&pinctrl_enet>; |
92 | phy-handle = <ðphy>; | 92 | phy-handle = <ðphy>; |
93 | phy-mode = "rgmii"; | 93 | phy-mode = "rgmii"; |
94 | phy-reset-duration = <10>; /* in msecs */ | ||
94 | phy-reset-gpios = <&gpio3 23 GPIO_ACTIVE_LOW>; | 95 | phy-reset-gpios = <&gpio3 23 GPIO_ACTIVE_LOW>; |
95 | phy-supply = <&vdd_eth_io_reg>; | 96 | phy-supply = <&vdd_eth_io_reg>; |
96 | status = "disabled"; | 97 | status = "disabled"; |
diff --git a/arch/arm/boot/dts/imx6ull-pinfunc-snvs.h b/arch/arm/boot/dts/imx6ull-pinfunc-snvs.h index f6fb6783c193..54cfe72295aa 100644 --- a/arch/arm/boot/dts/imx6ull-pinfunc-snvs.h +++ b/arch/arm/boot/dts/imx6ull-pinfunc-snvs.h | |||
@@ -1,4 +1,4 @@ | |||
1 | // SPDX-License-Identifier: GPL-2.0 | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | /* | 2 | /* |
3 | * Copyright (C) 2016 Freescale Semiconductor, Inc. | 3 | * Copyright (C) 2016 Freescale Semiconductor, Inc. |
4 | * Copyright (C) 2017 NXP | 4 | * Copyright (C) 2017 NXP |
diff --git a/arch/arm/configs/imx_v4_v5_defconfig b/arch/arm/configs/imx_v4_v5_defconfig index 8661dd9b064a..b37f8e675e40 100644 --- a/arch/arm/configs/imx_v4_v5_defconfig +++ b/arch/arm/configs/imx_v4_v5_defconfig | |||
@@ -170,6 +170,9 @@ CONFIG_IMX_SDMA=y | |||
170 | # CONFIG_IOMMU_SUPPORT is not set | 170 | # CONFIG_IOMMU_SUPPORT is not set |
171 | CONFIG_IIO=y | 171 | CONFIG_IIO=y |
172 | CONFIG_FSL_MX25_ADC=y | 172 | CONFIG_FSL_MX25_ADC=y |
173 | CONFIG_PWM=y | ||
174 | CONFIG_PWM_IMX1=y | ||
175 | CONFIG_PWM_IMX27=y | ||
173 | CONFIG_EXT4_FS=y | 176 | CONFIG_EXT4_FS=y |
174 | # CONFIG_DNOTIFY is not set | 177 | # CONFIG_DNOTIFY is not set |
175 | CONFIG_VFAT_FS=y | 178 | CONFIG_VFAT_FS=y |
diff --git a/arch/arm/configs/imx_v6_v7_defconfig b/arch/arm/configs/imx_v6_v7_defconfig index 5586a5074a96..50fb01d70b10 100644 --- a/arch/arm/configs/imx_v6_v7_defconfig +++ b/arch/arm/configs/imx_v6_v7_defconfig | |||
@@ -398,7 +398,7 @@ CONFIG_MAG3110=y | |||
398 | CONFIG_MPL3115=y | 398 | CONFIG_MPL3115=y |
399 | CONFIG_PWM=y | 399 | CONFIG_PWM=y |
400 | CONFIG_PWM_FSL_FTM=y | 400 | CONFIG_PWM_FSL_FTM=y |
401 | CONFIG_PWM_IMX=y | 401 | CONFIG_PWM_IMX27=y |
402 | CONFIG_NVMEM_IMX_OCOTP=y | 402 | CONFIG_NVMEM_IMX_OCOTP=y |
403 | CONFIG_NVMEM_VF610_OCOTP=y | 403 | CONFIG_NVMEM_VF610_OCOTP=y |
404 | CONFIG_TEE=y | 404 | CONFIG_TEE=y |
diff --git a/arch/arm/mach-imx/cpuidle-imx6q.c b/arch/arm/mach-imx/cpuidle-imx6q.c index bfeb25aaf9a2..326e870d7123 100644 --- a/arch/arm/mach-imx/cpuidle-imx6q.c +++ b/arch/arm/mach-imx/cpuidle-imx6q.c | |||
@@ -16,30 +16,23 @@ | |||
16 | #include "cpuidle.h" | 16 | #include "cpuidle.h" |
17 | #include "hardware.h" | 17 | #include "hardware.h" |
18 | 18 | ||
19 | static atomic_t master = ATOMIC_INIT(0); | 19 | static int num_idle_cpus = 0; |
20 | static DEFINE_SPINLOCK(master_lock); | 20 | static DEFINE_SPINLOCK(cpuidle_lock); |
21 | 21 | ||
22 | static int imx6q_enter_wait(struct cpuidle_device *dev, | 22 | static int imx6q_enter_wait(struct cpuidle_device *dev, |
23 | struct cpuidle_driver *drv, int index) | 23 | struct cpuidle_driver *drv, int index) |
24 | { | 24 | { |
25 | if (atomic_inc_return(&master) == num_online_cpus()) { | 25 | spin_lock(&cpuidle_lock); |
26 | /* | 26 | if (++num_idle_cpus == num_online_cpus()) |
27 | * With this lock, we prevent other cpu to exit and enter | ||
28 | * this function again and become the master. | ||
29 | */ | ||
30 | if (!spin_trylock(&master_lock)) | ||
31 | goto idle; | ||
32 | imx6_set_lpm(WAIT_UNCLOCKED); | 27 | imx6_set_lpm(WAIT_UNCLOCKED); |
33 | cpu_do_idle(); | 28 | spin_unlock(&cpuidle_lock); |
34 | imx6_set_lpm(WAIT_CLOCKED); | ||
35 | spin_unlock(&master_lock); | ||
36 | goto done; | ||
37 | } | ||
38 | 29 | ||
39 | idle: | ||
40 | cpu_do_idle(); | 30 | cpu_do_idle(); |
41 | done: | 31 | |
42 | atomic_dec(&master); | 32 | spin_lock(&cpuidle_lock); |
33 | if (num_idle_cpus-- == num_online_cpus()) | ||
34 | imx6_set_lpm(WAIT_CLOCKED); | ||
35 | spin_unlock(&cpuidle_lock); | ||
43 | 36 | ||
44 | return index; | 37 | return index; |
45 | } | 38 | } |
diff --git a/arch/arm/mach-imx/mach-imx51.c b/arch/arm/mach-imx/mach-imx51.c index c7169c2f94c4..08c7892866c2 100644 --- a/arch/arm/mach-imx/mach-imx51.c +++ b/arch/arm/mach-imx/mach-imx51.c | |||
@@ -59,6 +59,7 @@ static void __init imx51_m4if_setup(void) | |||
59 | return; | 59 | return; |
60 | 60 | ||
61 | m4if_base = of_iomap(np, 0); | 61 | m4if_base = of_iomap(np, 0); |
62 | of_node_put(np); | ||
62 | if (!m4if_base) { | 63 | if (!m4if_base) { |
63 | pr_err("Unable to map M4IF registers\n"); | 64 | pr_err("Unable to map M4IF registers\n"); |
64 | return; | 65 | return; |