Skip to content

Commit 97c41a6

Browse files
committed
Merge tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
Pull ARM SoC fixes from Arnd Bergmann: "A couple of minor fixes only for now - fix for incorrect DMA channels on Renesas R-Car - Broadcom bcm2835 error handling fixes - Kconfig dependency fixes for bcm2835 and davinci - CPU idle wakeup fix for i.MX6 - MMC regression on Tegra186 - fix incorrect phy settings on one imx board" * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: arm64: tegra: Disable CQE Support for SDMMC4 on Tegra186 ARM: dts: nomadik: Fix polarity of SPI CS ARM: davinci: fix build failure with allnoconfig 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 arm64: bcm2835: Add missing dependency on MFD_CORE. ARM: dts: bcm283x: Fix hdmi hpd gpio pull soc: bcm: bcm2835-pm: Fix error paths of initialization. soc: bcm: bcm2835-pm: Fix PM_IMAGE_PERI power domain support. arm64: dts: renesas: r8a774c0: Fix SCIF5 DMA channels arm64: dts: renesas: r8a77990: Fix SCIF5 DMA channels
2 parents 1a9df9e + 9395874 commit 97c41a6

16 files changed

+78
-45
lines changed

arch/arm/Kconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -596,6 +596,7 @@ config ARCH_DAVINCI
596596
select HAVE_IDE
597597
select PM_GENERIC_DOMAINS if PM
598598
select PM_GENERIC_DOMAINS_OF if PM && OF
599+
select REGMAP_MMIO
599600
select RESET_CONTROLLER
600601
select SPARSE_IRQ
601602
select USE_OF

arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@
9393
};
9494

9595
&hdmi {
96-
hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
96+
hpd-gpios = <&gpio 46 GPIO_ACTIVE_HIGH>;
9797
};
9898

9999
&pwm {

arch/arm/boot/dts/imx6dl-yapp4-common.dtsi

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -114,9 +114,9 @@
114114
reg = <2>;
115115
};
116116

117-
switch@0 {
117+
switch@10 {
118118
compatible = "qca,qca8334";
119-
reg = <0>;
119+
reg = <10>;
120120

121121
switch_ports: ports {
122122
#address-cells = <1>;
@@ -125,7 +125,7 @@
125125
ethphy0: port@0 {
126126
reg = <0>;
127127
label = "cpu";
128-
phy-mode = "rgmii";
128+
phy-mode = "rgmii-id";
129129
ethernet = <&fec>;
130130

131131
fixed-link {

arch/arm/boot/dts/imx6qdl-icore-rqs.dtsi

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -264,7 +264,7 @@
264264
pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
265265
vmcc-supply = <&reg_sd3_vmmc>;
266266
cd-gpios = <&gpio1 1 GPIO_ACTIVE_LOW>;
267-
bus-witdh = <4>;
267+
bus-width = <4>;
268268
no-1-8-v;
269269
status = "okay";
270270
};
@@ -275,7 +275,7 @@
275275
pinctrl-1 = <&pinctrl_usdhc4_100mhz>;
276276
pinctrl-2 = <&pinctrl_usdhc4_200mhz>;
277277
vmcc-supply = <&reg_sd4_vmmc>;
278-
bus-witdh = <8>;
278+
bus-width = <8>;
279279
no-1-8-v;
280280
non-removable;
281281
status = "okay";

arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@
9191
pinctrl-0 = <&pinctrl_enet>;
9292
phy-handle = <&ethphy>;
9393
phy-mode = "rgmii";
94+
phy-reset-duration = <10>; /* in msecs */
9495
phy-reset-gpios = <&gpio3 23 GPIO_ACTIVE_LOW>;
9596
phy-supply = <&vdd_eth_io_reg>;
9697
status = "disabled";

arch/arm/boot/dts/imx6ull-pinfunc-snvs.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// SPDX-License-Identifier: GPL-2.0
1+
/* SPDX-License-Identifier: GPL-2.0 */
22
/*
33
* Copyright (C) 2016 Freescale Semiconductor, Inc.
44
* Copyright (C) 2017 NXP

arch/arm/boot/dts/ste-nomadik-nhk15.dts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -213,12 +213,13 @@
213213
gpio-sck = <&gpio0 5 GPIO_ACTIVE_HIGH>;
214214
gpio-mosi = <&gpio0 4 GPIO_ACTIVE_HIGH>;
215215
/*
216-
* It's not actually active high, but the frameworks assume
217-
* the polarity of the passed-in GPIO is "normal" (active
218-
* high) then actively drives the line low to select the
219-
* chip.
216+
* This chipselect is active high. Just setting the flags
217+
* to GPIO_ACTIVE_HIGH is not enough for the SPI DT bindings,
218+
* it will be ignored, only the special "spi-cs-high" flag
219+
* really counts.
220220
*/
221221
cs-gpios = <&gpio0 6 GPIO_ACTIVE_HIGH>;
222+
spi-cs-high;
222223
num-chipselects = <1>;
223224

224225
/*

arch/arm/configs/imx_v4_v5_defconfig

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,9 @@ CONFIG_IMX_SDMA=y
170170
# CONFIG_IOMMU_SUPPORT is not set
171171
CONFIG_IIO=y
172172
CONFIG_FSL_MX25_ADC=y
173+
CONFIG_PWM=y
174+
CONFIG_PWM_IMX1=y
175+
CONFIG_PWM_IMX27=y
173176
CONFIG_EXT4_FS=y
174177
# CONFIG_DNOTIFY is not set
175178
CONFIG_VFAT_FS=y

arch/arm/configs/imx_v6_v7_defconfig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -398,7 +398,7 @@ CONFIG_MAG3110=y
398398
CONFIG_MPL3115=y
399399
CONFIG_PWM=y
400400
CONFIG_PWM_FSL_FTM=y
401-
CONFIG_PWM_IMX=y
401+
CONFIG_PWM_IMX27=y
402402
CONFIG_NVMEM_IMX_OCOTP=y
403403
CONFIG_NVMEM_VF610_OCOTP=y
404404
CONFIG_TEE=y

arch/arm/mach-imx/cpuidle-imx6q.c

Lines changed: 10 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -16,30 +16,23 @@
1616
#include "cpuidle.h"
1717
#include "hardware.h"
1818

19-
static atomic_t master = ATOMIC_INIT(0);
20-
static DEFINE_SPINLOCK(master_lock);
19+
static int num_idle_cpus = 0;
20+
static DEFINE_SPINLOCK(cpuidle_lock);
2121

2222
static int imx6q_enter_wait(struct cpuidle_device *dev,
2323
struct cpuidle_driver *drv, int index)
2424
{
25-
if (atomic_inc_return(&master) == num_online_cpus()) {
26-
/*
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;
25+
spin_lock(&cpuidle_lock);
26+
if (++num_idle_cpus == num_online_cpus())
3227
imx6_set_lpm(WAIT_UNCLOCKED);
33-
cpu_do_idle();
34-
imx6_set_lpm(WAIT_CLOCKED);
35-
spin_unlock(&master_lock);
36-
goto done;
37-
}
28+
spin_unlock(&cpuidle_lock);
3829

39-
idle:
4030
cpu_do_idle();
41-
done:
42-
atomic_dec(&master);
31+
32+
spin_lock(&cpuidle_lock);
33+
if (num_idle_cpus-- == num_online_cpus())
34+
imx6_set_lpm(WAIT_CLOCKED);
35+
spin_unlock(&cpuidle_lock);
4336

4437
return index;
4538
}

0 commit comments

Comments
 (0)