patches-6.1: refresh patches

This commit is contained in:
sbwml 2023-09-06 21:24:05 +08:00
parent 8a4c26845f
commit bf3c435098
16 changed files with 81 additions and 146 deletions

View File

@ -1,5 +1,3 @@
diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig
index 0642f5791..830bc9a8e 100644
--- a/drivers/gpio/Kconfig --- a/drivers/gpio/Kconfig
+++ b/drivers/gpio/Kconfig +++ b/drivers/gpio/Kconfig
@@ -59,7 +59,7 @@ config DEBUG_GPIO @@ -59,7 +59,7 @@ config DEBUG_GPIO

View File

@ -13,9 +13,6 @@ Subject: [PATCH] add hwrng for rk3568
create mode 100644 Documentation/devicetree/bindings/rng/rockchip,rk3568-rng.yaml create mode 100644 Documentation/devicetree/bindings/rng/rockchip,rk3568-rng.yaml
create mode 100644 drivers/char/hw_random/rk3568-rng.c create mode 100644 drivers/char/hw_random/rk3568-rng.c
diff --git a/Documentation/devicetree/bindings/rng/rockchip,rk3568-rng.yaml b/Documentation/devicetree/bindings/rng/rockchip,rk3568-rng.yaml
new file mode 100644
index 000000000..c2f5ef69c
--- /dev/null --- /dev/null
+++ b/Documentation/devicetree/bindings/rng/rockchip,rk3568-rng.yaml +++ b/Documentation/devicetree/bindings/rng/rockchip,rk3568-rng.yaml
@@ -0,0 +1,60 @@ @@ -0,0 +1,60 @@
@ -79,11 +76,9 @@ index 000000000..c2f5ef69c
+ }; + };
+ +
+... +...
diff --git a/arch/arm64/boot/dts/rockchip/rk356x.dtsi b/arch/arm64/boot/dts/rockchip/rk356x.dtsi
index 164708f1e..718171234 100644
--- a/arch/arm64/boot/dts/rockchip/rk356x.dtsi --- a/arch/arm64/boot/dts/rockchip/rk356x.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk356x.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk356x.dtsi
@@ -1770,6 +1770,16 @@ usb2phy1_otg: otg-port { @@ -1772,6 +1772,16 @@
}; };
}; };
@ -100,8 +95,6 @@ index 164708f1e..718171234 100644
pinctrl: pinctrl { pinctrl: pinctrl {
compatible = "rockchip,rk3568-pinctrl"; compatible = "rockchip,rk3568-pinctrl";
rockchip,grf = <&grf>; rockchip,grf = <&grf>;
diff --git a/drivers/char/hw_random/Kconfig b/drivers/char/hw_random/Kconfig
index 3da8e85f8..3e20e4421 100644
--- a/drivers/char/hw_random/Kconfig --- a/drivers/char/hw_random/Kconfig
+++ b/drivers/char/hw_random/Kconfig +++ b/drivers/char/hw_random/Kconfig
@@ -372,6 +372,20 @@ config HW_RANDOM_STM32 @@ -372,6 +372,20 @@ config HW_RANDOM_STM32
@ -125,11 +118,9 @@ index 3da8e85f8..3e20e4421 100644
config HW_RANDOM_PIC32 config HW_RANDOM_PIC32
tristate "Microchip PIC32 Random Number Generator support" tristate "Microchip PIC32 Random Number Generator support"
depends on HW_RANDOM && MACH_PIC32 depends on HW_RANDOM && MACH_PIC32
diff --git a/drivers/char/hw_random/Makefile b/drivers/char/hw_random/Makefile
index 3e948cf04..460191bcf 100644
--- a/drivers/char/hw_random/Makefile --- a/drivers/char/hw_random/Makefile
+++ b/drivers/char/hw_random/Makefile +++ b/drivers/char/hw_random/Makefile
@@ -34,6 +34,7 @@ obj-$(CONFIG_HW_RANDOM_IPROC_RNG200) += iproc-rng200.o @@ -34,6 +34,7 @@ obj-$(CONFIG_HW_RANDOM_IPROC_RNG200) +=
obj-$(CONFIG_HW_RANDOM_ST) += st-rng.o obj-$(CONFIG_HW_RANDOM_ST) += st-rng.o
obj-$(CONFIG_HW_RANDOM_XGENE) += xgene-rng.o obj-$(CONFIG_HW_RANDOM_XGENE) += xgene-rng.o
obj-$(CONFIG_HW_RANDOM_STM32) += stm32-rng.o obj-$(CONFIG_HW_RANDOM_STM32) += stm32-rng.o
@ -137,9 +128,6 @@ index 3e948cf04..460191bcf 100644
obj-$(CONFIG_HW_RANDOM_PIC32) += pic32-rng.o obj-$(CONFIG_HW_RANDOM_PIC32) += pic32-rng.o
obj-$(CONFIG_HW_RANDOM_MESON) += meson-rng.o obj-$(CONFIG_HW_RANDOM_MESON) += meson-rng.o
obj-$(CONFIG_HW_RANDOM_CAVIUM) += cavium-rng.o cavium-rng-vf.o obj-$(CONFIG_HW_RANDOM_CAVIUM) += cavium-rng.o cavium-rng-vf.o
diff --git a/drivers/char/hw_random/rk3568-rng.c b/drivers/char/hw_random/rk3568-rng.c
new file mode 100644
index 000000000..b04346b23
--- /dev/null --- /dev/null
+++ b/drivers/char/hw_random/rk3568-rng.c +++ b/drivers/char/hw_random/rk3568-rng.c
@@ -0,0 +1,250 @@ @@ -0,0 +1,250 @@
@ -393,6 +381,3 @@ index 000000000..b04346b23
+MODULE_DESCRIPTION("Rockchip True Random Number Generator driver"); +MODULE_DESCRIPTION("Rockchip True Random Number Generator driver");
+MODULE_AUTHOR("Lin Jinhan <troy.lin@rock-chips.com>, Aurelien Jarno <aurelien@aurel32.net>"); +MODULE_AUTHOR("Lin Jinhan <troy.lin@rock-chips.com>, Aurelien Jarno <aurelien@aurel32.net>");
+MODULE_LICENSE("GPL v2"); +MODULE_LICENSE("GPL v2");
--
2.34.1

View File

@ -1,7 +1,6 @@
diff -Naur a/drivers/clk/rockchip/clk-half-divider.c b/drivers/clk/rockchip/clk-half-divider.c --- a/drivers/clk/rockchip/clk-half-divider.c
--- a/drivers/clk/rockchip/clk-half-divider.c 2022-07-31 17:03:01.000000000 -0400 +++ b/drivers/clk/rockchip/clk-half-divider.c
+++ b/drivers/clk/rockchip/clk-half-divider.c 2022-08-09 17:00:56.992472371 -0400 @@ -166,7 +166,7 @@ struct clk *rockchip_clk_register_halfdi
@@ -166,7 +166,7 @@
unsigned long flags, unsigned long flags,
spinlock_t *lock) spinlock_t *lock)
{ {
@ -10,10 +9,9 @@ diff -Naur a/drivers/clk/rockchip/clk-half-divider.c b/drivers/clk/rockchip/clk-
struct clk_mux *mux = NULL; struct clk_mux *mux = NULL;
struct clk_gate *gate = NULL; struct clk_gate *gate = NULL;
struct clk_divider *div = NULL; struct clk_divider *div = NULL;
diff -Naur a/drivers/usb/dwc3/dwc3-of-simple.c b/drivers/usb/dwc3/dwc3-of-simple.c --- a/drivers/usb/dwc3/dwc3-of-simple.c
--- a/drivers/usb/dwc3/dwc3-of-simple.c 2022-07-31 17:03:01.000000000 -0400 +++ b/drivers/usb/dwc3/dwc3-of-simple.c
+++ b/drivers/usb/dwc3/dwc3-of-simple.c 2022-08-09 17:00:56.994472344 -0400 @@ -30,12 +30,16 @@ struct dwc3_of_simple {
@@ -30,12 +30,16 @@
bool need_reset; bool need_reset;
}; };
@ -31,7 +29,7 @@ diff -Naur a/drivers/usb/dwc3/dwc3-of-simple.c b/drivers/usb/dwc3/dwc3-of-simple
int ret; int ret;
simple = devm_kzalloc(dev, sizeof(*simple), GFP_KERNEL); simple = devm_kzalloc(dev, sizeof(*simple), GFP_KERNEL);
@@ -49,8 +53,8 @@ @@ -49,8 +53,8 @@ static int dwc3_of_simple_probe(struct p
* Some controllers need to toggle the usb3-otg reset before trying to * Some controllers need to toggle the usb3-otg reset before trying to
* initialize the PHY, otherwise the PHY times out. * initialize the PHY, otherwise the PHY times out.
*/ */
@ -42,7 +40,7 @@ diff -Naur a/drivers/usb/dwc3/dwc3-of-simple.c b/drivers/usb/dwc3/dwc3-of-simple
simple->resets = of_reset_control_array_get(np, false, true, simple->resets = of_reset_control_array_get(np, false, true,
true); true);
@@ -170,13 +174,34 @@ @@ -170,13 +174,34 @@ static const struct dev_pm_ops dwc3_of_s
dwc3_of_simple_runtime_resume, NULL) dwc3_of_simple_runtime_resume, NULL)
}; };
@ -83,10 +81,9 @@ diff -Naur a/drivers/usb/dwc3/dwc3-of-simple.c b/drivers/usb/dwc3/dwc3-of-simple
{ /* Sentinel */ } { /* Sentinel */ }
}; };
MODULE_DEVICE_TABLE(of, of_dwc3_simple_match); MODULE_DEVICE_TABLE(of, of_dwc3_simple_match);
diff -Naur a/kernel/dma/pool.c b/kernel/dma/pool.c --- a/kernel/dma/pool.c
--- a/kernel/dma/pool.c 2022-07-31 17:03:01.000000000 -0400 +++ b/kernel/dma/pool.c
+++ b/kernel/dma/pool.c 2022-08-09 17:00:56.992472371 -0400 @@ -189,13 +189,10 @@ static int __init dma_atomic_pool_init(v
@@ -189,13 +189,10 @@
int ret = 0; int ret = 0;
/* /*
@ -102,9 +99,8 @@ diff -Naur a/kernel/dma/pool.c b/kernel/dma/pool.c
} }
INIT_WORK(&atomic_pool_work, atomic_pool_work_fn); INIT_WORK(&atomic_pool_work, atomic_pool_work_fn);
diff -Naur a/sound/soc/codecs/rt5651.c b/sound/soc/codecs/rt5651.c --- a/sound/soc/codecs/rt5651.c
--- a/sound/soc/codecs/rt5651.c 2022-07-31 17:03:01.000000000 -0400 +++ b/sound/soc/codecs/rt5651.c
+++ b/sound/soc/codecs/rt5651.c 2022-08-09 17:00:56.993472358 -0400
@@ -24,6 +24,7 @@ @@ -24,6 +24,7 @@
#include <sound/initval.h> #include <sound/initval.h>
#include <sound/tlv.h> #include <sound/tlv.h>
@ -113,7 +109,7 @@ diff -Naur a/sound/soc/codecs/rt5651.c b/sound/soc/codecs/rt5651.c
#include "rl6231.h" #include "rl6231.h"
#include "rt5651.h" #include "rt5651.h"
@@ -1511,6 +1512,7 @@ @@ -1511,6 +1512,7 @@ static int rt5651_set_dai_pll(struct snd
static int rt5651_set_bias_level(struct snd_soc_component *component, static int rt5651_set_bias_level(struct snd_soc_component *component,
enum snd_soc_bias_level level) enum snd_soc_bias_level level)
{ {
@ -121,7 +117,7 @@ diff -Naur a/sound/soc/codecs/rt5651.c b/sound/soc/codecs/rt5651.c
switch (level) { switch (level) {
case SND_SOC_BIAS_PREPARE: case SND_SOC_BIAS_PREPARE:
if (SND_SOC_BIAS_STANDBY == snd_soc_component_get_bias_level(component)) { if (SND_SOC_BIAS_STANDBY == snd_soc_component_get_bias_level(component)) {
@@ -1518,6 +1520,13 @@ @@ -1518,6 +1520,13 @@ static int rt5651_set_bias_level(struct
snd_soc_component_update_bits(component, RT5651_D_MISC, snd_soc_component_update_bits(component, RT5651_D_MISC,
0xc00, 0xc00); 0xc00, 0xc00);
} }
@ -135,7 +131,7 @@ diff -Naur a/sound/soc/codecs/rt5651.c b/sound/soc/codecs/rt5651.c
break; break;
case SND_SOC_BIAS_STANDBY: case SND_SOC_BIAS_STANDBY:
if (SND_SOC_BIAS_OFF == snd_soc_component_get_bias_level(component)) { if (SND_SOC_BIAS_OFF == snd_soc_component_get_bias_level(component)) {
@@ -2059,6 +2068,13 @@ @@ -2059,6 +2068,13 @@ static int rt5651_probe(struct snd_soc_c
{ {
struct rt5651_priv *rt5651 = snd_soc_component_get_drvdata(component); struct rt5651_priv *rt5651 = snd_soc_component_get_drvdata(component);
@ -149,10 +145,9 @@ diff -Naur a/sound/soc/codecs/rt5651.c b/sound/soc/codecs/rt5651.c
rt5651->component = component; rt5651->component = component;
snd_soc_component_update_bits(component, RT5651_PWR_ANLG1, snd_soc_component_update_bits(component, RT5651_PWR_ANLG1,
diff -Naur a/sound/soc/codecs/rt5651.h b/sound/soc/codecs/rt5651.h --- a/sound/soc/codecs/rt5651.h
--- a/sound/soc/codecs/rt5651.h 2022-07-31 17:03:01.000000000 -0400 +++ b/sound/soc/codecs/rt5651.h
+++ b/sound/soc/codecs/rt5651.h 2022-08-09 17:00:56.994472344 -0400 @@ -2097,6 +2097,7 @@ struct rt5651_priv {
@@ -2097,6 +2097,7 @@
int dmic_en; int dmic_en;
bool hp_mute; bool hp_mute;
@ -160,10 +155,9 @@ diff -Naur a/sound/soc/codecs/rt5651.h b/sound/soc/codecs/rt5651.h
}; };
#endif /* __RT5651_H__ */ #endif /* __RT5651_H__ */
diff -Naur a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c b/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c --- a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c
--- a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c 2022-07-10 17:40:51.000000000 -0400 +++ b/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c
+++ b/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c 2022-07-11 05:18:34.000000000 -0400 @@ -91,80 +91,88 @@ static struct rockchip_hdmi *to_rockchip
@@ -91,80 +91,88 @@
static const struct dw_hdmi_mpll_config rockchip_mpll_cfg[] = { static const struct dw_hdmi_mpll_config rockchip_mpll_cfg[] = {
{ {
@ -324,7 +318,7 @@ diff -Naur a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c b/drivers/gpu/drm/rockc
}, },
} }
}; };
@@ -172,20 +180,8 @@ @@ -172,20 +180,8 @@ static const struct dw_hdmi_mpll_config
static const struct dw_hdmi_curr_ctrl rockchip_cur_ctr[] = { static const struct dw_hdmi_curr_ctrl rockchip_cur_ctr[] = {
/* pixelclk bpp8 bpp10 bpp12 */ /* pixelclk bpp8 bpp10 bpp12 */
{ {
@ -347,7 +341,7 @@ diff -Naur a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c b/drivers/gpu/drm/rockc
~0UL, { 0x0000, 0x0000, 0x0000}, ~0UL, { 0x0000, 0x0000, 0x0000},
} }
}; };
@@ -195,6 +191,7 @@ @@ -195,6 +191,7 @@ static const struct dw_hdmi_phy_config r
{ 74250000, 0x8009, 0x0004, 0x0272}, { 74250000, 0x8009, 0x0004, 0x0272},
{ 148500000, 0x802b, 0x0004, 0x028d}, { 148500000, 0x802b, 0x0004, 0x028d},
{ 297000000, 0x8039, 0x0005, 0x028d}, { 297000000, 0x8039, 0x0005, 0x028d},
@ -355,7 +349,7 @@ diff -Naur a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c b/drivers/gpu/drm/rockc
{ ~0UL, 0x0000, 0x0000, 0x0000} { ~0UL, 0x0000, 0x0000, 0x0000}
}; };
@@ -240,26 +237,6 @@ @@ -240,26 +237,6 @@ static int rockchip_hdmi_parse_dt(struct
return 0; return 0;
} }
@ -382,7 +376,7 @@ diff -Naur a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c b/drivers/gpu/drm/rockc
static void dw_hdmi_rockchip_encoder_disable(struct drm_encoder *encoder) static void dw_hdmi_rockchip_encoder_disable(struct drm_encoder *encoder)
{ {
} }
@@ -425,7 +402,6 @@ @@ -425,7 +402,6 @@ static struct rockchip_hdmi_chip_data rk
}; };
static const struct dw_hdmi_plat_data rk3228_hdmi_drv_data = { static const struct dw_hdmi_plat_data rk3228_hdmi_drv_data = {
@ -390,7 +384,7 @@ diff -Naur a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c b/drivers/gpu/drm/rockc
.mpll_cfg = rockchip_mpll_cfg, .mpll_cfg = rockchip_mpll_cfg,
.cur_ctr = rockchip_cur_ctr, .cur_ctr = rockchip_cur_ctr,
.phy_config = rockchip_phy_config, .phy_config = rockchip_phy_config,
@@ -442,7 +418,6 @@ @@ -442,7 +418,6 @@ static struct rockchip_hdmi_chip_data rk
}; };
static const struct dw_hdmi_plat_data rk3288_hdmi_drv_data = { static const struct dw_hdmi_plat_data rk3288_hdmi_drv_data = {
@ -398,7 +392,7 @@ diff -Naur a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c b/drivers/gpu/drm/rockc
.mpll_cfg = rockchip_mpll_cfg, .mpll_cfg = rockchip_mpll_cfg,
.cur_ctr = rockchip_cur_ctr, .cur_ctr = rockchip_cur_ctr,
.phy_config = rockchip_phy_config, .phy_config = rockchip_phy_config,
@@ -462,7 +437,6 @@ @@ -462,7 +437,6 @@ static struct rockchip_hdmi_chip_data rk
}; };
static const struct dw_hdmi_plat_data rk3328_hdmi_drv_data = { static const struct dw_hdmi_plat_data rk3328_hdmi_drv_data = {
@ -406,7 +400,7 @@ diff -Naur a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c b/drivers/gpu/drm/rockc
.mpll_cfg = rockchip_mpll_cfg, .mpll_cfg = rockchip_mpll_cfg,
.cur_ctr = rockchip_cur_ctr, .cur_ctr = rockchip_cur_ctr,
.phy_config = rockchip_phy_config, .phy_config = rockchip_phy_config,
@@ -480,7 +454,6 @@ @@ -480,7 +454,6 @@ static struct rockchip_hdmi_chip_data rk
}; };
static const struct dw_hdmi_plat_data rk3399_hdmi_drv_data = { static const struct dw_hdmi_plat_data rk3399_hdmi_drv_data = {
@ -414,7 +408,7 @@ diff -Naur a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c b/drivers/gpu/drm/rockc
.mpll_cfg = rockchip_mpll_cfg, .mpll_cfg = rockchip_mpll_cfg,
.cur_ctr = rockchip_cur_ctr, .cur_ctr = rockchip_cur_ctr,
.phy_config = rockchip_phy_config, .phy_config = rockchip_phy_config,
@@ -493,7 +466,6 @@ @@ -493,7 +466,6 @@ static struct rockchip_hdmi_chip_data rk
}; };
static const struct dw_hdmi_plat_data rk3568_hdmi_drv_data = { static const struct dw_hdmi_plat_data rk3568_hdmi_drv_data = {
@ -422,7 +416,7 @@ diff -Naur a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c b/drivers/gpu/drm/rockc
.mpll_cfg = rockchip_mpll_cfg, .mpll_cfg = rockchip_mpll_cfg,
.cur_ctr = rockchip_cur_ctr, .cur_ctr = rockchip_cur_ctr,
.phy_config = rockchip_phy_config, .phy_config = rockchip_phy_config,
@@ -597,6 +569,14 @@ @@ -598,6 +570,14 @@ static int dw_hdmi_rockchip_bind(struct
} }
if (hdmi->chip_data == &rk3568_chip_data) { if (hdmi->chip_data == &rk3568_chip_data) {

View File

@ -1,8 +1,6 @@
diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/rockchip/Makefile
index 8c15593..1e8c317 100644
--- a/arch/arm64/boot/dts/rockchip/Makefile --- a/arch/arm64/boot/dts/rockchip/Makefile
+++ b/arch/arm64/boot/dts/rockchip/Makefile +++ b/arch/arm64/boot/dts/rockchip/Makefile
@@ -71,4 +71,6 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-roc-pc.dtb @@ -71,4 +71,6 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-ro
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-soquartz-cm4.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-soquartz-cm4.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-bpi-r2-pro.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-bpi-r2-pro.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-evb1-v10.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-evb1-v10.dtb

View File

@ -14,8 +14,6 @@ Subject: [PATCH] friendlyelec-nanopi-series
create mode 100644 drivers/soc/friendlyelec/Makefile create mode 100644 drivers/soc/friendlyelec/Makefile
create mode 100644 drivers/soc/friendlyelec/board.c create mode 100644 drivers/soc/friendlyelec/board.c
diff --git a/drivers/soc/Kconfig b/drivers/soc/Kconfig
index e461c0711..a65fa9f4f 100644
--- a/drivers/soc/Kconfig --- a/drivers/soc/Kconfig
+++ b/drivers/soc/Kconfig +++ b/drivers/soc/Kconfig
@@ -27,5 +27,6 @@ source "drivers/soc/ti/Kconfig" @@ -27,5 +27,6 @@ source "drivers/soc/ti/Kconfig"
@ -25,8 +23,6 @@ index e461c0711..a65fa9f4f 100644
+source "drivers/soc/friendlyelec/Kconfig" +source "drivers/soc/friendlyelec/Kconfig"
endmenu endmenu
diff --git a/drivers/soc/Makefile b/drivers/soc/Makefile
index 69ba6508c..16ac16900 100644
--- a/drivers/soc/Makefile --- a/drivers/soc/Makefile
+++ b/drivers/soc/Makefile +++ b/drivers/soc/Makefile
@@ -33,3 +33,4 @@ obj-y += ti/ @@ -33,3 +33,4 @@ obj-y += ti/
@ -34,9 +30,6 @@ index 69ba6508c..16ac16900 100644
obj-$(CONFIG_PLAT_VERSATILE) += versatile/ obj-$(CONFIG_PLAT_VERSATILE) += versatile/
obj-y += xilinx/ obj-y += xilinx/
+obj-$(CONFIG_VENDOR_FRIENDLYELEC) += friendlyelec/ +obj-$(CONFIG_VENDOR_FRIENDLYELEC) += friendlyelec/
diff --git a/drivers/soc/friendlyelec/Kconfig b/drivers/soc/friendlyelec/Kconfig
new file mode 100644
index 000000000..642629ab7
--- /dev/null --- /dev/null
+++ b/drivers/soc/friendlyelec/Kconfig +++ b/drivers/soc/friendlyelec/Kconfig
@@ -0,0 +1,11 @@ @@ -0,0 +1,11 @@
@ -51,16 +44,10 @@ index 000000000..642629ab7
+ default n + default n
+ +
+endif +endif
diff --git a/drivers/soc/friendlyelec/Makefile b/drivers/soc/friendlyelec/Makefile
new file mode 100644
index 000000000..870542f05
--- /dev/null --- /dev/null
+++ b/drivers/soc/friendlyelec/Makefile +++ b/drivers/soc/friendlyelec/Makefile
@@ -0,0 +1 @@ @@ -0,0 +1 @@
+obj-$(CONFIG_VENDOR_FRIENDLYELEC) += board.o +obj-$(CONFIG_VENDOR_FRIENDLYELEC) += board.o
diff --git a/drivers/soc/friendlyelec/board.c b/drivers/soc/friendlyelec/board.c
new file mode 100644
index 000000000..886a8e1f7
--- /dev/null --- /dev/null
+++ b/drivers/soc/friendlyelec/board.c +++ b/drivers/soc/friendlyelec/board.c
@@ -0,0 +1,143 @@ @@ -0,0 +1,143 @@
@ -207,6 +194,3 @@ index 000000000..886a8e1f7
+MODULE_AUTHOR("support@friendlyarm.com"); +MODULE_AUTHOR("support@friendlyarm.com");
+MODULE_DESCRIPTION("FriendlyElec NanoPi Series Machine Driver"); +MODULE_DESCRIPTION("FriendlyElec NanoPi Series Machine Driver");
+MODULE_LICENSE("GPL v2"); +MODULE_LICENSE("GPL v2");
--
2.34.1

View File

@ -1,8 +1,6 @@
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-nanopi-r4s.dts b/arch/arm64/boot/dts/rockchip/rk3399-nanopi-r4s.dts
index fe5b52610..993d85f47 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-nanopi-r4s.dts --- a/arch/arm64/boot/dts/rockchip/rk3399-nanopi-r4s.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3399-nanopi-r4s.dts +++ b/arch/arm64/boot/dts/rockchip/rk3399-nanopi-r4s.dts
@@ -68,6 +68,15 @@ &emmc_phy { @@ -68,6 +68,15 @@
status = "disabled"; status = "disabled";
}; };

View File

@ -1,8 +1,6 @@
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-nanopi-r4s.dts b/arch/arm64/boot/dts/rockchip/rk3399-nanopi-r4s.dts
index 993d85f47..15feab9a4 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-nanopi-r4s.dts --- a/arch/arm64/boot/dts/rockchip/rk3399-nanopi-r4s.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3399-nanopi-r4s.dts +++ b/arch/arm64/boot/dts/rockchip/rk3399-nanopi-r4s.dts
@@ -19,6 +19,13 @@ / { @@ -19,6 +19,13 @@
model = "FriendlyElec NanoPi R4S"; model = "FriendlyElec NanoPi R4S";
compatible = "friendlyarm,nanopi-r4s", "rockchip,rk3399"; compatible = "friendlyarm,nanopi-r4s", "rockchip,rk3399";

View File

@ -1,8 +1,6 @@
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-nanopi-r4s.dts b/arch/arm64/boot/dts/rockchip/rk3399-nanopi-r4s.dts
index 15feab9a4..038d17276 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-nanopi-r4s.dts --- a/arch/arm64/boot/dts/rockchip/rk3399-nanopi-r4s.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3399-nanopi-r4s.dts +++ b/arch/arm64/boot/dts/rockchip/rk3399-nanopi-r4s.dts
@@ -128,6 +128,11 @@ &sdio0 { @@ -128,6 +128,11 @@
status = "disabled"; status = "disabled";
}; };

View File

@ -1,8 +1,6 @@
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-nanopi-r4s.dts b/arch/arm64/boot/dts/rockchip/rk3399-nanopi-r4s.dts
index 038d17276..16d2d8cc2 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-nanopi-r4s.dts --- a/arch/arm64/boot/dts/rockchip/rk3399-nanopi-r4s.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3399-nanopi-r4s.dts +++ b/arch/arm64/boot/dts/rockchip/rk3399-nanopi-r4s.dts
@@ -92,6 +92,19 @@ &pcie0 { @@ -92,6 +92,19 @@
max-link-speed = <1>; max-link-speed = <1>;
num-lanes = <1>; num-lanes = <1>;
vpcie3v3-supply = <&vcc3v3_sys>; vpcie3v3-supply = <&vcc3v3_sys>;

View File

@ -1,8 +1,6 @@
diff --git a/arch/arm64/boot/dts/rockchip/rk356x.dtsi b/arch/arm64/boot/dts/rockchip/rk356x.dtsi
index cc4848914..5262580ae 100644
--- a/arch/arm64/boot/dts/rockchip/rk356x.dtsi --- a/arch/arm64/boot/dts/rockchip/rk356x.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk356x.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk356x.dtsi
@@ -297,6 +297,7 @@ usb_host0_xhci: usb@fcc00000 { @@ -292,6 +292,7 @@
power-domains = <&power RK3568_PD_PIPE>; power-domains = <&power RK3568_PD_PIPE>;
resets = <&cru SRST_USB3OTG0>; resets = <&cru SRST_USB3OTG0>;
snps,dis_u2_susphy_quirk; snps,dis_u2_susphy_quirk;
@ -10,7 +8,7 @@ index cc4848914..5262580ae 100644
status = "disabled"; status = "disabled";
}; };
@@ -315,6 +316,7 @@ usb_host1_xhci: usb@fd000000 { @@ -310,6 +311,7 @@
power-domains = <&power RK3568_PD_PIPE>; power-domains = <&power RK3568_PD_PIPE>;
resets = <&cru SRST_USB3OTG1>; resets = <&cru SRST_USB3OTG1>;
snps,dis_u2_susphy_quirk; snps,dis_u2_susphy_quirk;
@ -18,11 +16,9 @@ index cc4848914..5262580ae 100644
status = "disabled"; status = "disabled";
}; };
diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
index 476b63618..2241fcc31 100644
--- a/drivers/usb/dwc3/core.c --- a/drivers/usb/dwc3/core.c
+++ b/drivers/usb/dwc3/core.c +++ b/drivers/usb/dwc3/core.c
@@ -1551,6 +1551,8 @@ static void dwc3_get_properties(struct dwc3 *dwc) @@ -1535,6 +1535,8 @@ static void dwc3_get_properties(struct d
"snps,dis-del-phy-power-chg-quirk"); "snps,dis-del-phy-power-chg-quirk");
dwc->dis_tx_ipgap_linecheck_quirk = device_property_read_bool(dev, dwc->dis_tx_ipgap_linecheck_quirk = device_property_read_bool(dev,
"snps,dis-tx-ipgap-linecheck-quirk"); "snps,dis-tx-ipgap-linecheck-quirk");
@ -31,11 +27,9 @@ index 476b63618..2241fcc31 100644
dwc->resume_hs_terminations = device_property_read_bool(dev, dwc->resume_hs_terminations = device_property_read_bool(dev,
"snps,resume-hs-terminations"); "snps,resume-hs-terminations");
dwc->parkmode_disable_ss_quirk = device_property_read_bool(dev, dwc->parkmode_disable_ss_quirk = device_property_read_bool(dev,
diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h
index 8f9959ba9..992d1cdf9 100644
--- a/drivers/usb/dwc3/core.h --- a/drivers/usb/dwc3/core.h
+++ b/drivers/usb/dwc3/core.h +++ b/drivers/usb/dwc3/core.h
@@ -1098,6 +1098,9 @@ struct dwc3_scratchpad_array { @@ -1095,6 +1095,9 @@ struct dwc3_scratchpad_array {
* change quirk. * change quirk.
* @dis_tx_ipgap_linecheck_quirk: set if we disable u2mac linestate * @dis_tx_ipgap_linecheck_quirk: set if we disable u2mac linestate
* check during HS transmit. * check during HS transmit.
@ -45,7 +39,7 @@ index 8f9959ba9..992d1cdf9 100644
* @resume-hs-terminations: Set if we enable quirk for fixing improper crc * @resume-hs-terminations: Set if we enable quirk for fixing improper crc
* generation after resume from suspend. * generation after resume from suspend.
* @parkmode_disable_ss_quirk: set if we need to disable all SuperSpeed * @parkmode_disable_ss_quirk: set if we need to disable all SuperSpeed
@@ -1315,6 +1318,7 @@ struct dwc3 { @@ -1314,6 +1317,7 @@ struct dwc3 {
unsigned dis_u2_freeclk_exists_quirk:1; unsigned dis_u2_freeclk_exists_quirk:1;
unsigned dis_del_phy_power_chg_quirk:1; unsigned dis_del_phy_power_chg_quirk:1;
unsigned dis_tx_ipgap_linecheck_quirk:1; unsigned dis_tx_ipgap_linecheck_quirk:1;
@ -53,11 +47,9 @@ index 8f9959ba9..992d1cdf9 100644
unsigned resume_hs_terminations:1; unsigned resume_hs_terminations:1;
unsigned parkmode_disable_ss_quirk:1; unsigned parkmode_disable_ss_quirk:1;
unsigned gfladj_refclk_lpm_sel:1; unsigned gfladj_refclk_lpm_sel:1;
diff --git a/drivers/usb/dwc3/host.c b/drivers/usb/dwc3/host.c
index f6f13e7f1..08a528693 100644
--- a/drivers/usb/dwc3/host.c --- a/drivers/usb/dwc3/host.c
+++ b/drivers/usb/dwc3/host.c +++ b/drivers/usb/dwc3/host.c
@@ -66,7 +66,7 @@ static int dwc3_host_get_irq(struct dwc3 *dwc) @@ -66,7 +66,7 @@ out:
int dwc3_host_init(struct dwc3 *dwc) int dwc3_host_init(struct dwc3 *dwc)
{ {
@ -76,11 +68,9 @@ index f6f13e7f1..08a528693 100644
if (dwc->usb2_lpm_disable) if (dwc->usb2_lpm_disable)
props[prop_idx++] = PROPERTY_ENTRY_BOOL("usb2-lpm-disable"); props[prop_idx++] = PROPERTY_ENTRY_BOOL("usb2-lpm-disable");
diff --git a/drivers/usb/host/xhci-plat.c b/drivers/usb/host/xhci-plat.c
index 5fb55bf19..44e3c87d2 100644
--- a/drivers/usb/host/xhci-plat.c --- a/drivers/usb/host/xhci-plat.c
+++ b/drivers/usb/host/xhci-plat.c +++ b/drivers/usb/host/xhci-plat.c
@@ -301,6 +301,9 @@ static int xhci_plat_probe(struct platform_device *pdev) @@ -301,6 +301,9 @@ static int xhci_plat_probe(struct platfo
if (device_property_read_bool(tmpdev, "quirk-broken-port-ped")) if (device_property_read_bool(tmpdev, "quirk-broken-port-ped"))
xhci->quirks |= XHCI_BROKEN_PORT_PED; xhci->quirks |= XHCI_BROKEN_PORT_PED;
@ -90,11 +80,9 @@ index 5fb55bf19..44e3c87d2 100644
device_property_read_u32(tmpdev, "imod-interval-ns", device_property_read_u32(tmpdev, "imod-interval-ns",
&xhci->imod_interval); &xhci->imod_interval);
} }
diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c
index 343709af4..785e5263f 100644
--- a/drivers/usb/host/xhci-ring.c --- a/drivers/usb/host/xhci-ring.c
+++ b/drivers/usb/host/xhci-ring.c +++ b/drivers/usb/host/xhci-ring.c
@@ -3526,6 +3526,7 @@ int xhci_queue_bulk_tx(struct xhci_hcd *xhci, gfp_t mem_flags, @@ -3533,6 +3533,7 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
bool more_trbs_coming = true; bool more_trbs_coming = true;
bool need_zero_pkt = false; bool need_zero_pkt = false;
bool first_trb = true; bool first_trb = true;
@ -102,7 +90,7 @@ index 343709af4..785e5263f 100644
unsigned int num_trbs; unsigned int num_trbs;
unsigned int start_cycle, num_sgs = 0; unsigned int start_cycle, num_sgs = 0;
unsigned int enqd_len, block_len, trb_buff_len, full_len; unsigned int enqd_len, block_len, trb_buff_len, full_len;
@@ -3562,6 +3563,13 @@ int xhci_queue_bulk_tx(struct xhci_hcd *xhci, gfp_t mem_flags, @@ -3569,6 +3570,13 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
if (urb->transfer_flags & URB_ZERO_PACKET && urb_priv->num_tds > 1) if (urb->transfer_flags & URB_ZERO_PACKET && urb_priv->num_tds > 1)
need_zero_pkt = true; need_zero_pkt = true;
@ -116,7 +104,7 @@ index 343709af4..785e5263f 100644
td = &urb_priv->td[0]; td = &urb_priv->td[0];
/* /*
@@ -3590,6 +3598,13 @@ int xhci_queue_bulk_tx(struct xhci_hcd *xhci, gfp_t mem_flags, @@ -3597,6 +3605,13 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
first_trb = false; first_trb = false;
if (start_cycle == 0) if (start_cycle == 0)
field |= TRB_CYCLE; field |= TRB_CYCLE;
@ -130,7 +118,7 @@ index 343709af4..785e5263f 100644
} else } else
field |= ring->cycle_state; field |= ring->cycle_state;
@@ -3598,6 +3613,8 @@ int xhci_queue_bulk_tx(struct xhci_hcd *xhci, gfp_t mem_flags, @@ -3605,6 +3620,8 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
*/ */
if (enqd_len + trb_buff_len < full_len) { if (enqd_len + trb_buff_len < full_len) {
field |= TRB_CHAIN; field |= TRB_CHAIN;
@ -139,11 +127,9 @@ index 343709af4..785e5263f 100644
if (trb_is_link(ring->enqueue + 1)) { if (trb_is_link(ring->enqueue + 1)) {
if (xhci_align_td(xhci, urb, enqd_len, if (xhci_align_td(xhci, urb, enqd_len,
&trb_buff_len, &trb_buff_len,
diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h
index c9f06c5e4..e57460e21 100644
--- a/drivers/usb/host/xhci.h --- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h +++ b/drivers/usb/host/xhci.h
@@ -1525,7 +1525,11 @@ static inline const char *xhci_trb_type_string(u8 type) @@ -1525,7 +1525,11 @@ static inline const char *xhci_trb_type_
#define TRB_SEGMENT_SIZE (TRBS_PER_SEGMENT*16) #define TRB_SEGMENT_SIZE (TRBS_PER_SEGMENT*16)
#define TRB_SEGMENT_SHIFT (ilog2(TRB_SEGMENT_SIZE)) #define TRB_SEGMENT_SHIFT (ilog2(TRB_SEGMENT_SIZE))
/* TRB buffer pointers can't cross 64KB boundaries */ /* TRB buffer pointers can't cross 64KB boundaries */
@ -155,7 +141,7 @@ index c9f06c5e4..e57460e21 100644
#define TRB_MAX_BUFF_SIZE (1 << TRB_MAX_BUFF_SHIFT) #define TRB_MAX_BUFF_SIZE (1 << TRB_MAX_BUFF_SHIFT)
/* How much data is left before the 64KB boundary? */ /* How much data is left before the 64KB boundary? */
#define TRB_BUFF_LEN_UP_TO_BOUNDARY(addr) (TRB_MAX_BUFF_SIZE - \ #define TRB_BUFF_LEN_UP_TO_BOUNDARY(addr) (TRB_MAX_BUFF_SIZE - \
@@ -1842,6 +1846,7 @@ struct xhci_hcd { @@ -1843,6 +1847,7 @@ struct xhci_hcd {
#define XHCI_STATE_HALTED (1 << 1) #define XHCI_STATE_HALTED (1 << 1)
#define XHCI_STATE_REMOVING (1 << 2) #define XHCI_STATE_REMOVING (1 << 2)
unsigned long long quirks; unsigned long long quirks;

View File

@ -1,8 +1,6 @@
diff --git a/arch/arm64/boot/dts/rockchip/rk3399.dtsi b/arch/arm64/boot/dts/rockchip/rk3399.dtsi
index 59858f2dc8b9..2b8f11aebf13 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399.dtsi --- a/arch/arm64/boot/dts/rockchip/rk3399.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3399.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk3399.dtsi
@@ -459,6 +459,7 @@ usbdrd_dwc3_0: usb@fe800000 { @@ -459,6 +459,7 @@
snps,dis_enblslpm_quirk; snps,dis_enblslpm_quirk;
snps,dis-u2-freeclk-exists-quirk; snps,dis-u2-freeclk-exists-quirk;
snps,dis_u2_susphy_quirk; snps,dis_u2_susphy_quirk;
@ -10,7 +8,7 @@ index 59858f2dc8b9..2b8f11aebf13 100644
snps,dis-del-phy-power-chg-quirk; snps,dis-del-phy-power-chg-quirk;
snps,dis-tx-ipgap-linecheck-quirk; snps,dis-tx-ipgap-linecheck-quirk;
power-domains = <&power RK3399_PD_USB3>; power-domains = <&power RK3399_PD_USB3>;
@@ -495,6 +496,7 @@ usbdrd_dwc3_1: usb@fe900000 { @@ -495,6 +496,7 @@
snps,dis_enblslpm_quirk; snps,dis_enblslpm_quirk;
snps,dis-u2-freeclk-exists-quirk; snps,dis-u2-freeclk-exists-quirk;
snps,dis_u2_susphy_quirk; snps,dis_u2_susphy_quirk;

View File

@ -1,6 +1,6 @@
--- a/arch/arm64/Kconfig --- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig
@@ -1133,6 +1133,14 @@ config SOCIONEXT_SYNQUACER_PREITS @@ -1152,6 +1152,14 @@ config SOCIONEXT_SYNQUACER_PREITS
If unsure, say Y. If unsure, say Y.
@ -35,7 +35,7 @@
num-lanes = <1>; num-lanes = <1>;
phys = <&pcie30phy>; phys = <&pcie30phy>;
phy-names = "pcie-phy"; phy-names = "pcie-phy";
@@ -116,7 +116,7 @@ @@ -117,7 +117,7 @@
compatible = "rockchip,rk3568-pcie"; compatible = "rockchip,rk3568-pcie";
#address-cells = <3>; #address-cells = <3>;
#size-cells = <2>; #size-cells = <2>;
@ -44,7 +44,7 @@
clocks = <&cru ACLK_PCIE30X2_MST>, <&cru ACLK_PCIE30X2_SLV>, clocks = <&cru ACLK_PCIE30X2_MST>, <&cru ACLK_PCIE30X2_SLV>,
<&cru ACLK_PCIE30X2_DBI>, <&cru PCLK_PCIE30X2>, <&cru ACLK_PCIE30X2_DBI>, <&cru PCLK_PCIE30X2>,
<&cru CLK_PCIE30X2_AUX_NDFT>; <&cru CLK_PCIE30X2_AUX_NDFT>;
@@ -139,7 +139,7 @@ @@ -140,7 +140,7 @@
num-ib-windows = <6>; num-ib-windows = <6>;
num-ob-windows = <2>; num-ob-windows = <2>;
max-link-speed = <3>; max-link-speed = <3>;
@ -55,7 +55,7 @@
phy-names = "pcie-phy"; phy-names = "pcie-phy";
--- a/arch/arm64/boot/dts/rockchip/rk356x.dtsi --- a/arch/arm64/boot/dts/rockchip/rk356x.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk356x.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk356x.dtsi
@@ -315,14 +315,21 @@ @@ -317,14 +317,21 @@
gic: interrupt-controller@fd400000 { gic: interrupt-controller@fd400000 {
compatible = "arm,gic-v3"; compatible = "arm,gic-v3";
@ -83,7 +83,7 @@
}; };
usb_host0_ehci: usb@fd800000 { usb_host0_ehci: usb@fd800000 {
@@ -975,7 +982,7 @@ @@ -978,7 +985,7 @@
num-ib-windows = <6>; num-ib-windows = <6>;
num-ob-windows = <2>; num-ob-windows = <2>;
max-link-speed = <2>; max-link-speed = <2>;

View File

@ -17,7 +17,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its
#define RD_LOCAL_LPI_ENABLED BIT(0) #define RD_LOCAL_LPI_ENABLED BIT(0)
#define RD_LOCAL_PENDTABLE_PREALLOCATED BIT(1) #define RD_LOCAL_PENDTABLE_PREALLOCATED BIT(1)
@@ -2172,6 +2173,11 @@ static struct page *its_allocate_prop_table(gfp_t gfp_flags) @@ -2203,6 +2204,11 @@ static struct page *its_allocate_prop_ta
{ {
struct page *prop_page; struct page *prop_page;
@ -29,7 +29,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its
prop_page = alloc_pages(gfp_flags, get_order(LPI_PROPBASE_SZ)); prop_page = alloc_pages(gfp_flags, get_order(LPI_PROPBASE_SZ));
if (!prop_page) if (!prop_page)
return NULL; return NULL;
@@ -2295,6 +2301,7 @@ static int its_setup_baser(struct its_node *its, struct its_baser *baser, @@ -2326,6 +2332,7 @@ static int its_setup_baser(struct its_no
u32 alloc_pages, psz; u32 alloc_pages, psz;
struct page *page; struct page *page;
void *base; void *base;
@ -37,7 +37,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its
psz = baser->psz; psz = baser->psz;
alloc_pages = (PAGE_ORDER_TO_SIZE(order) / psz); alloc_pages = (PAGE_ORDER_TO_SIZE(order) / psz);
@@ -2306,7 +2313,10 @@ static int its_setup_baser(struct its_node *its, struct its_baser *baser, @@ -2337,7 +2344,10 @@ static int its_setup_baser(struct its_no
order = get_order(GITS_BASER_PAGES_MAX * psz); order = get_order(GITS_BASER_PAGES_MAX * psz);
} }
@ -49,7 +49,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its
if (!page) if (!page)
return -ENOMEM; return -ENOMEM;
@@ -2353,6 +2363,13 @@ retry_baser: @@ -2384,6 +2394,13 @@ retry_baser:
its_write_baser(its, baser, val); its_write_baser(its, baser, val);
tmp = baser->val; tmp = baser->val;
@ -63,7 +63,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its
if ((val ^ tmp) & GITS_BASER_SHAREABILITY_MASK) { if ((val ^ tmp) & GITS_BASER_SHAREABILITY_MASK) {
/* /*
* Shareability didn't stick. Just use * Shareability didn't stick. Just use
@@ -2935,6 +2952,10 @@ static struct page *its_allocate_pending_table(gfp_t gfp_flags) @@ -2966,6 +2983,10 @@ static struct page *its_allocate_pending
{ {
struct page *pend_page; struct page *pend_page;
@ -74,7 +74,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its
pend_page = alloc_pages(gfp_flags | __GFP_ZERO, pend_page = alloc_pages(gfp_flags | __GFP_ZERO,
get_order(LPI_PENDBASE_SZ)); get_order(LPI_PENDBASE_SZ));
if (!pend_page) if (!pend_page)
@@ -3092,6 +3113,9 @@ static void its_cpu_init_lpis(void) @@ -3121,6 +3142,9 @@ static void its_cpu_init_lpis(void)
gicr_write_propbaser(val, rbase + GICR_PROPBASER); gicr_write_propbaser(val, rbase + GICR_PROPBASER);
tmp = gicr_read_propbaser(rbase + GICR_PROPBASER); tmp = gicr_read_propbaser(rbase + GICR_PROPBASER);
@ -84,7 +84,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its
if ((tmp ^ val) & GICR_PROPBASER_SHAREABILITY_MASK) { if ((tmp ^ val) & GICR_PROPBASER_SHAREABILITY_MASK) {
if (!(tmp & GICR_PROPBASER_SHAREABILITY_MASK)) { if (!(tmp & GICR_PROPBASER_SHAREABILITY_MASK)) {
/* /*
@@ -3116,6 +3140,9 @@ static void its_cpu_init_lpis(void) @@ -3145,6 +3169,9 @@ static void its_cpu_init_lpis(void)
gicr_write_pendbaser(val, rbase + GICR_PENDBASER); gicr_write_pendbaser(val, rbase + GICR_PENDBASER);
tmp = gicr_read_pendbaser(rbase + GICR_PENDBASER); tmp = gicr_read_pendbaser(rbase + GICR_PENDBASER);
@ -94,7 +94,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its
if (!(tmp & GICR_PENDBASER_SHAREABILITY_MASK)) { if (!(tmp & GICR_PENDBASER_SHAREABILITY_MASK)) {
/* /*
* The HW reports non-shareable, we must remove the * The HW reports non-shareable, we must remove the
@@ -3278,7 +3305,12 @@ static bool its_alloc_table_entry(struct its_node *its, @@ -3308,7 +3335,12 @@ static bool its_alloc_table_entry(struct
/* Allocate memory for 2nd level table */ /* Allocate memory for 2nd level table */
if (!table[idx]) { if (!table[idx]) {
@ -108,7 +108,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its
get_order(baser->psz)); get_order(baser->psz));
if (!page) if (!page)
return false; return false;
@@ -3367,6 +3399,7 @@ static struct its_device *its_create_device(struct its_node *its, u32 dev_id, @@ -3397,6 +3429,7 @@ static struct its_device *its_create_dev
int nr_lpis; int nr_lpis;
int nr_ites; int nr_ites;
int sz; int sz;
@ -116,7 +116,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its
if (!its_alloc_device_table(its, dev_id)) if (!its_alloc_device_table(its, dev_id))
return NULL; return NULL;
@@ -3374,7 +3407,11 @@ static struct its_device *its_create_device(struct its_node *its, u32 dev_id, @@ -3404,7 +3437,11 @@ static struct its_device *its_create_dev
if (WARN_ON(!is_power_of_2(nvecs))) if (WARN_ON(!is_power_of_2(nvecs)))
nvecs = roundup_pow_of_two(nvecs); nvecs = roundup_pow_of_two(nvecs);
@ -129,7 +129,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its
/* /*
* Even if the device wants a single LPI, the ITT must be * Even if the device wants a single LPI, the ITT must be
* sized as a power of two (and you need at least one bit...). * sized as a power of two (and you need at least one bit...).
@@ -3382,7 +3419,7 @@ static struct its_device *its_create_device(struct its_node *its, u32 dev_id, @@ -3412,7 +3449,7 @@ static struct its_device *its_create_dev
nr_ites = max(2, nvecs); nr_ites = max(2, nvecs);
sz = nr_ites * (FIELD_GET(GITS_TYPER_ITT_ENTRY_SIZE, its->typer) + 1); sz = nr_ites * (FIELD_GET(GITS_TYPER_ITT_ENTRY_SIZE, its->typer) + 1);
sz = max(sz, ITS_ITT_ALIGN) + ITS_ITT_ALIGN - 1; sz = max(sz, ITS_ITT_ALIGN) + ITS_ITT_ALIGN - 1;
@ -138,7 +138,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its
if (alloc_lpis) { if (alloc_lpis) {
lpi_map = its_lpi_alloc(nvecs, &lpi_base, &nr_lpis); lpi_map = its_lpi_alloc(nvecs, &lpi_base, &nr_lpis);
if (lpi_map) if (lpi_map)
@@ -4705,6 +4742,13 @@ static bool __maybe_unused its_enable_quirk_hip07_161600802(void *data) @@ -4727,6 +4764,13 @@ static bool __maybe_unused its_enable_qu
return true; return true;
} }
@ -152,11 +152,10 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its
static const struct gic_quirk its_quirks[] = { static const struct gic_quirk its_quirks[] = {
#ifdef CONFIG_CAVIUM_ERRATUM_22375 #ifdef CONFIG_CAVIUM_ERRATUM_22375
{ {
@@ -4750,6 +4794,14 @@ static const struct gic_quirk its_quirks[] = { @@ -4773,6 +4817,14 @@ static const struct gic_quirk its_quirks
.mask = 0xffffffff,
.init = its_enable_quirk_hip07_161600802, .init = its_enable_quirk_hip07_161600802,
}, },
+#endif #endif
+#ifdef CONFIG_ROCKCHIP_ERRATUM_114514 +#ifdef CONFIG_ROCKCHIP_ERRATUM_114514
+ { + {
+ .desc = "ITS: Rockchip erratum 114514", + .desc = "ITS: Rockchip erratum 114514",
@ -164,10 +163,11 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its
+ .mask = 0xffffffff, + .mask = 0xffffffff,
+ .init = its_enable_quirk_rk3568, + .init = its_enable_quirk_rk3568,
+ }, + },
#endif +#endif
{ {
} }
@@ -4974,6 +5026,7 @@ static int __init its_probe_one(struct resource *res, };
@@ -5028,6 +5080,7 @@ static int __init its_probe_one(struct r
struct page *page; struct page *page;
u32 ctlr; u32 ctlr;
int err; int err;
@ -175,7 +175,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its
its_base = its_map_one(res, &err); its_base = its_map_one(res, &err);
if (!its_base) if (!its_base)
@@ -5042,7 +5095,9 @@ static int __init its_probe_one(struct resource *res, @@ -5081,7 +5134,9 @@ static int __init its_probe_one(struct r
its->numa_node = numa_node; its->numa_node = numa_node;
@ -186,7 +186,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its
get_order(ITS_CMD_QUEUE_SZ)); get_order(ITS_CMD_QUEUE_SZ));
if (!page) { if (!page) {
err = -ENOMEM; err = -ENOMEM;
@@ -5073,6 +5128,9 @@ static int __init its_probe_one(struct resource *res, @@ -5112,6 +5167,9 @@ static int __init its_probe_one(struct r
gits_write_cbaser(baser, its->base + GITS_CBASER); gits_write_cbaser(baser, its->base + GITS_CBASER);
tmp = gits_read_cbaser(its->base + GITS_CBASER); tmp = gits_read_cbaser(its->base + GITS_CBASER);

View File

@ -15,7 +15,7 @@ Signed-off-by: Heiko Stuebner <heiko@sntech.de>
--- a/arch/arm64/boot/dts/rockchip/rk356x.dtsi --- a/arch/arm64/boot/dts/rockchip/rk356x.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk356x.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk356x.dtsi
@@ -1049,20 +1049,6 @@ @@ -1060,20 +1060,6 @@
status = "disabled"; status = "disabled";
}; };
@ -36,7 +36,7 @@ Signed-off-by: Heiko Stuebner <heiko@sntech.de>
i2s0_8ch: i2s@fe400000 { i2s0_8ch: i2s@fe400000 {
compatible = "rockchip,rk3568-i2s-tdm"; compatible = "rockchip,rk3568-i2s-tdm";
reg = <0x0 0xfe400000 0x0 0x1000>; reg = <0x0 0xfe400000 0x0 0x1000>;
@@ -1141,6 +1127,20 @@ @@ -1152,6 +1138,20 @@
#sound-dai-cells = <0>; #sound-dai-cells = <0>;
status = "disabled"; status = "disabled";
}; };

View File

@ -14,7 +14,7 @@ Signed-off-by: Heiko Stuebner <heiko@sntech.de>
--- a/arch/arm64/boot/dts/rockchip/rk356x.dtsi --- a/arch/arm64/boot/dts/rockchip/rk356x.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk356x.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk356x.dtsi
@@ -1091,6 +1091,28 @@ @@ -1102,6 +1102,28 @@
status = "disabled"; status = "disabled";
}; };

View File

@ -15,7 +15,7 @@
$(Q)$(MAKE) $(build)=$(boot) $(boot)/$@ $(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
--- a/scripts/Makefile --- a/scripts/Makefile
+++ b/scripts/Makefile +++ b/scripts/Makefile
@@ -10,6 +10,7 @@ hostprogs-always-$(CONFIG_BUILDTIME_TABLE_SORT) += sorttable @@ -10,6 +10,7 @@ hostprogs-always-$(CONFIG_BUILDTIME_TABL
hostprogs-always-$(CONFIG_ASN1) += asn1_compiler hostprogs-always-$(CONFIG_ASN1) += asn1_compiler
hostprogs-always-$(CONFIG_MODULE_SIG_FORMAT) += sign-file hostprogs-always-$(CONFIG_MODULE_SIG_FORMAT) += sign-file
hostprogs-always-$(CONFIG_SYSTEM_EXTRA_CERTIFICATE) += insert-sys-cert hostprogs-always-$(CONFIG_SYSTEM_EXTRA_CERTIFICATE) += insert-sys-cert