forked from Minki/linux
ARM: SoC fixes for v5.11, part 2
These are the current arm-soc bug fixes for linux-5.11. I already merged a larger set that just came in during the past three days but has not had much exposure in linux-next, so these are the ones I merged last week. Most of these are for the NXP i.MX platform (descriptions from their pull request): - Fix pcf2127 reset for imx7d-flex-concentrator board. - Fix i.MX6 suspend with Thumb-2 kernel. - Fix ethernet-phy address issue on imx6qdl-sr-som board. - Fix GPIO3 `gpio-ranges` on i.MX8MP. - Select SOC_BUS for IMX_SCU driver to fix build issue. - Fix backlight pwm on imx6qdl-kontron-samx6i which is lost from #pwm-cells conversion. - Fix duplicated bus node name for i.MX8MN SoC. - Fix reset register offset on LS1028A SoC. - Rename MMC node aliases for imx6q-tbs2910 to keep the MMC device index consistent with previous kernel version. - Selecting ARM_GIC_V3 on non-CP15 processors to fix one build failure with i.MX8M SoC driver. - Fix typos with status property on imx6qdl-kontron-samx6i board. - Fix duplicated regulator-name on imx6qdl-gw52xx board. Aside from i.MX, the bugfixes are all over the place: - Coccinelle found a refcount imbalance on integrator - defconfig fix for TI K3 - A boot regression fix for ST ux500 - A code preemption fix for the optee driver - USB DMA regression on Broadcom Stingray - A bogus boot time warning fix for at91 code Signed-off-by: Arnd Bergmann <arnd@arndb.de> -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmAS0A0ACgkQmmx57+YA GNmk7w/9GCdeyLysp1ZdYdTlysfuqh2wR31/9t3rIv6E+xDH/m9yYVRWKqVMqN00 FtgYABfjsobOLdaiO/Bpl6bK6B5WXmLrmBXptgSXJCjV147r/orlIH3BCtqBR1ez 3anH0zqwklOHtTMDfz012VsdNSk81yqEnl4kFYcLDOJ6wtg4cl8ks4GIkYopT4XX Yov+iUKO2xzTdl7XSBgqNjNUntZcLndffnuu+tdb4Ehz6H6qeODW2BMCZJNvd0BB h8bFiYo6fNkywFDevO7Tbyufzkuz7CNH2EiOL5zzfbOxBZ3fyOf0zBfFe+ldlcYq 2qYid7rpLPF4Hn4HzTiwh2jPj4jef3F0XpBq8YrUJK5p7BoOp9QkMNqoJfpidWoa ROkgbPPaiVanOiTpDA6++IOxjGP+0I01LXhiP5SwfN6ua4UYinS9f2MgoPgT70mT Doq9EIucORBi0ZbzUzl5EESCya4ByRTu7EYrENeWy3Y9HsGZ921l/vmIsAHWo9P9 8pEgm9ttPErZlpmABPiEkJcF8IsxaLtcQuSFpLsFUweIDi65mMkF5fXQ+K3OicdT mMAu9EaNEUBUwWRK2Cq9xIV/8/DwFHVSg40FqatDgvhihtZZA6GgoSDZvGJO34oo NjqLxgqFVMq6HDFC36+Rn1/iP6mpQsvgobs+Qaa357wFT/DUqCg= =Vneq -----END PGP SIGNATURE----- Merge tag 'arm-soc-fixes-v5.11-2' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc Pull ARM SoC fixes from Arnd Bergmann: "These are the current arm-soc bug fixes for linux-5.11. I already merged a larger set that just came in during the past three days but has not had much exposure in linux-next, but this is the subset I merged last week. Most of these are for the NXP i.MX platform (descriptions from their pull request): - Fix pcf2127 reset for imx7d-flex-concentrator board. - Fix i.MX6 suspend with Thumb-2 kernel. - Fix ethernet-phy address issue on imx6qdl-sr-som board. - Fix GPIO3 `gpio-ranges` on i.MX8MP. - Select SOC_BUS for IMX_SCU driver to fix build issue. - Fix backlight pwm on imx6qdl-kontron-samx6i which is lost from #pwm-cells conversion. - Fix duplicated bus node name for i.MX8MN SoC. - Fix reset register offset on LS1028A SoC. - Rename MMC node aliases for imx6q-tbs2910 to keep the MMC device index consistent with previous kernel version. - Selecting ARM_GIC_V3 on non-CP15 processors to fix one build failure with i.MX8M SoC driver. - Fix typos with status property on imx6qdl-kontron-samx6i board. - Fix duplicated regulator-name on imx6qdl-gw52xx board. Aside from i.MX, the bugfixes are all over the place: - Coccinelle found a refcount imbalance on integrator - defconfig fix for TI K3 - A boot regression fix for ST ux500 - A code preemption fix for the optee driver - USB DMA regression on Broadcom Stingray - A bogus boot time warning fix for at91 code" * tag 'arm-soc-fixes-v5.11-2' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: MAINTAINERS: Include bcm2835 subsequents into search arm64: dts: broadcom: Fix USB DMA address translation for Stingray drivers: soc: atmel: add null entry at the end of at91_soc_allowed_list[] drivers: soc: atmel: Avoid calling at91_soc_init on non AT91 SoCs tee: optee: replace might_sleep with cond_resched firmware: imx: select SOC_BUS to fix firmware build arm64: dts: imx8mp: Correct the gpio ranges of gpio3 ARM: dts: imx6qdl-sr-som: fix some cubox-i platforms ARM: imx: build suspend-imx6.S with arm instruction set ARM: dts: imx7d-flex-concentrator: fix pcf2127 reset ARM: dts: ux500: Reserve memory carveouts arm64: defconfig: Drop unused K3 SoC specific options bus: arm-integrator-lm: Add of_node_put() before return statement ARM: dts: imx6qdl-gw52xx: fix duplicate regulator naming ARM: dts: imx6qdl-kontron-samx6i: fix i2c_lcd/cam default status ARM: imx: fix imx8m dependencies ARM: dts: tbs2910: rename MMC node aliases arm64: dts: ls1028a: fix the offset of the reset register arm64: dts: imx8mn: Fix duplicate node name ARM: dts: imx6qdl-kontron-samx6i: fix pwms for lcd-backlight
This commit is contained in:
commit
7485e08eec
@ -3411,7 +3411,7 @@ F: Documentation/devicetree/bindings/pci/brcm,stb-pcie.yaml
|
||||
F: drivers/pci/controller/pcie-brcmstb.c
|
||||
F: drivers/staging/vc04_services
|
||||
N: bcm2711
|
||||
N: bcm2835
|
||||
N: bcm283*
|
||||
|
||||
BROADCOM BCM281XX/BCM11XXX/BCM216XX ARM ARCHITECTURE
|
||||
M: Florian Fainelli <f.fainelli@gmail.com>
|
||||
|
@ -16,6 +16,13 @@
|
||||
stdout-path = &uart1;
|
||||
};
|
||||
|
||||
aliases {
|
||||
mmc0 = &usdhc2;
|
||||
mmc1 = &usdhc3;
|
||||
mmc2 = &usdhc4;
|
||||
/delete-property/ mmc3;
|
||||
};
|
||||
|
||||
memory@10000000 {
|
||||
device_type = "memory";
|
||||
reg = <0x10000000 0x80000000>;
|
||||
|
@ -418,7 +418,7 @@
|
||||
|
||||
/* VDD_AUD_1P8: Audio codec */
|
||||
reg_aud_1p8v: ldo3 {
|
||||
regulator-name = "vdd1p8";
|
||||
regulator-name = "vdd1p8a";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-boot-on;
|
||||
|
@ -137,7 +137,7 @@
|
||||
|
||||
lcd_backlight: lcd-backlight {
|
||||
compatible = "pwm-backlight";
|
||||
pwms = <&pwm4 0 5000000>;
|
||||
pwms = <&pwm4 0 5000000 0>;
|
||||
pwm-names = "LCD_BKLT_PWM";
|
||||
|
||||
brightness-levels = <0 10 20 30 40 50 60 70 80 90 100>;
|
||||
@ -167,7 +167,7 @@
|
||||
i2c-gpio,delay-us = <2>; /* ~100 kHz */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "disabld";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c_cam: i2c-gpio-cam {
|
||||
@ -179,7 +179,7 @@
|
||||
i2c-gpio,delay-us = <2>; /* ~100 kHz */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "disabld";
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -53,7 +53,6 @@
|
||||
&fec {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_microsom_enet_ar8035>;
|
||||
phy-handle = <&phy>;
|
||||
phy-mode = "rgmii-id";
|
||||
phy-reset-duration = <2>;
|
||||
phy-reset-gpios = <&gpio4 15 GPIO_ACTIVE_LOW>;
|
||||
@ -63,10 +62,19 @@
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
phy: ethernet-phy@0 {
|
||||
/*
|
||||
* The PHY can appear at either address 0 or 4 due to the
|
||||
* configuration (LED) pin not being pulled sufficiently.
|
||||
*/
|
||||
ethernet-phy@0 {
|
||||
reg = <0>;
|
||||
qca,clk-out-frequency = <125000000>;
|
||||
};
|
||||
|
||||
ethernet-phy@4 {
|
||||
reg = <4>;
|
||||
qca,clk-out-frequency = <125000000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -115,6 +115,7 @@
|
||||
compatible = "nxp,pcf2127";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <2000000>;
|
||||
reset-source;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -12,4 +12,42 @@
|
||||
200000 0>;
|
||||
};
|
||||
};
|
||||
|
||||
reserved-memory {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges;
|
||||
|
||||
/* Modem trace memory */
|
||||
ram@06000000 {
|
||||
reg = <0x06000000 0x00f00000>;
|
||||
no-map;
|
||||
};
|
||||
|
||||
/* Modem shared memory */
|
||||
ram@06f00000 {
|
||||
reg = <0x06f00000 0x00100000>;
|
||||
no-map;
|
||||
};
|
||||
|
||||
/* Modem private memory */
|
||||
ram@07000000 {
|
||||
reg = <0x07000000 0x01000000>;
|
||||
no-map;
|
||||
};
|
||||
|
||||
/*
|
||||
* Initial Secure Software ISSW memory
|
||||
*
|
||||
* This is probably only used if the kernel tries
|
||||
* to actually call into trustzone to run secure
|
||||
* applications, which the mainline kernel probably
|
||||
* will not do on this old chipset. But you can never
|
||||
* be too careful, so reserve this memory anyway.
|
||||
*/
|
||||
ram@17f00000 {
|
||||
reg = <0x17f00000 0x00100000>;
|
||||
no-map;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -12,4 +12,42 @@
|
||||
200000 0>;
|
||||
};
|
||||
};
|
||||
|
||||
reserved-memory {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges;
|
||||
|
||||
/* Modem trace memory */
|
||||
ram@06000000 {
|
||||
reg = <0x06000000 0x00f00000>;
|
||||
no-map;
|
||||
};
|
||||
|
||||
/* Modem shared memory */
|
||||
ram@06f00000 {
|
||||
reg = <0x06f00000 0x00100000>;
|
||||
no-map;
|
||||
};
|
||||
|
||||
/* Modem private memory */
|
||||
ram@07000000 {
|
||||
reg = <0x07000000 0x01000000>;
|
||||
no-map;
|
||||
};
|
||||
|
||||
/*
|
||||
* Initial Secure Software ISSW memory
|
||||
*
|
||||
* This is probably only used if the kernel tries
|
||||
* to actually call into trustzone to run secure
|
||||
* applications, which the mainline kernel probably
|
||||
* will not do on this old chipset. But you can never
|
||||
* be too careful, so reserve this memory anyway.
|
||||
*/
|
||||
ram@17f00000 {
|
||||
reg = <0x17f00000 0x00100000>;
|
||||
no-map;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
35
arch/arm/boot/dts/ste-db9500.dtsi
Normal file
35
arch/arm/boot/dts/ste-db9500.dtsi
Normal file
@ -0,0 +1,35 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include "ste-dbx5x0.dtsi"
|
||||
|
||||
/ {
|
||||
cpus {
|
||||
cpu@300 {
|
||||
/* cpufreq controls */
|
||||
operating-points = <1152000 0
|
||||
800000 0
|
||||
400000 0
|
||||
200000 0>;
|
||||
};
|
||||
};
|
||||
|
||||
reserved-memory {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges;
|
||||
|
||||
/*
|
||||
* Initial Secure Software ISSW memory
|
||||
*
|
||||
* This is probably only used if the kernel tries
|
||||
* to actually call into trustzone to run secure
|
||||
* applications, which the mainline kernel probably
|
||||
* will not do on this old chipset. But you can never
|
||||
* be too careful, so reserve this memory anyway.
|
||||
*/
|
||||
ram@17f00000 {
|
||||
reg = <0x17f00000 0x00100000>;
|
||||
no-map;
|
||||
};
|
||||
};
|
||||
};
|
@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
#include "ste-db8500.dtsi"
|
||||
#include "ste-db9500.dtsi"
|
||||
#include "ste-href-ab8500.dtsi"
|
||||
#include "ste-href-family-pinctrl.dtsi"
|
||||
|
||||
|
@ -67,6 +67,7 @@
|
||||
#define MX6Q_CCM_CCR 0x0
|
||||
|
||||
.align 3
|
||||
.arm
|
||||
|
||||
.macro sync_l2_cache
|
||||
|
||||
|
@ -4,11 +4,16 @@
|
||||
*/
|
||||
usb {
|
||||
compatible = "simple-bus";
|
||||
dma-ranges;
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
ranges = <0x0 0x0 0x0 0x68500000 0x0 0x00400000>;
|
||||
|
||||
/*
|
||||
* Internally, USB bus to the interconnect can only address up
|
||||
* to 40-bit
|
||||
*/
|
||||
dma-ranges = <0 0 0 0 0x100 0x0>;
|
||||
|
||||
usbphy0: usb-phy@0 {
|
||||
compatible = "brcm,sr-usb-combo-phy";
|
||||
reg = <0x0 0x00000000 0x0 0x100>;
|
||||
|
@ -101,7 +101,7 @@
|
||||
reboot {
|
||||
compatible ="syscon-reboot";
|
||||
regmap = <&rst>;
|
||||
offset = <0xb0>;
|
||||
offset = <0>;
|
||||
mask = <0x02>;
|
||||
};
|
||||
|
||||
|
@ -253,7 +253,7 @@
|
||||
#size-cells = <1>;
|
||||
ranges;
|
||||
|
||||
spba: bus@30000000 {
|
||||
spba: spba-bus@30000000 {
|
||||
compatible = "fsl,spba-bus", "simple-bus";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
@ -266,7 +266,7 @@
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
gpio-ranges = <&iomuxc 0 56 26>, <&iomuxc 0 144 4>;
|
||||
gpio-ranges = <&iomuxc 0 56 26>, <&iomuxc 26 144 4>;
|
||||
};
|
||||
|
||||
gpio4: gpio@30230000 {
|
||||
|
@ -991,8 +991,6 @@ CONFIG_ARCH_TEGRA_210_SOC=y
|
||||
CONFIG_ARCH_TEGRA_186_SOC=y
|
||||
CONFIG_ARCH_TEGRA_194_SOC=y
|
||||
CONFIG_ARCH_TEGRA_234_SOC=y
|
||||
CONFIG_ARCH_K3_AM6_SOC=y
|
||||
CONFIG_ARCH_K3_J721E_SOC=y
|
||||
CONFIG_TI_SCI_PM_DOMAINS=y
|
||||
CONFIG_EXTCON_PTN5150=m
|
||||
CONFIG_EXTCON_USB_GPIO=y
|
||||
|
@ -54,6 +54,7 @@ static int integrator_lm_populate(int num, struct device *dev)
|
||||
ret = of_platform_default_populate(child, NULL, dev);
|
||||
if (ret) {
|
||||
dev_err(dev, "failed to populate module\n");
|
||||
of_node_put(child);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
@ -13,6 +13,7 @@ config IMX_DSP
|
||||
config IMX_SCU
|
||||
bool "IMX SCU Protocol driver"
|
||||
depends on IMX_MBOX
|
||||
select SOC_BUS
|
||||
help
|
||||
The System Controller Firmware (SCFW) is a low-level system function
|
||||
which runs on a dedicated Cortex-M core to provide power, clock, and
|
||||
|
@ -271,8 +271,21 @@ struct soc_device * __init at91_soc_init(const struct at91_soc *socs)
|
||||
return soc_dev;
|
||||
}
|
||||
|
||||
static const struct of_device_id at91_soc_allowed_list[] __initconst = {
|
||||
{ .compatible = "atmel,at91rm9200", },
|
||||
{ .compatible = "atmel,at91sam9", },
|
||||
{ .compatible = "atmel,sama5", },
|
||||
{ .compatible = "atmel,samv7", },
|
||||
{ }
|
||||
};
|
||||
|
||||
static int __init atmel_soc_device_init(void)
|
||||
{
|
||||
struct device_node *np = of_find_node_by_path("/");
|
||||
|
||||
if (!of_match_node(at91_soc_allowed_list, np))
|
||||
return 0;
|
||||
|
||||
at91_soc_init(socs);
|
||||
|
||||
return 0;
|
||||
|
@ -13,7 +13,7 @@ config SOC_IMX8M
|
||||
depends on ARCH_MXC || COMPILE_TEST
|
||||
default ARCH_MXC && ARM64
|
||||
select SOC_BUS
|
||||
select ARM_GIC_V3 if ARCH_MXC
|
||||
select ARM_GIC_V3 if ARCH_MXC && ARCH_MULTI_V7
|
||||
help
|
||||
If you say yes here you get support for the NXP i.MX8M family
|
||||
support, it will provide the SoC info like SoC family,
|
||||
|
@ -7,6 +7,7 @@
|
||||
#include <linux/err.h>
|
||||
#include <linux/errno.h>
|
||||
#include <linux/mm.h>
|
||||
#include <linux/sched.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/tee_drv.h>
|
||||
#include <linux/types.h>
|
||||
@ -148,7 +149,8 @@ u32 optee_do_call_with_arg(struct tee_context *ctx, phys_addr_t parg)
|
||||
*/
|
||||
optee_cq_wait_for_completion(&optee->call_queue, &w);
|
||||
} else if (OPTEE_SMC_RETURN_IS_RPC(res.a0)) {
|
||||
might_sleep();
|
||||
if (need_resched())
|
||||
cond_resched();
|
||||
param.a0 = res.a0;
|
||||
param.a1 = res.a1;
|
||||
param.a2 = res.a2;
|
||||
|
Loading…
Reference in New Issue
Block a user