-LINUX_VERSION-6.6 = .43
-LINUX_KERNEL_HASH-6.6.43 = 0ad83b1a1a780a1aad948d55aa55ee63c50c626f2d46910b9d2180028d100a5e
+LINUX_VERSION-6.6 = .44
+LINUX_KERNEL_HASH-6.6.44 = 93218296934915636fe6ba08e125948424cc270fd8948502c0ab91087a9fccd8
--- a/drivers/mtd/nand/raw/Kconfig
+++ b/drivers/mtd/nand/raw/Kconfig
-@@ -543,4 +543,12 @@ config MTD_NAND_DISKONCHIP_BBTWRITE
+@@ -542,4 +542,12 @@ config MTD_NAND_DISKONCHIP_BBTWRITE
load time (assuming you build diskonchip as a module) with the module
parameter "inftl_bbt_write=1".
#include <linux/uaccess.h>
#include <linux/ipv6.h>
#include <linux/icmpv6.h>
-@@ -897,10 +898,10 @@ static void tcp_v6_send_response(const s
+@@ -893,10 +894,10 @@ static void tcp_v6_send_response(const s
topt = (__be32 *)(t1 + 1);
if (tsecr) {
obj-$(CONFIG_GPIO_RDA) += gpio-rda.o
--- a/drivers/mtd/nand/raw/Kconfig
+++ b/drivers/mtd/nand/raw/Kconfig
-@@ -551,4 +551,11 @@ config MTD_NAND_AR934X
+@@ -550,4 +550,11 @@ config MTD_NAND_AR934X
Enables support for NAND controller on Qualcomm Atheros SoCs.
This controller is found on AR934x and QCA955x SoCs.
obj-$(CONFIG_GPIO_RDA) += gpio-rda.o
--- a/drivers/mtd/nand/raw/Kconfig
+++ b/drivers/mtd/nand/raw/Kconfig
-@@ -558,4 +558,10 @@ config MTD_NAND_RB4XX
+@@ -557,4 +557,10 @@ config MTD_NAND_RB4XX
Enables support for the NAND flash chip on Mikrotik Routerboard
RB4xx series.
* For devices with more than one control interface, we assume the
--- a/sound/usb/quirks.c
+++ b/sound/usb/quirks.c
-@@ -2185,6 +2185,8 @@ static const struct usb_audio_quirk_flag
+@@ -2189,6 +2189,8 @@ static const struct usb_audio_quirk_flag
QUIRK_FLAG_ALIGN_TRANSFER),
DEVICE_FLG(0x534d, 0x2109, /* MacroSilicon MS2109 */
QUIRK_FLAG_ALIGN_TRANSFER),
--- a/scripts/Makefile.lib
+++ b/scripts/Makefile.lib
-@@ -428,6 +428,12 @@ cmd_dtco = mkdir -p $(dir ${dtc-tmp}) ;
+@@ -432,6 +432,12 @@ cmd_dtco = mkdir -p $(dir ${dtc-tmp}) ;
$(DTC) -@ -H epapr -O dtb -o $@ -b 0 \
-i $(dir $<) $(DTC_FLAGS) \
-Wno-interrupts_property \
depends on I2C && OF
--- a/drivers/mfd/Makefile
+++ b/drivers/mfd/Makefile
-@@ -285,3 +285,5 @@ rsmu-i2c-objs := rsmu_core.o rsmu_i2c.
- rsmu-spi-objs := rsmu_core.o rsmu_spi.o
- obj-$(CONFIG_MFD_RSMU_I2C) += rsmu-i2c.o
- obj-$(CONFIG_MFD_RSMU_SPI) += rsmu-spi.o
-+
+@@ -283,3 +283,5 @@ obj-$(CONFIG_MFD_ATC260X_I2C) += atc260x
+
+ obj-$(CONFIG_MFD_RSMU_I2C) += rsmu_i2c.o rsmu_core.o
+ obj-$(CONFIG_MFD_RSMU_SPI) += rsmu_spi.o rsmu_core.o
++
+obj-$(CONFIG_MFD_RP1) += rp1.o
--- /dev/null
+++ b/drivers/mfd/rp1.c
};
--- a/arch/mips/kernel/smp-cps.c
+++ b/arch/mips/kernel/smp-cps.c
-@@ -392,7 +392,7 @@ static void cps_smp_finish(void)
+@@ -395,7 +395,7 @@ static void cps_smp_finish(void)
local_irq_enable();
}
enum cpu_death {
CPU_DEATH_HALT,
-@@ -429,7 +429,7 @@ static void cps_shutdown_this_cpu(enum c
+@@ -432,7 +432,7 @@ static void cps_shutdown_this_cpu(enum c
}
}
static void cps_kexec_nonboot_cpu(void)
{
-@@ -439,9 +439,9 @@ static void cps_kexec_nonboot_cpu(void)
+@@ -442,9 +442,9 @@ static void cps_kexec_nonboot_cpu(void)
cps_shutdown_this_cpu(CPU_DEATH_POWER);
}
#ifdef CONFIG_HOTPLUG_CPU
-@@ -610,7 +610,7 @@ static const struct plat_smp_ops cps_smp
+@@ -613,7 +613,7 @@ static const struct plat_smp_ops cps_smp
.cpu_die = cps_cpu_die,
.cleanup_dead_cpu = cps_cleanup_dead_cpu,
#endif
};
--- a/arch/mips/loongson64/reset.c
+++ b/arch/mips/loongson64/reset.c
-@@ -53,7 +53,7 @@ static void loongson_halt(void)
- }
+@@ -39,7 +39,7 @@ static int firmware_poweroff(struct sys_
+ return NOTIFY_DONE;
}
-#ifdef CONFIG_KEXEC
/* 0X80000000~0X80200000 is safe */
#define MAX_ARGS 64
-@@ -158,7 +158,7 @@ static int __init mips_reboot_setup(void
- _machine_halt = loongson_halt;
- pm_power_off = loongson_poweroff;
+@@ -152,7 +152,7 @@ static int __init mips_reboot_setup(void
+ firmware_poweroff, NULL);
+ }
-#ifdef CONFIG_KEXEC
+#ifdef CONFIG_KEXEC_CORE
return -ENOMEM;
--- a/arch/mips/loongson64/smp.c
+++ b/arch/mips/loongson64/smp.c
-@@ -864,7 +864,7 @@ const struct plat_smp_ops loongson3_smp_
+@@ -883,7 +883,7 @@ const struct plat_smp_ops loongson3_smp_
.cpu_disable = loongson3_cpu_disable,
.cpu_die = loongson3_cpu_die,
#endif
--- a/drivers/net/dsa/mv88e6xxx/chip.c
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
-@@ -3668,7 +3668,7 @@ static int mv88e6xxx_mdio_register(struc
+@@ -3669,7 +3669,7 @@ static int mv88e6xxx_mdio_register(struc
if (external) {
mv88e6xxx_reg_lock(chip);
--- a/drivers/net/dsa/mv88e6xxx/chip.c
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
-@@ -3668,7 +3668,10 @@ static int mv88e6xxx_mdio_register(struc
+@@ -3669,7 +3669,10 @@ static int mv88e6xxx_mdio_register(struc
if (external) {
mv88e6xxx_reg_lock(chip);
{ {0x02, 0x21}, "lz4", unlz4 },
--- a/scripts/Makefile.lib
+++ b/scripts/Makefile.lib
-@@ -456,10 +456,10 @@ quiet_cmd_bzip2_with_size = BZIP2 $@
+@@ -460,10 +460,10 @@ quiet_cmd_bzip2_with_size = BZIP2 $@
# ---------------------------------------------------------------------------
quiet_cmd_lzma = LZMA $@
--- a/net/ipv4/fib_trie.c
+++ b/net/ipv4/fib_trie.c
-@@ -3036,11 +3036,13 @@ static const struct seq_operations fib_r
+@@ -3037,11 +3037,13 @@ static const struct seq_operations fib_r
int __net_init fib_proc_init(struct net *net)
{
fib_triestat_seq_show, NULL))
goto out2;
-@@ -3051,17 +3053,21 @@ int __net_init fib_proc_init(struct net
+@@ -3052,17 +3054,21 @@ int __net_init fib_proc_init(struct net
return 0;
out3:
+MODULE_LICENSE("GPL");
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
-@@ -4486,6 +4486,7 @@ int wake_up_state(struct task_struct *p,
+@@ -4483,6 +4483,7 @@ int wake_up_state(struct task_struct *p,
{
return try_to_wake_up(p, state, 0);
}
#endif /* _KOBJECT_H_ */
--- a/lib/kobject_uevent.c
+++ b/lib/kobject_uevent.c
-@@ -691,6 +691,43 @@ int add_uevent_var(struct kobj_uevent_en
+@@ -706,6 +706,43 @@ int add_uevent_var(struct kobj_uevent_en
EXPORT_SYMBOL_GPL(add_uevent_var);
#if defined(CONFIG_NET)
#define PACKET_FANOUT_LB 1
--- a/net/packet/af_packet.c
+++ b/net/packet/af_packet.c
-@@ -1864,6 +1864,7 @@ static int packet_rcv_spkt(struct sk_buf
+@@ -1925,6 +1925,7 @@ static int packet_rcv_spkt(struct sk_buf
{
struct sock *sk;
struct sockaddr_pkt *spkt;
/*
* When we registered the protocol we saved the socket in the data
-@@ -1871,6 +1872,7 @@ static int packet_rcv_spkt(struct sk_buf
+@@ -1932,6 +1933,7 @@ static int packet_rcv_spkt(struct sk_buf
*/
sk = pt->af_packet_priv;
/*
* Yank back the headers [hope the device set this
-@@ -1883,7 +1885,7 @@ static int packet_rcv_spkt(struct sk_buf
+@@ -1944,7 +1946,7 @@ static int packet_rcv_spkt(struct sk_buf
* so that this procedure is noop.
*/
goto out;
if (!net_eq(dev_net(dev), sock_net(sk)))
-@@ -2129,12 +2131,12 @@ static int packet_rcv(struct sk_buff *sk
+@@ -2190,12 +2192,12 @@ static int packet_rcv(struct sk_buff *sk
unsigned int snaplen, res;
bool is_drop_n_account = false;
if (!net_eq(dev_net(dev), sock_net(sk)))
goto drop;
-@@ -2261,12 +2263,12 @@ static int tpacket_rcv(struct sk_buff *s
+@@ -2322,12 +2324,12 @@ static int tpacket_rcv(struct sk_buff *s
BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h2)) != 32);
BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h3)) != 48);
if (!net_eq(dev_net(dev), sock_net(sk)))
goto drop;
-@@ -3385,6 +3387,7 @@ static int packet_create(struct net *net
+@@ -3451,6 +3453,7 @@ static int packet_create(struct net *net
mutex_init(&po->pg_vec_lock);
po->rollover = NULL;
po->prot_hook.func = packet_rcv;
if (sock->type == SOCK_PACKET)
po->prot_hook.func = packet_rcv_spkt;
-@@ -4036,6 +4039,16 @@ packet_setsockopt(struct socket *sock, i
+@@ -4118,6 +4121,16 @@ packet_setsockopt(struct socket *sock, i
packet_sock_flag_set(po, PACKET_SOCK_QDISC_BYPASS, val);
return 0;
}
default:
return -ENOPROTOOPT;
}
-@@ -4095,6 +4108,13 @@ static int packet_getsockopt(struct sock
+@@ -4177,6 +4190,13 @@ static int packet_getsockopt(struct sock
case PACKET_VNET_HDR_SZ:
val = READ_ONCE(po->vnet_hdr_sz);
break;
static void rt_fibinfo_free(struct rtable __rcu **rtp)
--- a/net/ipv4/fib_trie.c
+++ b/net/ipv4/fib_trie.c
-@@ -2783,6 +2783,7 @@ static const char *const rtn_type_names[
+@@ -2784,6 +2784,7 @@ static const char *const rtn_type_names[
[RTN_THROW] = "THROW",
[RTN_NAT] = "NAT",
[RTN_XRESOLVE] = "XRESOLVE",
static inline void gro_normal_list(struct napi_struct *napi)
--- a/include/net/tcp.h
+++ b/include/net/tcp.h
-@@ -2083,7 +2083,10 @@ void tcp_v4_destroy_sock(struct sock *sk
+@@ -2084,7 +2084,10 @@ void tcp_v4_destroy_sock(struct sock *sk
struct sk_buff *tcp_gso_segment(struct sk_buff *skb,
netdev_features_t features);
--- a/drivers/net/dsa/mv88e6xxx/chip.c
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
-@@ -6992,6 +6992,7 @@ static int mv88e6xxx_register_switch(str
+@@ -6993,6 +6993,7 @@ static int mv88e6xxx_register_switch(str
ds->ops = &mv88e6xxx_switch_ops;
ds->ageing_time_min = chip->info->age_time_coeff;
ds->ageing_time_max = chip->info->age_time_coeff * U8_MAX;
(transaction layer end-to-end CRC checking).
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
-@@ -1599,6 +1599,8 @@ void pci_walk_bus_locked(struct pci_bus
+@@ -1600,6 +1600,8 @@ void pci_walk_bus_locked(struct pci_bus
void *userdata);
int pci_cfg_space_size(struct pci_dev *dev);
unsigned char pci_bus_max_busnr(struct pci_bus *bus);
--- a/drivers/mtd/nand/raw/Kconfig
+++ b/drivers/mtd/nand/raw/Kconfig
-@@ -338,6 +338,14 @@ config MTD_NAND_QCOM
+@@ -337,6 +337,14 @@ config MTD_NAND_QCOM
Enables support for NAND flash chips on SoCs containing the EBI2 NAND
controller. This controller is found on IPQ806x SoC.
--- a/drivers/media/usb/uvc/uvc_driver.c
+++ b/drivers/media/usb/uvc/uvc_driver.c
-@@ -3151,6 +3151,18 @@ static const struct usb_device_id uvc_id
+@@ -3173,6 +3173,18 @@ static const struct usb_device_id uvc_id
.bInterfaceSubClass = 1,
.bInterfaceProtocol = 0,
.driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) },
#include <media/v4l2-common.h>
-@@ -1235,9 +1240,149 @@ static void uvc_video_decode_data(struct
+@@ -1246,9 +1251,149 @@ static void uvc_video_decode_data(struct
uvc_urb->async_operations++;
}
/* Mark the buffer as done if the EOF marker is set. */
if (data[1] & UVC_STREAM_EOF && buf->bytesused != 0) {
uvc_dbg(stream->dev, FRAME, "Frame complete (EOF found)\n");
-@@ -1819,6 +1964,8 @@ static int uvc_init_video_isoc(struct uv
+@@ -1830,6 +1975,8 @@ static int uvc_init_video_isoc(struct uv
if (npackets == 0)
return -ENOMEM;
for_each_uvc_urb(uvc_urb, stream) {
--- a/drivers/media/usb/uvc/uvcvideo.h
+++ b/drivers/media/usb/uvc/uvcvideo.h
-@@ -74,6 +74,8 @@
- #define UVC_QUIRK_FORCE_BPP 0x00001000
- #define UVC_QUIRK_WAKE_AUTOSUSPEND 0x00002000
+@@ -76,6 +76,8 @@
#define UVC_QUIRK_NO_RESET_RESUME 0x00004000
-+#define UVC_QUIRK_MOTION 0x00008000
-+#define UVC_QUIRK_SINGLE_ISO 0x00010000
+ #define UVC_QUIRK_DISABLE_AUTOSUSPEND 0x00008000
+ #define UVC_QUIRK_INVALID_DEVICE_SOF 0x00010000
++#define UVC_QUIRK_MOTION 0x00020000
++#define UVC_QUIRK_SINGLE_ISO 0x00040000
/* Format flags */
#define UVC_FMT_FLAG_COMPRESSED 0x00000001
-@@ -583,6 +585,7 @@ struct uvc_device {
+@@ -585,6 +587,7 @@ struct uvc_device {
struct input_dev *input;
char input_phys[64];
--- a/arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dts
-@@ -258,3 +258,61 @@
+@@ -315,3 +315,61 @@
&wdt {
status = "okay";
};
--- a/arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dts
-@@ -151,6 +151,68 @@
- status = "okay";
+@@ -166,6 +166,68 @@
+ };
};
+&gpio0 {
&i2c1 {
status = "okay";
};
-@@ -258,61 +320,3 @@
+@@ -315,61 +377,3 @@
&wdt {
status = "okay";
};
+++ /dev/null
-From fc0daeccc384233eadfa9d5ddbd00159653c6bdc Mon Sep 17 00:00:00 2001
-From: Jonas Karlman <jonas@kwiboo.se>
-Date: Tue, 21 May 2024 21:10:07 +0000
-Subject: [PATCH] arm64: dts: rockchip: Add sdmmc related properties on
- rk3308-rock-pi-s
-
-Add cap-mmc-highspeed to allow use of high speed MMC mode using an eMMC
-to uSD board. Use disable-wp to signal that no physical write-protect
-line is present. Also add vcc_io used for card and IO line power as
-vmmc-supply.
-
-Fixes: 2e04c25b1320 ("arm64: dts: rockchip: add ROCK Pi S DTS support")
-Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
-Link: https://lore.kernel.org/r/20240521211029.1236094-5-jonas@kwiboo.se
-Signed-off-by: Heiko Stuebner <heiko@sntech.de>
----
- arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dts | 3 +++
- 1 file changed, 3 insertions(+)
-
---- a/arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dts
-+++ b/arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dts
-@@ -272,7 +272,10 @@
- };
-
- &sdmmc {
-+ cap-mmc-highspeed;
- cap-sd-highspeed;
-+ disable-wp;
-+ vmmc-supply = <&vcc_io>;
- status = "okay";
- };
-
+++ /dev/null
-From 7affb86ef62581e3475ce3e0a7640da1f2ee29f8 Mon Sep 17 00:00:00 2001
-From: Jonas Karlman <jonas@kwiboo.se>
-Date: Tue, 21 May 2024 21:10:08 +0000
-Subject: [PATCH] arm64: dts: rockchip: Add pinctrl for UART0 to
- rk3308-rock-pi-s
-
-UAR0 CTS/RTS is not wired to any pin and is not used for the default
-serial console use of UART0 on ROCK Pi S.
-
-Override the SoC defined pinctrl props to limit configuration of the
-two xfer pins wired to one of the GPIO pin headers.
-
-Fixes: 2e04c25b1320 ("arm64: dts: rockchip: add ROCK Pi S DTS support")
-Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
-Link: https://lore.kernel.org/r/20240521211029.1236094-6-jonas@kwiboo.se
-Signed-off-by: Heiko Stuebner <heiko@sntech.de>
----
- arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dts | 2 ++
- 1 file changed, 2 insertions(+)
-
---- a/arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dts
-+++ b/arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dts
-@@ -294,6 +294,8 @@
- };
-
- &uart0 {
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&uart0_xfer>;
- status = "okay";
- };
-
+++ /dev/null
-From 4b64ed510ed946a4e4ca6d51d6512bf5361f6a04 Mon Sep 17 00:00:00 2001
-From: Jonas Karlman <jonas@kwiboo.se>
-Date: Tue, 21 May 2024 21:10:10 +0000
-Subject: [PATCH] arm64: dts: rockchip: Add mdio and ethernet-phy nodes to
- rk3308-rock-pi-s
-
-Be explicit about the Ethernet port and define mdio and ethernet-phy
-nodes in the device tree for ROCK Pi S.
-
-Fixes: bc3753aed81f ("arm64: dts: rockchip: rock-pi-s add more peripherals")
-Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
-Link: https://lore.kernel.org/r/20240521211029.1236094-8-jonas@kwiboo.se
-Signed-off-by: Heiko Stuebner <heiko@sntech.de>
----
- .../boot/dts/rockchip/rk3308-rock-pi-s.dts | 26 ++++++++++++++++---
- 1 file changed, 23 insertions(+), 3 deletions(-)
-
---- a/arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dts
-+++ b/arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dts
-@@ -144,11 +144,25 @@
-
- &gmac {
- clock_in_out = "output";
-+ phy-handle = <&rtl8201f>;
- phy-supply = <&vcc_io>;
-- snps,reset-gpio = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>;
-- snps,reset-active-low;
-- snps,reset-delays-us = <0 50000 50000>;
- status = "okay";
-+
-+ mdio {
-+ compatible = "snps,dwmac-mdio";
-+ #address-cells = <1>;
-+ #size-cells = <0>;
-+
-+ rtl8201f: ethernet-phy@1 {
-+ compatible = "ethernet-phy-ieee802.3-c22";
-+ reg = <1>;
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&mac_rst>;
-+ reset-assert-us = <20000>;
-+ reset-deassert-us = <50000>;
-+ reset-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>;
-+ };
-+ };
- };
-
- &gpio0 {
-@@ -221,6 +235,12 @@
- pinctrl-names = "default";
- pinctrl-0 = <&rtc_32k>;
-
-+ gmac {
-+ mac_rst: mac-rst {
-+ rockchip,pins = <0 RK_PA7 RK_FUNC_GPIO &pcfg_pull_none>;
-+ };
-+ };
-+
- leds {
- green_led: green-led {
- rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
--- a/arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dts
-@@ -231,6 +231,16 @@
+@@ -232,6 +232,16 @@
status = "okay";
};
+++ /dev/null
-From 12c3ec878cbe3709782e85b88124abecc3bb8617 Mon Sep 17 00:00:00 2001
-From: Jonas Karlman <jonas@kwiboo.se>
-Date: Tue, 21 May 2024 21:10:16 +0000
-Subject: [PATCH] arm64: dts: rockchip: Update WIFi/BT related nodes on
- rk3308-rock-pi-s
-
-Update WiFi SDIO and BT UART related props to better reflect details
-about the optional onboard RTL8723DS WiFi/BT module.
-
-Also correct the compatible used for bluetooth to match the WiFi/BT
-module used on the board.
-
-Fixes: bc3753aed81f ("arm64: dts: rockchip: rock-pi-s add more peripherals")
-Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
-Link: https://lore.kernel.org/r/20240521211029.1236094-14-jonas@kwiboo.se
-Signed-off-by: Heiko Stuebner <heiko@sntech.de>
----
- .../boot/dts/rockchip/rk3308-rock-pi-s.dts | 40 +++++++++++++++++--
- 1 file changed, 36 insertions(+), 4 deletions(-)
-
---- a/arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dts
-+++ b/arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dts
-@@ -17,6 +17,7 @@
- ethernet0 = &gmac;
- mmc0 = &emmc;
- mmc1 = &sdmmc;
-+ mmc2 = &sdio;
- };
-
- chosen {
-@@ -245,6 +246,20 @@
- pinctrl-names = "default";
- pinctrl-0 = <&rtc_32k>;
-
-+ bluetooth {
-+ bt_reg_on: bt-reg-on {
-+ rockchip,pins = <4 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
-+ };
-+
-+ bt_wake_host: bt-wake-host {
-+ rockchip,pins = <4 RK_PB4 RK_FUNC_GPIO &pcfg_pull_down>;
-+ };
-+
-+ host_wake_bt: host-wake-bt {
-+ rockchip,pins = <4 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
-+ };
-+ };
-+
- gmac {
- mac_rst: mac-rst {
- rockchip,pins = <0 RK_PA7 RK_FUNC_GPIO &pcfg_pull_none>;
-@@ -294,11 +309,24 @@
- cap-sd-highspeed;
- cap-sdio-irq;
- keep-power-in-suspend;
-- max-frequency = <1000000>;
-+ max-frequency = <100000000>;
- mmc-pwrseq = <&sdio_pwrseq>;
-+ no-mmc;
-+ no-sd;
- non-removable;
-- sd-uhs-sdr104;
-+ sd-uhs-sdr50;
-+ vmmc-supply = <&vcc_io>;
-+ vqmmc-supply = <&vcc_1v8>;
- status = "okay";
-+
-+ rtl8723ds: wifi@1 {
-+ reg = <1>;
-+ interrupt-parent = <&gpio0>;
-+ interrupts = <RK_PA0 IRQ_TYPE_LEVEL_HIGH>;
-+ interrupt-names = "host-wake";
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&wifi_host_wake>;
-+ };
- };
-
- &sdmmc {
-@@ -330,12 +358,16 @@
- };
-
- &uart4 {
-+ uart-has-rtscts;
- status = "okay";
-
- bluetooth {
-- compatible = "realtek,rtl8723bs-bt";
-- device-wake-gpios = <&gpio4 RK_PB3 GPIO_ACTIVE_HIGH>;
-+ compatible = "realtek,rtl8723ds-bt";
-+ device-wake-gpios = <&gpio4 RK_PB2 GPIO_ACTIVE_HIGH>;
-+ enable-gpios = <&gpio4 RK_PB3 GPIO_ACTIVE_HIGH>;
- host-wake-gpios = <&gpio4 RK_PB4 GPIO_ACTIVE_HIGH>;
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&bt_reg_on &bt_wake_host &host_wake_bt>;
- };
- };
-
phy-names = "usb2-phy", "usb3-phy";
--- a/arch/arm64/boot/dts/rockchip/rk356x.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk356x.dtsi
-@@ -1105,6 +1105,16 @@
+@@ -1106,6 +1106,16 @@
status = "disabled";
};
+++ /dev/null
-From 28b8d7793b8573563b3d45321376f36168d77b1e Mon Sep 17 00:00:00 2001
-From: Niklas Cassel <cassel@kernel.org>
-Date: Wed, 17 Apr 2024 18:42:26 +0200
-Subject: [PATCH] PCI: dw-rockchip: Fix initial PERST# GPIO value
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-PERST# is active low according to the PCIe specification.
-
-However, the existing pcie-dw-rockchip.c driver does:
-
- gpiod_set_value(..., 0); msleep(100); gpiod_set_value(..., 1);
-
-when asserting + deasserting PERST#.
-
-This is of course wrong, but because all the device trees for this
-compatible string have also incorrectly marked this GPIO as ACTIVE_HIGH:
-
- $ git grep -B 10 reset-gpios arch/arm64/boot/dts/rockchip/rk3568*
- $ git grep -B 10 reset-gpios arch/arm64/boot/dts/rockchip/rk3588*
-
-The actual toggling of PERST# is correct, and we cannot change it anyway,
-since that would break device tree compatibility.
-
-However, this driver does request the GPIO to be initialized as
-GPIOD_OUT_HIGH, which does cause a silly sequence where PERST# gets
-toggled back and forth for no good reason.
-
-Fix this by requesting the GPIO to be initialized as GPIOD_OUT_LOW (which
-for this driver means PERST# asserted).
-
-This will avoid an unnecessary signal change where PERST# gets deasserted
-(by devm_gpiod_get_optional()) and then gets asserted (by
-rockchip_pcie_start_link()) just a few instructions later.
-
-Before patch, debug prints on EP side, when booting RC:
-
- [ 845.606810] pci: PERST# asserted by host!
- [ 852.483985] pci: PERST# de-asserted by host!
- [ 852.503041] pci: PERST# asserted by host!
- [ 852.610318] pci: PERST# de-asserted by host!
-
-After patch, debug prints on EP side, when booting RC:
-
- [ 125.107921] pci: PERST# asserted by host!
- [ 132.111429] pci: PERST# de-asserted by host!
-
-This extra, very short, PERST# assertion + deassertion has been reported to
-cause issues with certain WLAN controllers, e.g. RTL8822CE.
-
-Fixes: 0e898eb8df4e ("PCI: rockchip-dwc: Add Rockchip RK356X host controller driver")
-Link: https://lore.kernel.org/linux-pci/20240417164227.398901-1-cassel@kernel.org
-Tested-by: Heiko Stuebner <heiko@sntech.de>
-Tested-by: Jianfeng Liu <liujianfeng1994@gmail.com>
-Signed-off-by: Niklas Cassel <cassel@kernel.org>
-Signed-off-by: Krzysztof WilczyĆski <kwilczynski@kernel.org>
-Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
-Reviewed-by: Heiko Stuebner <heiko@sntech.de>
-Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
-Cc: stable@vger.kernel.org # v5.15+
----
- drivers/pci/controller/dwc/pcie-dw-rockchip.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/drivers/pci/controller/dwc/pcie-dw-rockchip.c
-+++ b/drivers/pci/controller/dwc/pcie-dw-rockchip.c
-@@ -240,7 +240,7 @@ static int rockchip_pcie_resource_get(st
- return PTR_ERR(rockchip->apb_base);
-
- rockchip->rst_gpio = devm_gpiod_get_optional(&pdev->dev, "reset",
-- GPIOD_OUT_HIGH);
-+ GPIOD_OUT_LOW);
- if (IS_ERR(rockchip->rst_gpio))
- return PTR_ERR(rockchip->rst_gpio);
-
--- a/arch/arm/boot/dts/allwinner/Makefile
+++ b/arch/arm/boot/dts/allwinner/Makefile
-@@ -280,6 +280,7 @@ dtb-$(CONFIG_MACH_SUN8I) += \
+@@ -219,6 +219,7 @@ dtb-$(CONFIG_MACH_SUN8I) += \
sun8i-a83t-cubietruck-plus.dtb \
sun8i-a83t-tbs-a711.dtb \
sun8i-h2-plus-bananapi-m2-zero.dtb \