aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2019-03-25 12:06:41 -0400
committerArnd Bergmann <arnd@arndb.de>2019-03-25 12:06:41 -0400
commit2e8c54db3b69f387a9651ca807a33506ec30fe87 (patch)
tree573f6706344bd2ead39474486ff54fc6d620f834
parent0cee41d4d0fe781c1acc8db48871f1a759b1f8b9 (diff)
parent507aaeeef80d70c46bdf07cda49234b36c2bbdcb (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.dtsi6
-rw-r--r--arch/arm/boot/dts/imx6qdl-icore-rqs.dtsi4
-rw-r--r--arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi1
-rw-r--r--arch/arm/boot/dts/imx6ull-pinfunc-snvs.h2
-rw-r--r--arch/arm/configs/imx_v4_v5_defconfig3
-rw-r--r--arch/arm/configs/imx_v6_v7_defconfig2
-rw-r--r--arch/arm/mach-imx/cpuidle-imx6q.c27
-rw-r--r--arch/arm/mach-imx/mach-imx51.c1
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 = <&reg_sd3_vmmc>; 265 vmcc-supply = <&reg_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 = <&reg_sd4_vmmc>; 277 vmcc-supply = <&reg_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 = <&ethphy>; 92 phy-handle = <&ethphy>;
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
171CONFIG_IIO=y 171CONFIG_IIO=y
172CONFIG_FSL_MX25_ADC=y 172CONFIG_FSL_MX25_ADC=y
173CONFIG_PWM=y
174CONFIG_PWM_IMX1=y
175CONFIG_PWM_IMX27=y
173CONFIG_EXT4_FS=y 176CONFIG_EXT4_FS=y
174# CONFIG_DNOTIFY is not set 177# CONFIG_DNOTIFY is not set
175CONFIG_VFAT_FS=y 178CONFIG_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
398CONFIG_MPL3115=y 398CONFIG_MPL3115=y
399CONFIG_PWM=y 399CONFIG_PWM=y
400CONFIG_PWM_FSL_FTM=y 400CONFIG_PWM_FSL_FTM=y
401CONFIG_PWM_IMX=y 401CONFIG_PWM_IMX27=y
402CONFIG_NVMEM_IMX_OCOTP=y 402CONFIG_NVMEM_IMX_OCOTP=y
403CONFIG_NVMEM_VF610_OCOTP=y 403CONFIG_NVMEM_VF610_OCOTP=y
404CONFIG_TEE=y 404CONFIG_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
19static atomic_t master = ATOMIC_INIT(0); 19static int num_idle_cpus = 0;
20static DEFINE_SPINLOCK(master_lock); 20static DEFINE_SPINLOCK(cpuidle_lock);
21 21
22static int imx6q_enter_wait(struct cpuidle_device *dev, 22static 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
39idle:
40 cpu_do_idle(); 30 cpu_do_idle();
41done: 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;