diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/ARM-dts-sun8i-a83t-Add-MBUS-node.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/ARM-dts-sun8i-a83t-Add-MBUS-node.patch index a252810f0..3cf82c83f 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/ARM-dts-sun8i-a83t-Add-MBUS-node.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/ARM-dts-sun8i-a83t-Add-MBUS-node.patch @@ -1,7 +1,7 @@ -From 915d54d4cf209b0908edb71f084655818542d08c Mon Sep 17 00:00:00 2001 +From 1fc7e47abf56387841d2e569fe4721d742e328d1 Mon Sep 17 00:00:00 2001 From: Samuel Holland Date: Sat, 3 Apr 2021 20:53:26 -0500 -Subject: [PATCH 274/515] ARM: dts: sun8i: a83t: Add MBUS node +Subject: [PATCH 273/534] ARM: dts: sun8i: a83t: Add MBUS node Signed-off-by: Samuel Holland --- @@ -9,10 +9,10 @@ Signed-off-by: Samuel Holland 1 file changed, 15 insertions(+) diff --git a/arch/arm/boot/dts/sun8i-a83t.dtsi b/arch/arm/boot/dts/sun8i-a83t.dtsi -index 82fdb04122ca..de80148eca4a 100644 +index e4eb2120e..f0711d68b 100644 --- a/arch/arm/boot/dts/sun8i-a83t.dtsi +++ b/arch/arm/boot/dts/sun8i-a83t.dtsi -@@ -1041,6 +1041,21 @@ mdio: mdio { +@@ -1070,6 +1070,21 @@ mdio: mdio { }; }; diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/ARM-dts-sun8i-a83t-Add-cedrus-video-codec-support-to-A83T-untes.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/ARM-dts-sun8i-a83t-Add-cedrus-video-codec-support-to-A83T-untes.patch index fd23ca2a2..955bb4222 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/ARM-dts-sun8i-a83t-Add-cedrus-video-codec-support-to-A83T-untes.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/ARM-dts-sun8i-a83t-Add-cedrus-video-codec-support-to-A83T-untes.patch @@ -1,7 +1,7 @@ -From 8ae70dbd44ce89c8f49340d4dc49e1dbe8d01ecd Mon Sep 17 00:00:00 2001 +From 740353f1594f41b815fdc9c4e6e50165c294068c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Mon, 9 Sep 2019 06:02:10 +0200 -Subject: [PATCH 024/515] ARM: dts: sun8i-a83t: Add cedrus video codec support +Subject: [PATCH 029/534] ARM: dts: sun8i-a83t: Add cedrus video codec support to A83T [untested] Not tested at all. @@ -12,10 +12,10 @@ Signed-off-by: Ondrej Jirman 1 file changed, 10 insertions(+) diff --git a/arch/arm/boot/dts/sun8i-a83t.dtsi b/arch/arm/boot/dts/sun8i-a83t.dtsi -index 82fdb04122ca..79e8690d7e3f 100644 +index c437254a1..1f75e5f55 100644 --- a/arch/arm/boot/dts/sun8i-a83t.dtsi +++ b/arch/arm/boot/dts/sun8i-a83t.dtsi -@@ -441,6 +441,16 @@ syscon: syscon@1c00000 { +@@ -405,6 +405,16 @@ syscon: syscon@1c00000 { reg = <0x01c00000 0x1000>; }; diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/ARM-dts-sun8i-a83t-Set-fifo-size-for-uarts.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/ARM-dts-sun8i-a83t-Set-fifo-size-for-uarts.patch index da6b31418..8ff8de8ae 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/ARM-dts-sun8i-a83t-Set-fifo-size-for-uarts.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/ARM-dts-sun8i-a83t-Set-fifo-size-for-uarts.patch @@ -1,7 +1,7 @@ -From 2a698019ab857bdaf5fd5901034410cb1bf1894c Mon Sep 17 00:00:00 2001 +From e2eb9c70cb1f9b21d707eb9471ce2601f2c0d750 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Sat, 1 Feb 2020 23:41:47 +0100 -Subject: [PATCH 142/515] ARM: dts: sun8i-a83t: Set fifo-size for uarts +Subject: [PATCH 148/534] ARM: dts: sun8i-a83t: Set fifo-size for uarts Boot time optimization. @@ -11,10 +11,10 @@ Signed-off-by: Ondrej Jirman 1 file changed, 5 insertions(+) diff --git a/arch/arm/boot/dts/sun8i-a83t.dtsi b/arch/arm/boot/dts/sun8i-a83t.dtsi -index 82fdb04122ca..2035839513e0 100644 +index 999d8edd2..6f59546af 100644 --- a/arch/arm/boot/dts/sun8i-a83t.dtsi +++ b/arch/arm/boot/dts/sun8i-a83t.dtsi -@@ -933,6 +933,7 @@ uart0: serial@1c28000 { +@@ -912,6 +912,7 @@ uart0: serial@1c28000 { interrupts = ; reg-shift = <2>; reg-io-width = <4>; @@ -22,7 +22,7 @@ index 82fdb04122ca..2035839513e0 100644 clocks = <&ccu CLK_BUS_UART0>; resets = <&ccu RST_BUS_UART0>; status = "disabled"; -@@ -944,6 +945,7 @@ uart1: serial@1c28400 { +@@ -923,6 +924,7 @@ uart1: serial@1c28400 { interrupts = ; reg-shift = <2>; reg-io-width = <4>; @@ -30,7 +30,7 @@ index 82fdb04122ca..2035839513e0 100644 clocks = <&ccu CLK_BUS_UART1>; resets = <&ccu RST_BUS_UART1>; status = "disabled"; -@@ -955,6 +957,7 @@ uart2: serial@1c28800 { +@@ -934,6 +936,7 @@ uart2: serial@1c28800 { interrupts = ; reg-shift = <2>; reg-io-width = <4>; @@ -38,7 +38,7 @@ index 82fdb04122ca..2035839513e0 100644 clocks = <&ccu CLK_BUS_UART2>; resets = <&ccu RST_BUS_UART2>; status = "disabled"; -@@ -966,6 +969,7 @@ uart3: serial@1c28c00 { +@@ -945,6 +948,7 @@ uart3: serial@1c28c00 { interrupts = ; reg-shift = <2>; reg-io-width = <4>; @@ -46,7 +46,7 @@ index 82fdb04122ca..2035839513e0 100644 clocks = <&ccu CLK_BUS_UART3>; resets = <&ccu RST_BUS_UART3>; status = "disabled"; -@@ -977,6 +981,7 @@ uart4: serial@1c29000 { +@@ -956,6 +960,7 @@ uart4: serial@1c29000 { interrupts = ; reg-shift = <2>; reg-io-width = <4>; diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Give-Linux-more-privileges-over-SCP.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Give-Linux-more-privileges-over-SCP.patch index 034d8a626..cb66402be 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Give-Linux-more-privileges-over-SCP.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Give-Linux-more-privileges-over-SCP.patch @@ -1,7 +1,7 @@ -From 11ac10549bd91e4060c9f79b86077e563fc9bd06 Mon Sep 17 00:00:00 2001 +From ce22cfe84ef174794a957bed4d349a50873d26a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Tue, 23 Jun 2020 19:19:46 +0200 -Subject: [PATCH 164/515] ARM: dts: sun8i-a83t-tbs-a711: Give Linux more +Subject: [PATCH 168/534] ARM: dts: sun8i-a83t-tbs-a711: Give Linux more privileges over SCPI This is needed since on A83T there's no PSCI/ATF implementation. @@ -12,10 +12,10 @@ Signed-off-by: Ondrej Jirman 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/arch/arm/boot/dts/sun8i-a83t.dtsi b/arch/arm/boot/dts/sun8i-a83t.dtsi -index 488dc41e5af0..533d8e60f5eb 100644 +index 7d0bd243b..682fe7005 100644 --- a/arch/arm/boot/dts/sun8i-a83t.dtsi +++ b/arch/arm/boot/dts/sun8i-a83t.dtsi -@@ -308,7 +308,7 @@ opp-1200000000 { +@@ -272,7 +272,7 @@ opp-1800000000 { scpi_protocol: scpi { compatible = "arm,scpi"; @@ -24,7 +24,7 @@ index 488dc41e5af0..533d8e60f5eb 100644 mbox-names = "tx", "rx"; shmem = <&scpi_sram>; }; -@@ -446,6 +446,9 @@ syscon: syscon@1c00000 { +@@ -410,6 +410,9 @@ syscon: syscon@1c00000 { compatible = "allwinner,sun8i-a83t-system-controller", "syscon"; reg = <0x01c00000 0x1000>; @@ -34,7 +34,7 @@ index 488dc41e5af0..533d8e60f5eb 100644 sram_a2: sram@40000 { compatible = "mmio-sram"; -@@ -456,7 +459,7 @@ sram_a2: sram@40000 { +@@ -420,7 +423,7 @@ sram_a2: sram@40000 { scpi_sram: scp-shmem@13c00 { compatible = "arm,scp-shmem"; diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/ARM-dts-sun8i-h3-Enable-hdmi-sound-card-on-boards-with-hdmi.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/ARM-dts-sun8i-h3-Enable-hdmi-sound-card-on-boards-with-hdmi.patch index 5f1d30cbc..3fe5855d3 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/ARM-dts-sun8i-h3-Enable-hdmi-sound-card-on-boards-with-hdmi.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/ARM-dts-sun8i-h3-Enable-hdmi-sound-card-on-boards-with-hdmi.patch @@ -1,7 +1,7 @@ -From 785098d037b7b03eba77518f7764f8282c7b5d43 Mon Sep 17 00:00:00 2001 +From 1484397adbb1e9842f5e94f3614090ef736c3e3d Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Sun, 9 May 2021 11:06:37 +0200 -Subject: [PATCH 237/515] ARM: dts: sun8i: h3: Enable hdmi sound card on boards +Subject: [PATCH 237/534] ARM: dts: sun8i: h3: Enable hdmi sound card on boards with hdmi Each board that has HDMI connector can also transmit audio through it. @@ -22,7 +22,7 @@ Signed-off-by: Jernej Skrabec 10 files changed, 80 insertions(+) diff --git a/arch/arm/boot/dts/sun8i-h3-beelink-x2.dts b/arch/arm/boot/dts/sun8i-h3-beelink-x2.dts -index cd9f655e4f92..eae1187b8266 100644 +index cd9f655e4..eae1187b8 100644 --- a/arch/arm/boot/dts/sun8i-h3-beelink-x2.dts +++ b/arch/arm/boot/dts/sun8i-h3-beelink-x2.dts @@ -159,6 +159,10 @@ hdmi_out_con: endpoint { @@ -48,7 +48,7 @@ index cd9f655e4f92..eae1187b8266 100644 pinctrl-names = "default"; pinctrl-0 = <&spdif_tx_pin>; diff --git a/arch/arm/boot/dts/sun8i-h3-emlid-neutis-n5h3-devboard.dts b/arch/arm/boot/dts/sun8i-h3-emlid-neutis-n5h3-devboard.dts -index 02fbe00cde97..61d6529dcc70 100644 +index 02fbe00cd..61d6529dc 100644 --- a/arch/arm/boot/dts/sun8i-h3-emlid-neutis-n5h3-devboard.dts +++ b/arch/arm/boot/dts/sun8i-h3-emlid-neutis-n5h3-devboard.dts @@ -70,3 +70,11 @@ hdmi_out_con: endpoint { @@ -64,7 +64,7 @@ index 02fbe00cde97..61d6529dcc70 100644 + status = "okay"; +}; diff --git a/arch/arm/boot/dts/sun8i-h3-nanopi-m1-plus.dts b/arch/arm/boot/dts/sun8i-h3-nanopi-m1-plus.dts -index 4ba533b0340f..e94ffe3c1c69 100644 +index 4ba533b03..e94ffe3c1 100644 --- a/arch/arm/boot/dts/sun8i-h3-nanopi-m1-plus.dts +++ b/arch/arm/boot/dts/sun8i-h3-nanopi-m1-plus.dts @@ -118,6 +118,10 @@ hdmi_out_con: endpoint { @@ -90,7 +90,7 @@ index 4ba533b0340f..e94ffe3c1c69 100644 pinctrl-names = "default"; pinctrl-0 = <&uart3_pins>, <&uart3_rts_cts_pins>; diff --git a/arch/arm/boot/dts/sun8i-h3-nanopi-m1.dts b/arch/arm/boot/dts/sun8i-h3-nanopi-m1.dts -index 69243dcb30a6..9393779f33b6 100644 +index 69243dcb3..9393779f3 100644 --- a/arch/arm/boot/dts/sun8i-h3-nanopi-m1.dts +++ b/arch/arm/boot/dts/sun8i-h3-nanopi-m1.dts @@ -91,6 +91,10 @@ hdmi_out_con: endpoint { @@ -113,7 +113,7 @@ index 69243dcb30a6..9393779f33b6 100644 + status = "okay"; +}; diff --git a/arch/arm/boot/dts/sun8i-h3-orangepi-2.dts b/arch/arm/boot/dts/sun8i-h3-orangepi-2.dts -index 9daffd90c12f..858ce46826e7 100644 +index 9daffd90c..858ce4682 100644 --- a/arch/arm/boot/dts/sun8i-h3-orangepi-2.dts +++ b/arch/arm/boot/dts/sun8i-h3-orangepi-2.dts @@ -145,6 +145,10 @@ hdmi_out_con: endpoint { @@ -139,7 +139,7 @@ index 9daffd90c12f..858ce46826e7 100644 pinctrl-names = "default"; pinctrl-0 = <&uart0_pa_pins>; diff --git a/arch/arm/boot/dts/sun8i-h3-orangepi-lite.dts b/arch/arm/boot/dts/sun8i-h3-orangepi-lite.dts -index 6f9c97add54e..420aa5afd304 100644 +index 6f9c97add..420aa5afd 100644 --- a/arch/arm/boot/dts/sun8i-h3-orangepi-lite.dts +++ b/arch/arm/boot/dts/sun8i-h3-orangepi-lite.dts @@ -120,6 +120,10 @@ hdmi_out_con: endpoint { @@ -165,7 +165,7 @@ index 6f9c97add54e..420aa5afd304 100644 pinctrl-names = "default"; pinctrl-0 = <&uart0_pa_pins>; diff --git a/arch/arm/boot/dts/sun8i-h3-orangepi-one.dts b/arch/arm/boot/dts/sun8i-h3-orangepi-one.dts -index 4759ba3f2986..097f784bce0e 100644 +index 4759ba3f2..097f784bc 100644 --- a/arch/arm/boot/dts/sun8i-h3-orangepi-one.dts +++ b/arch/arm/boot/dts/sun8i-h3-orangepi-one.dts @@ -146,6 +146,10 @@ hdmi_out_con: endpoint { @@ -191,7 +191,7 @@ index 4759ba3f2986..097f784bce0e 100644 pinctrl-names = "default"; pinctrl-0 = <&uart0_pa_pins>; diff --git a/arch/arm/boot/dts/sun8i-h3-orangepi-pc.dts b/arch/arm/boot/dts/sun8i-h3-orangepi-pc.dts -index 90f75fa85e68..78aa09736a61 100644 +index ff38d37ca..65231259a 100644 --- a/arch/arm/boot/dts/sun8i-h3-orangepi-pc.dts +++ b/arch/arm/boot/dts/sun8i-h3-orangepi-pc.dts @@ -147,6 +147,10 @@ hdmi_out_con: endpoint { @@ -205,7 +205,7 @@ index 90f75fa85e68..78aa09736a61 100644 &ir { pinctrl-names = "default"; pinctrl-0 = <&r_ir_rx_pin>; -@@ -205,6 +209,10 @@ ®_usb0_vbus { +@@ -206,6 +210,10 @@ ®_usb0_vbus { status = "okay"; }; @@ -217,7 +217,7 @@ index 90f75fa85e68..78aa09736a61 100644 pinctrl-names = "default"; pinctrl-0 = <&uart0_pa_pins>; diff --git a/arch/arm/boot/dts/sun8i-h3-orangepi-zero-plus2.dts b/arch/arm/boot/dts/sun8i-h3-orangepi-zero-plus2.dts -index 561ea1d2f861..70202baa54b9 100644 +index 561ea1d2f..70202baa5 100644 --- a/arch/arm/boot/dts/sun8i-h3-orangepi-zero-plus2.dts +++ b/arch/arm/boot/dts/sun8i-h3-orangepi-zero-plus2.dts @@ -117,6 +117,10 @@ hdmi_out_con: endpoint { @@ -243,7 +243,7 @@ index 561ea1d2f861..70202baa54b9 100644 pinctrl-names = "default"; pinctrl-0 = <&uart0_pa_pins>; diff --git a/arch/arm/boot/dts/sun8i-h3-rervision-dvk.dts b/arch/arm/boot/dts/sun8i-h3-rervision-dvk.dts -index 4738f3a9efe4..ee645912ee39 100644 +index 4738f3a9e..ee645912e 100644 --- a/arch/arm/boot/dts/sun8i-h3-rervision-dvk.dts +++ b/arch/arm/boot/dts/sun8i-h3-rervision-dvk.dts @@ -69,6 +69,10 @@ hdmi_out_con: endpoint { diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/ARM-dts-sun8i-h3-orange-pi-one-Enable-all-gpio-header-UARTs.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/ARM-dts-sun8i-h3-orange-pi-one-Enable-all-gpio-header-UARTs.patch index 2aff15275..2c3811399 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/ARM-dts-sun8i-h3-orange-pi-one-Enable-all-gpio-header-UARTs.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/ARM-dts-sun8i-h3-orange-pi-one-Enable-all-gpio-header-UARTs.patch @@ -1,7 +1,7 @@ -From fd2ed44e4f7b0b874ceb59005ee360ee2810b4a5 Mon Sep 17 00:00:00 2001 +From dbbb21cf1475319e244355fa52ce978b002691fa Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Sat, 2 Apr 2022 02:24:26 +0200 -Subject: [PATCH 273/515] ARM: dts: sun8i-h3-orange-pi-one: Enable all gpio +Subject: [PATCH 272/534] ARM: dts: sun8i-h3-orange-pi-one: Enable all gpio header UARTs --- @@ -9,7 +9,7 @@ Subject: [PATCH 273/515] ARM: dts: sun8i-h3-orange-pi-one: Enable all gpio 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/arch/arm/boot/dts/sun8i-h3-orangepi-one.dts b/arch/arm/boot/dts/sun8i-h3-orangepi-one.dts -index 147b574d9887..50f643c91aba 100644 +index 96d2d5498..50479e716 100644 --- a/arch/arm/boot/dts/sun8i-h3-orangepi-one.dts +++ b/arch/arm/boot/dts/sun8i-h3-orangepi-one.dts @@ -54,6 +54,9 @@ / { @@ -22,7 +22,7 @@ index 147b574d9887..50f643c91aba 100644 }; chosen { -@@ -175,19 +178,19 @@ &uart0 { +@@ -183,19 +186,19 @@ &uart0 { &uart1 { pinctrl-names = "default"; pinctrl-0 = <&uart1_pins>; diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/ARM-dts-suni-a83t-Add-i2s0-pins.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/ARM-dts-suni-a83t-Add-i2s0-pins.patch index 8fec7f423..dddb40041 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/ARM-dts-suni-a83t-Add-i2s0-pins.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/ARM-dts-suni-a83t-Add-i2s0-pins.patch @@ -1,7 +1,7 @@ -From ad4f9e13c0f19b0d4a9e748000d7061b092c123d Mon Sep 17 00:00:00 2001 +From 3f3519821d15e806ca029bdf2c090a2f014ba56b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Sun, 12 Nov 2017 19:03:39 +0100 -Subject: [PATCH 026/515] ARM: dts: suni-a83t: Add i2s0 pins +Subject: [PATCH 031/534] ARM: dts: suni-a83t: Add i2s0 pins Signed-off-by: Ondrej Jirman --- @@ -9,10 +9,10 @@ Signed-off-by: Ondrej Jirman 1 file changed, 5 insertions(+) diff --git a/arch/arm/boot/dts/sun8i-a83t.dtsi b/arch/arm/boot/dts/sun8i-a83t.dtsi -index 79e8690d7e3f..6f8a0e47f210 100644 +index 1f75e5f55..999d8edd2 100644 --- a/arch/arm/boot/dts/sun8i-a83t.dtsi +++ b/arch/arm/boot/dts/sun8i-a83t.dtsi -@@ -829,6 +829,11 @@ spdif_tx_pin: spdif-tx-pin { +@@ -793,6 +793,11 @@ spdif_tx_pin: spdif-tx-pin { function = "spdif"; }; diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/ARM-dts-sunxi-a83t-Protect-SCP-clocks.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/ARM-dts-sunxi-a83t-Protect-SCP-clocks.patch index 703e9fcf3..1bfaeb043 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/ARM-dts-sunxi-a83t-Protect-SCP-clocks.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/ARM-dts-sunxi-a83t-Protect-SCP-clocks.patch @@ -1,7 +1,7 @@ -From 9f4023fefffee06a2d775a84dec42d69ec44f276 Mon Sep 17 00:00:00 2001 +From b672cc47779f926c8ab1c1f873c53c7083414378 Mon Sep 17 00:00:00 2001 From: Samuel Holland Date: Wed, 1 Jan 2020 16:03:34 -0600 -Subject: [PATCH 148/515] ARM: dts: sunxi: a83t: Protect SCP clocks +Subject: [PATCH 152/534] ARM: dts: sunxi: a83t: Protect SCP clocks Signed-off-by: Samuel Holland --- @@ -9,10 +9,10 @@ Signed-off-by: Samuel Holland 1 file changed, 2 insertions(+) diff --git a/arch/arm/boot/dts/sun8i-a83t.dtsi b/arch/arm/boot/dts/sun8i-a83t.dtsi -index 82fdb04122ca..63d117f0e962 100644 +index 6f59546af..4cc090eb8 100644 --- a/arch/arm/boot/dts/sun8i-a83t.dtsi +++ b/arch/arm/boot/dts/sun8i-a83t.dtsi -@@ -702,6 +702,7 @@ ccu: clock@1c20000 { +@@ -676,6 +676,7 @@ ccu: clock@1c20000 { reg = <0x01c20000 0x400>; clocks = <&osc24M>, <&osc16Md512>; clock-names = "hosc", "losc"; @@ -20,7 +20,7 @@ index 82fdb04122ca..63d117f0e962 100644 #clock-cells = <1>; #reset-cells = <1>; }; -@@ -1123,6 +1124,7 @@ r_ccu: clock@1f01400 { +@@ -1107,6 +1108,7 @@ r_ccu: clock@1f01400 { clocks = <&osc24M>, <&osc16Md512>, <&osc16M>, <&ccu CLK_PLL_PERIPH>; clock-names = "hosc", "losc", "iosc", "pll-periph"; diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/ARM-dts-sunxi-h3-h5-Add-SCPI-protocol.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/ARM-dts-sunxi-h3-h5-Add-SCPI-protocol.patch index 4017a71f2..c43d7fc40 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/ARM-dts-sunxi-h3-h5-Add-SCPI-protocol.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/ARM-dts-sunxi-h3-h5-Add-SCPI-protocol.patch @@ -1,7 +1,7 @@ -From 9bbd195d54b10ae7729c03d03d8d82b5b3f75448 Mon Sep 17 00:00:00 2001 +From 309ac980c5126efa453630a0c9dc3e4876a1482a Mon Sep 17 00:00:00 2001 From: Samuel Holland Date: Wed, 1 Jan 2020 16:12:36 -0600 -Subject: [PATCH 161/515] ARM: dts: sunxi: h3/h5: Add SCPI protocol +Subject: [PATCH 165/534] ARM: dts: sunxi: h3/h5: Add SCPI protocol Signed-off-by: Samuel Holland --- @@ -11,10 +11,10 @@ Signed-off-by: Samuel Holland 3 files changed, 33 insertions(+) diff --git a/arch/arm/boot/dts/sun8i-h3.dtsi b/arch/arm/boot/dts/sun8i-h3.dtsi -index eac2349a2380..b641026d0407 100644 +index da1991c99..e601317d5 100644 --- a/arch/arm/boot/dts/sun8i-h3.dtsi +++ b/arch/arm/boot/dts/sun8i-h3.dtsi -@@ -170,6 +170,19 @@ syscon: system-control@1c00000 { +@@ -206,6 +206,19 @@ syscon: system-control@1c00000 { #size-cells = <1>; ranges; @@ -35,7 +35,7 @@ index eac2349a2380..b641026d0407 100644 compatible = "mmio-sram"; reg = <0x01d00000 0x80000>; diff --git a/arch/arm/boot/dts/sunxi-h3-h5.dtsi b/arch/arm/boot/dts/sunxi-h3-h5.dtsi -index 5ffc4052b3d3..1374eaa02370 100644 +index 5ffc4052b..1374eaa02 100644 --- a/arch/arm/boot/dts/sunxi-h3-h5.dtsi +++ b/arch/arm/boot/dts/sunxi-h3-h5.dtsi @@ -105,6 +105,13 @@ de: display-engine { @@ -53,7 +53,7 @@ index 5ffc4052b3d3..1374eaa02370 100644 compatible = "simple-bus"; #address-cells = <1>; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi -index a56fae761a1f..212eb1757b8b 100644 +index a56fae761..212eb1757 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi @@ -86,6 +86,19 @@ syscon: system-control@1c00000 { diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/Input-pinephone-keyboard-Add-PinePhone-keyboard-driver.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/Input-pinephone-keyboard-Add-PinePhone-keyboard-driver.patch index f36ddf333..f8e26e11c 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/Input-pinephone-keyboard-Add-PinePhone-keyboard-driver.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/Input-pinephone-keyboard-Add-PinePhone-keyboard-driver.patch @@ -1,7 +1,7 @@ -From 321b54544c2d1edc623c2fdd26a0d46ea3630256 Mon Sep 17 00:00:00 2001 +From 54c648f5e0bcdf441d72a6d7e519a67d33552d36 Mon Sep 17 00:00:00 2001 From: Samuel Holland Date: Sat, 29 Jan 2022 17:00:39 -0600 -Subject: [PATCH 376/515] Input: pinephone-keyboard - Add PinePhone keyboard +Subject: [PATCH 380/534] Input: pinephone-keyboard - Add PinePhone keyboard driver The official Pine64 PinePhone keyboard case contains a matrix keypad and @@ -17,10 +17,10 @@ Signed-off-by: Samuel Holland create mode 100644 drivers/input/keyboard/pinephone-keyboard.c diff --git a/MAINTAINERS b/MAINTAINERS -index f468864fd268..425e7d56bf60 100644 +index d10bb7a31..e6d09d58a 100644 --- a/MAINTAINERS +++ b/MAINTAINERS -@@ -15659,6 +15659,12 @@ S: Maintained +@@ -15665,6 +15665,12 @@ S: Maintained F: Documentation/devicetree/bindings/iio/chemical/plantower,pms7003.yaml F: drivers/iio/chemical/pms7003.c @@ -34,7 +34,7 @@ index f468864fd268..425e7d56bf60 100644 M: Jacob Keller S: Maintained diff --git a/drivers/input/keyboard/Kconfig b/drivers/input/keyboard/Kconfig -index 4ea79db8f134..8439b38c69f4 100644 +index 4ea79db8f..8439b38c6 100644 --- a/drivers/input/keyboard/Kconfig +++ b/drivers/input/keyboard/Kconfig @@ -524,6 +524,16 @@ config KEYBOARD_OPENCORES @@ -55,7 +55,7 @@ index 4ea79db8f134..8439b38c69f4 100644 tristate "PXA27x/PXA3xx keypad support" depends on PXA27x || PXA3xx || ARCH_MMP diff --git a/drivers/input/keyboard/Makefile b/drivers/input/keyboard/Makefile -index 721936e90290..5f67196bb2c1 100644 +index 721936e90..5f67196bb 100644 --- a/drivers/input/keyboard/Makefile +++ b/drivers/input/keyboard/Makefile @@ -52,6 +52,7 @@ obj-$(CONFIG_KEYBOARD_NSPIRE) += nspire-keypad.o @@ -68,7 +68,7 @@ index 721936e90290..5f67196bb2c1 100644 obj-$(CONFIG_KEYBOARD_PXA930_ROTARY) += pxa930_rotary.o diff --git a/drivers/input/keyboard/pinephone-keyboard.c b/drivers/input/keyboard/pinephone-keyboard.c new file mode 100644 -index 000000000000..9a071753fd91 +index 000000000..9a071753f --- /dev/null +++ b/drivers/input/keyboard/pinephone-keyboard.c @@ -0,0 +1,258 @@ diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/Make-microbuttons-on-Orange-Pi-PC-and-PC-2-work-as-power-off-bu.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/Make-microbuttons-on-Orange-Pi-PC-and-PC-2-work-as-power-off-bu.patch index 2e72bdf59..8c0424b3d 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/Make-microbuttons-on-Orange-Pi-PC-and-PC-2-work-as-power-off-bu.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/Make-microbuttons-on-Orange-Pi-PC-and-PC-2-work-as-power-off-bu.patch @@ -1,7 +1,7 @@ -From 2a1f2f2590ff69588ee9467f7ff0f5e35f378129 Mon Sep 17 00:00:00 2001 +From fe2f2c2143068880aa372c90f7d6558814579026 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Fri, 18 Aug 2017 13:55:48 +0200 -Subject: [PATCH 266/515] Make microbuttons on Orange Pi PC and PC 2 work as +Subject: [PATCH 265/534] Make microbuttons on Orange Pi PC and PC 2 work as power off buttons --- @@ -10,7 +10,7 @@ Subject: [PATCH 266/515] Make microbuttons on Orange Pi PC and PC 2 work as 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm/boot/dts/sun8i-h3-orangepi-one.dts b/arch/arm/boot/dts/sun8i-h3-orangepi-one.dts -index 4759ba3f2986..147b574d9887 100644 +index 097f784bc..96d2d5498 100644 --- a/arch/arm/boot/dts/sun8i-h3-orangepi-one.dts +++ b/arch/arm/boot/dts/sun8i-h3-orangepi-one.dts @@ -91,7 +91,7 @@ r_gpio_keys { @@ -23,10 +23,10 @@ index 4759ba3f2986..147b574d9887 100644 }; }; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts b/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts -index 1010c1b22d2e..acc5c31d8786 100644 +index d955574b1..d7852fa4d 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts -@@ -59,7 +59,7 @@ r-gpio-keys { +@@ -60,7 +60,7 @@ r-gpio-keys { sw4 { label = "sw4"; diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/Revert-rtw89-8852c-add-trigger-frame-counter.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/Revert-rtw89-8852c-add-trigger-frame-counter.patch new file mode 100644 index 000000000..c2f3ffbd7 --- /dev/null +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/Revert-rtw89-8852c-add-trigger-frame-counter.patch @@ -0,0 +1,134 @@ +From f06a8e5f27ebee3d07253d715948fbc1f1837fec Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Wed, 15 Jun 2022 09:49:27 +0200 +Subject: [PATCH 537/538] Revert "rtw89: 8852c: add trigger frame counter" + +This reverts commit 67f3e6eed945eaf2ce21e4d72c4fb8d6a677fa59. +--- + drivers/net/wireless/realtek/rtw89/core.c | 48 ---------------------- + drivers/net/wireless/realtek/rtw89/core.h | 14 ------- + drivers/net/wireless/realtek/rtw89/debug.c | 3 +- + 3 files changed, 1 insertion(+), 64 deletions(-) + +diff --git a/drivers/net/wireless/realtek/rtw89/core.c b/drivers/net/wireless/realtek/rtw89/core.c +index 77738d72e3bb..97731c7a3fd6 100644 +--- a/drivers/net/wireless/realtek/rtw89/core.c ++++ b/drivers/net/wireless/realtek/rtw89/core.c +@@ -1343,47 +1343,6 @@ struct rtw89_vif_rx_stats_iter_data { + const u8 *bssid; + }; + +-static void rtw89_stats_trigger_frame(struct rtw89_dev *rtwdev, +- struct ieee80211_vif *vif, +- struct sk_buff *skb) +-{ +- struct rtw89_vif *rtwvif = (struct rtw89_vif *)vif->drv_priv; +- struct ieee80211_trigger *tf = (struct ieee80211_trigger *)skb->data; +- u8 *pos, *end, type; +- u16 aid; +- +- if (!ether_addr_equal(vif->bss_conf.bssid, tf->ta) || +- rtwvif->wifi_role != RTW89_WIFI_ROLE_STATION || +- rtwvif->net_type == RTW89_NET_TYPE_NO_LINK) +- return; +- +- type = le64_get_bits(tf->common_info, IEEE80211_TRIGGER_TYPE_MASK); +- if (type != IEEE80211_TRIGGER_TYPE_BASIC) +- return; +- +- end = (u8 *)tf + skb->len; +- pos = tf->variable; +- +- while (end - pos >= RTW89_TF_BASIC_USER_INFO_SZ) { +- aid = RTW89_GET_TF_USER_INFO_AID12(pos); +- rtw89_debug(rtwdev, RTW89_DBG_TXRX, +- "[TF] aid: %d, ul_mcs: %d, rua: %d\n", +- aid, RTW89_GET_TF_USER_INFO_UL_MCS(pos), +- RTW89_GET_TF_USER_INFO_RUA(pos)); +- +- if (aid == RTW89_TF_PAD) +- break; +- +- if (aid == vif->bss_conf.aid) { +- rtwvif->stats.rx_tf_acc++; +- rtwdev->stats.rx_tf_acc++; +- break; +- } +- +- pos += RTW89_TF_BASIC_USER_INFO_SZ; +- } +-} +- + static void rtw89_vif_rx_stats_iter(void *data, u8 *mac, + struct ieee80211_vif *vif) + { +@@ -1396,11 +1355,6 @@ static void rtw89_vif_rx_stats_iter(void *data, u8 *mac, + struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data; + const u8 *bssid = iter_data->bssid; + +- if (ieee80211_is_trigger(hdr->frame_control)) { +- rtw89_stats_trigger_frame(rtwdev, vif, skb); +- return; +- } +- + if (!ether_addr_equal(vif->bss_conf.bssid, bssid)) + return; + +@@ -2069,8 +2023,6 @@ static bool rtw89_traffic_stats_calc(struct rtw89_dev *rtwdev, + stats->rx_unicast = 0; + stats->tx_cnt = 0; + stats->rx_cnt = 0; +- stats->rx_tf_periodic = stats->rx_tf_acc; +- stats->rx_tf_acc = 0; + + if (tx_tfc_lv != stats->tx_tfc_lv || rx_tfc_lv != stats->rx_tfc_lv) + return true; +diff --git a/drivers/net/wireless/realtek/rtw89/core.h b/drivers/net/wireless/realtek/rtw89/core.h +index 48bfccb15c45..63ac7941d9b3 100644 +--- a/drivers/net/wireless/realtek/rtw89/core.h ++++ b/drivers/net/wireless/realtek/rtw89/core.h +@@ -55,16 +55,6 @@ enum htc_om_channel_width { + #define RTW89_HTC_MASK_HTC_OM_DL_MU_MIMO_RR BIT(16) + #define RTW89_HTC_MASK_HTC_OM_UL_MU_DATA_DIS BIT(17) + +-#define RTW89_TF_PAD GENMASK(11, 0) +-#define RTW89_TF_BASIC_USER_INFO_SZ 6 +- +-#define RTW89_GET_TF_USER_INFO_AID12(data) \ +- le32_get_bits(*((const __le32 *)(data)), GENMASK(11, 0)) +-#define RTW89_GET_TF_USER_INFO_RUA(data) \ +- le32_get_bits(*((const __le32 *)(data)), GENMASK(19, 12)) +-#define RTW89_GET_TF_USER_INFO_UL_MCS(data) \ +- le32_get_bits(*((const __le32 *)(data)), GENMASK(24, 21)) +- + enum rtw89_subband { + RTW89_CH_2G = 0, + RTW89_CH_5G_BAND_1 = 1, +@@ -953,10 +943,6 @@ struct rtw89_traffic_stats { + u32 rx_throughput; + u32 tx_throughput_raw; + u32 rx_throughput_raw; +- +- u32 rx_tf_acc; +- u32 rx_tf_periodic; +- + enum rtw89_tfc_lv tx_tfc_lv; + enum rtw89_tfc_lv rx_tfc_lv; + struct ewma_tp tx_ewma_tp; +diff --git a/drivers/net/wireless/realtek/rtw89/debug.c b/drivers/net/wireless/realtek/rtw89/debug.c +index f00f81916f2f..7820bc3ab3b4 100644 +--- a/drivers/net/wireless/realtek/rtw89/debug.c ++++ b/drivers/net/wireless/realtek/rtw89/debug.c +@@ -2376,8 +2376,7 @@ static int rtw89_debug_priv_phy_info_get(struct seq_file *m, void *v) + seq_printf(m, "TP TX: %u [%u] Mbps (lv: %d), RX: %u [%u] Mbps (lv: %d)\n", + stats->tx_throughput, stats->tx_throughput_raw, stats->tx_tfc_lv, + stats->rx_throughput, stats->rx_throughput_raw, stats->rx_tfc_lv); +- seq_printf(m, "Beacon: %u, TF: %u\n", pkt_stat->beacon_nr, +- stats->rx_tf_periodic); ++ seq_printf(m, "Beacon: %u\n", pkt_stat->beacon_nr); + seq_printf(m, "Avg packet length: TX=%u, RX=%u\n", stats->tx_avg_len, + stats->rx_avg_len); + +-- +2.35.3 + diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/Revert-rtw89-add-new-state-to-CFO-state-machine-for-UL-OFDMA.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/Revert-rtw89-add-new-state-to-CFO-state-machine-for-UL-OFDMA.patch new file mode 100644 index 000000000..815415495 --- /dev/null +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/Revert-rtw89-add-new-state-to-CFO-state-machine-for-UL-OFDMA.patch @@ -0,0 +1,109 @@ +From 7b22a9f8a24f06a4fb21127c7ea7bc3ae6424ea3 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Wed, 15 Jun 2022 09:50:51 +0200 +Subject: [PATCH 538/538] Revert "rtw89: add new state to CFO state machine for + UL-OFDMA" + +This reverts commit 68c30b679d42ca34a233c925e88ff3c9415c3bda. +--- + drivers/net/wireless/realtek/rtw89/core.h | 7 ------- + drivers/net/wireless/realtek/rtw89/phy.c | 24 +++-------------------- + drivers/net/wireless/realtek/rtw89/phy.h | 1 - + 3 files changed, 3 insertions(+), 29 deletions(-) + +diff --git a/drivers/net/wireless/realtek/rtw89/core.h b/drivers/net/wireless/realtek/rtw89/core.h +index 63ac7941d9b3..71e66c7ac858 100644 +--- a/drivers/net/wireless/realtek/rtw89/core.h ++++ b/drivers/net/wireless/realtek/rtw89/core.h +@@ -2796,20 +2796,13 @@ enum rtw89_multi_cfo_mode { + enum rtw89_phy_cfo_status { + RTW89_PHY_DCFO_STATE_NORMAL = 0, + RTW89_PHY_DCFO_STATE_ENHANCE = 1, +- RTW89_PHY_DCFO_STATE_HOLD = 2, + RTW89_PHY_DCFO_STATE_MAX + }; + +-enum rtw89_phy_cfo_ul_ofdma_acc_mode { +- RTW89_CFO_UL_OFDMA_ACC_DISABLE = 0, +- RTW89_CFO_UL_OFDMA_ACC_ENABLE = 1 +-}; +- + struct rtw89_cfo_tracking_info { + u16 cfo_timer_ms; + bool cfo_trig_by_timer_en; + enum rtw89_phy_cfo_status phy_cfo_status; +- enum rtw89_phy_cfo_ul_ofdma_acc_mode cfo_ul_ofdma_acc_mode; + u8 phy_cfo_trk_cnt; + bool is_adjust; + enum rtw89_multi_cfo_mode rtw89_multi_cfo_mode; +diff --git a/drivers/net/wireless/realtek/rtw89/phy.c b/drivers/net/wireless/realtek/rtw89/phy.c +index 4c03babcdb34..e219bed38ff4 100644 +--- a/drivers/net/wireless/realtek/rtw89/phy.c ++++ b/drivers/net/wireless/realtek/rtw89/phy.c +@@ -2151,7 +2151,6 @@ static void rtw89_phy_cfo_init(struct rtw89_dev *rtwdev) + cfo->cfo_trig_by_timer_en = false; + cfo->phy_cfo_trk_cnt = 0; + cfo->phy_cfo_status = RTW89_PHY_DCFO_STATE_NORMAL; +- cfo->cfo_ul_ofdma_acc_mode = RTW89_CFO_UL_OFDMA_ACC_ENABLE; + } + + static void rtw89_phy_cfo_crystal_cap_adjust(struct rtw89_dev *rtwdev, +@@ -2420,13 +2419,6 @@ void rtw89_phy_cfo_track(struct rtw89_dev *rtwdev) + { + struct rtw89_cfo_tracking_info *cfo = &rtwdev->cfo_tracking; + struct rtw89_traffic_stats *stats = &rtwdev->stats; +- bool is_ul_ofdma = false, ofdma_acc_en = false; +- +- if (stats->rx_tf_periodic > CFO_TF_CNT_TH) +- is_ul_ofdma = true; +- if (cfo->cfo_ul_ofdma_acc_mode == RTW89_CFO_UL_OFDMA_ACC_ENABLE && +- is_ul_ofdma) +- ofdma_acc_en = true; + + switch (cfo->phy_cfo_status) { + case RTW89_PHY_DCFO_STATE_NORMAL: +@@ -2438,26 +2430,16 @@ void rtw89_phy_cfo_track(struct rtw89_dev *rtwdev) + } + break; + case RTW89_PHY_DCFO_STATE_ENHANCE: +- if (stats->tx_throughput <= CFO_TP_LOWER) +- cfo->phy_cfo_status = RTW89_PHY_DCFO_STATE_NORMAL; +- else if (ofdma_acc_en && +- cfo->phy_cfo_trk_cnt >= CFO_PERIOD_CNT) +- cfo->phy_cfo_status = RTW89_PHY_DCFO_STATE_HOLD; +- else +- cfo->phy_cfo_trk_cnt++; +- +- if (cfo->phy_cfo_status == RTW89_PHY_DCFO_STATE_NORMAL) { ++ if (cfo->phy_cfo_trk_cnt >= CFO_PERIOD_CNT) { + cfo->phy_cfo_trk_cnt = 0; + cfo->cfo_trig_by_timer_en = false; + } +- break; +- case RTW89_PHY_DCFO_STATE_HOLD: ++ if (cfo->cfo_trig_by_timer_en == 1) ++ cfo->phy_cfo_trk_cnt++; + if (stats->tx_throughput <= CFO_TP_LOWER) { + cfo->phy_cfo_status = RTW89_PHY_DCFO_STATE_NORMAL; + cfo->phy_cfo_trk_cnt = 0; + cfo->cfo_trig_by_timer_en = false; +- } else { +- cfo->phy_cfo_trk_cnt++; + } + break; + default: +diff --git a/drivers/net/wireless/realtek/rtw89/phy.h b/drivers/net/wireless/realtek/rtw89/phy.h +index e20636f54b55..291660154d58 100644 +--- a/drivers/net/wireless/realtek/rtw89/phy.h ++++ b/drivers/net/wireless/realtek/rtw89/phy.h +@@ -62,7 +62,6 @@ + #define CFO_COMP_PERIOD 250 + #define CFO_COMP_WEIGHT 8 + #define MAX_CFO_TOLERANCE 30 +-#define CFO_TF_CNT_TH 300 + + #define CCX_MAX_PERIOD 2097 + #define CCX_MAX_PERIOD_UNIT 32 +-- +2.35.3 + diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/arm64-dts-allwinner-a64-Add-hdmi-sound-card.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/arm64-dts-allwinner-a64-Add-hdmi-sound-card.patch index a66e9594a..6ef90011b 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/arm64-dts-allwinner-a64-Add-hdmi-sound-card.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/arm64-dts-allwinner-a64-Add-hdmi-sound-card.patch @@ -1,7 +1,7 @@ -From be0a94d3a71032eb2a776f9924ba0707ffae816c Mon Sep 17 00:00:00 2001 +From 82f81f3850026999222ed611ebe31286e3af756a Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Sun, 9 May 2021 10:39:56 +0200 -Subject: [PATCH 246/515] arm64: dts: allwinner: a64: Add hdmi sound card +Subject: [PATCH 246/534] arm64: dts: allwinner: a64: Add hdmi sound card A64 supports HDMI audio. Add a sound card node for it. @@ -11,10 +11,10 @@ Signed-off-by: Jernej Skrabec 1 file changed, 15 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi -index de77c87481fd..4c603821dd51 100644 +index e55525d46..5e3749850 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi -@@ -175,6 +175,20 @@ link0_codec: codec { +@@ -188,6 +188,20 @@ link0_codec: codec { }; }; @@ -35,7 +35,7 @@ index de77c87481fd..4c603821dd51 100644 timer { compatible = "arm,armv8-timer"; allwinner,erratum-unknown1; -@@ -1220,6 +1234,7 @@ deinterlace: deinterlace@1e00000 { +@@ -1251,6 +1265,7 @@ deinterlace: deinterlace@1e00000 { }; hdmi: hdmi@1ee0000 { diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/arm64-dts-allwinner-a64-Protect-SCP-clocks.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/arm64-dts-allwinner-a64-Protect-SCP-clocks.patch index 44283d9d1..25defadc3 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/arm64-dts-allwinner-a64-Protect-SCP-clocks.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/arm64-dts-allwinner-a64-Protect-SCP-clocks.patch @@ -1,7 +1,7 @@ -From 02cfe7d13990501817454732e1a83840b060d3c0 Mon Sep 17 00:00:00 2001 +From 64e9bec8f84a0d0298f6696b982dfd1bfacb3a96 Mon Sep 17 00:00:00 2001 From: Samuel Holland Date: Mon, 30 Dec 2019 15:10:32 -0600 -Subject: [PATCH 150/515] arm64: dts: allwinner: a64: Protect SCP clocks +Subject: [PATCH 154/534] arm64: dts: allwinner: a64: Protect SCP clocks Signed-off-by: Samuel Holland --- @@ -9,7 +9,7 @@ Signed-off-by: Samuel Holland 1 file changed, 2 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi -index de77c87481fd..818bc8f179be 100644 +index f0f460761..52f30ac7e 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi @@ -662,6 +662,7 @@ ccu: clock@1c20000 { @@ -20,7 +20,7 @@ index de77c87481fd..818bc8f179be 100644 #clock-cells = <1>; #reset-cells = <1>; }; -@@ -1290,6 +1291,7 @@ r_ccu: clock@1f01400 { +@@ -1295,6 +1296,7 @@ r_ccu: clock@1f01400 { clocks = <&osc24M>, <&rtc 0>, <&rtc 2>, <&ccu CLK_PLL_PERIPH0>; clock-names = "hosc", "losc", "iosc", "pll-periph"; diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/arm64-dts-allwinner-h5-Enable-hdmi-sound-card-on-boards-with-hd.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/arm64-dts-allwinner-h5-Enable-hdmi-sound-card-on-boards-with-hd.patch index 7adae2dda..5c626fbe2 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/arm64-dts-allwinner-h5-Enable-hdmi-sound-card-on-boards-with-hd.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/arm64-dts-allwinner-h5-Enable-hdmi-sound-card-on-boards-with-hd.patch @@ -1,7 +1,7 @@ -From ada357abc27e8e20c621cfcc7e16083e07bd6780 Mon Sep 17 00:00:00 2001 +From 8bd7ca16899376370667e932d3850e484f683331 Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Sun, 9 May 2021 12:40:31 +0200 -Subject: [PATCH 248/515] arm64: dts: allwinner: h5: Enable hdmi sound card on +Subject: [PATCH 248/534] arm64: dts: allwinner: h5: Enable hdmi sound card on boards with hdmi Each board that has HDMI connector can also transmit audio through it. @@ -16,7 +16,7 @@ Signed-off-by: Jernej Skrabec 4 files changed, 32 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h5-emlid-neutis-n5-devboard.dts b/arch/arm64/boot/dts/allwinner/sun50i-h5-emlid-neutis-n5-devboard.dts -index 076a0b983101..5882b62097a9 100644 +index 076a0b983..5882b6209 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h5-emlid-neutis-n5-devboard.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-h5-emlid-neutis-n5-devboard.dts @@ -69,3 +69,11 @@ hdmi_out_con: endpoint { @@ -32,10 +32,10 @@ index 076a0b983101..5882b62097a9 100644 + status = "okay"; +}; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts b/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts -index 1010c1b22d2e..83abd0c6c4b3 100644 +index 5244278ff..d955574b1 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts -@@ -144,6 +144,10 @@ hdmi_out_con: endpoint { +@@ -149,6 +149,10 @@ hdmi_out_con: endpoint { }; }; @@ -46,7 +46,7 @@ index 1010c1b22d2e..83abd0c6c4b3 100644 &ir { pinctrl-names = "default"; pinctrl-0 = <&r_ir_rx_pin>; -@@ -189,6 +193,10 @@ reg_vdd_cpux: regulator@65 { +@@ -194,6 +198,10 @@ reg_vdd_cpux: regulator@65 { }; }; @@ -58,7 +58,7 @@ index 1010c1b22d2e..83abd0c6c4b3 100644 status = "okay"; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts b/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts -index 74e0444af19b..19b8538e0e15 100644 +index 74e0444af..19b8538e0 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts @@ -145,6 +145,10 @@ hdmi_out_con: endpoint { @@ -84,7 +84,7 @@ index 74e0444af19b..19b8538e0e15 100644 pinctrl-names = "default"; pinctrl-0 = <&uart0_pa_pins>; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-zero-plus2.dts b/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-zero-plus2.dts -index 22530ace12d5..3e69ebde50d3 100644 +index 22530ace1..3e69ebde5 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-zero-plus2.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-zero-plus2.dts @@ -77,6 +77,10 @@ hdmi_out_con: endpoint { diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/arm64-dts-allwinner-h6-Add-hdmi-sound-card.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/arm64-dts-allwinner-h6-Add-hdmi-sound-card.patch index fd9729659..23a761a48 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/arm64-dts-allwinner-h6-Add-hdmi-sound-card.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/arm64-dts-allwinner-h6-Add-hdmi-sound-card.patch @@ -1,17 +1,17 @@ -From e679d36fe59ed2e2838cb36682b511e776f1ecbd Mon Sep 17 00:00:00 2001 +From 680388e28ec91f867f1e89d075080ed576c4ef3d Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Tue, 10 Nov 2020 20:43:28 +0100 -Subject: [PATCH 244/515] arm64: dts: allwinner: h6: Add hdmi sound card +Subject: [PATCH 244/534] arm64: dts: allwinner: h6: Add hdmi sound card H6 supports HDMI audio. Add a sound card node for it. Signed-off-by: Jernej Skrabec --- - arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi | 16 ++++++++++++++++ - 1 file changed, 16 insertions(+) + arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi | 15 +++++++++++++++ + 1 file changed, 15 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi -index fbe94abbb1f9..60d7ee645c31 100644 +index e6e64b119..1206210e3 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi @@ -101,6 +101,20 @@ scpi_protocol: scpi { diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/arm64-dts-allwinner-h6-Enable-hdmi-sound-card-on-boards-with-hd.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/arm64-dts-allwinner-h6-Enable-hdmi-sound-card-on-boards-with-hd.patch index 674443aa6..ba71871e7 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/arm64-dts-allwinner-h6-Enable-hdmi-sound-card-on-boards-with-hd.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/arm64-dts-allwinner-h6-Enable-hdmi-sound-card-on-boards-with-hd.patch @@ -1,7 +1,7 @@ -From 9c039c43aa3287c3b393bb6110e5bafae43cdcbd Mon Sep 17 00:00:00 2001 +From e422b980c7e120d68573ed064be1674c7b77c892 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Tue, 11 Jan 2022 13:08:47 +0100 -Subject: [PATCH 245/515] arm64: dts: allwinner: h6: Enable hdmi sound card on +Subject: [PATCH 245/534] arm64: dts: allwinner: h6: Enable hdmi sound card on boards with hdmi Each board that has HDMI connector can also transmit audio through it. @@ -16,7 +16,7 @@ Signed-off-by: Jernej Skrabec 4 files changed, 32 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-beelink-gs1.dts b/arch/arm64/boot/dts/allwinner/sun50i-h6-beelink-gs1.dts -index 6249e9e02928..17c99ab66d1c 100644 +index 6249e9e02..17c99ab66 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h6-beelink-gs1.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-beelink-gs1.dts @@ -118,6 +118,10 @@ hdmi_out_con: endpoint { @@ -42,10 +42,10 @@ index 6249e9e02928..17c99ab66d1c 100644 status = "okay"; }; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-3.dts b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-3.dts -index c45d7b7fb39a..6cac70c71ab5 100644 +index adf2134ec..58166e17f 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-3.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-3.dts -@@ -128,6 +128,10 @@ hdmi_out_con: endpoint { +@@ -167,6 +167,10 @@ ext_rgmii_phy: ethernet-phy@1 { }; }; @@ -56,7 +56,7 @@ index c45d7b7fb39a..6cac70c71ab5 100644 &mmc0 { vmmc-supply = <®_cldo1>; cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */ -@@ -299,6 +303,10 @@ &rtc { +@@ -339,6 +343,10 @@ &rtc { clocks = <&ext_osc32k>; }; @@ -68,7 +68,7 @@ index c45d7b7fb39a..6cac70c71ab5 100644 pinctrl-names = "default"; pinctrl-0 = <&uart0_ph_pins>; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi.dtsi -index 92745128fcfe..b019bbaae21d 100644 +index 92745128f..b019bbaae 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi.dtsi @@ -91,6 +91,10 @@ hdmi_out_con: endpoint { @@ -94,7 +94,7 @@ index 92745128fcfe..b019bbaae21d 100644 pinctrl-names = "default"; pinctrl-0 = <&uart0_ph_pins>; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts b/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts -index 1ffd68f43f87..341f42ae0f30 100644 +index 1ffd68f43..341f42ae0 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts @@ -123,6 +123,10 @@ hdmi_out_con: endpoint { diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/arm64-dts-pinephone-Add-reboot-mode-driver.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/arm64-dts-pinephone-Add-reboot-mode-driver.patch index 058055774..b258e75ff 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/arm64-dts-pinephone-Add-reboot-mode-driver.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/arm64-dts-pinephone-Add-reboot-mode-driver.patch @@ -1,7 +1,7 @@ -From 58cbcef3c992bd4c20466ce8d3fe5781eafbd300 Mon Sep 17 00:00:00 2001 +From 0cebcabc4ef89a2dd3e7a0d83e5165d49561dc9c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Mon, 15 Feb 2021 17:45:13 +0100 -Subject: [PATCH 169/515] arm64: dts: pinephone: Add reboot mode driver +Subject: [PATCH 173/534] arm64: dts: pinephone: Add reboot mode driver With the latest p-boot (released 2021-02-15), you can reboot to a particular boot option or to the menu, to FEL, to eMMC bootloader, @@ -21,10 +21,10 @@ Signed-off-by: Ondrej Jirman 1 file changed, 37 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi -index 87847116ab6d..df31223da5d8 100644 +index 9067f1739..2fd122bfc 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi -@@ -84,6 +84,34 @@ sgm3140_flash: led { +@@ -416,6 +416,34 @@ sgm3140_flash: led { }; }; @@ -59,7 +59,7 @@ index 87847116ab6d..df31223da5d8 100644 speaker_amp: audio-amplifier { compatible = "simple-audio-amplifier"; enable-gpios = <&pio 2 7 GPIO_ACTIVE_HIGH>; /* PC7 */ -@@ -433,6 +461,15 @@ ®_rtc_ldo { +@@ -921,6 +949,15 @@ ®_rtc_ldo { regulator-name = "vcc-rtc"; }; diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/arm64-dts-rk3399-pinephone-pro-Use-4-lane-mode-for-selfie-camer.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/arm64-dts-rk3399-pinephone-pro-Use-4-lane-mode-for-selfie-camer.patch index c03bbaeeb..555f42782 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/arm64-dts-rk3399-pinephone-pro-Use-4-lane-mode-for-selfie-camer.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/arm64-dts-rk3399-pinephone-pro-Use-4-lane-mode-for-selfie-camer.patch @@ -1,18 +1,18 @@ -From f87eeb4faa7318b779f858a674821a3cc13e6e35 Mon Sep 17 00:00:00 2001 +From be9b4e754d0281aae94ef8dae7c772f77f5d854c Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Fri, 27 May 2022 16:44:42 +0200 -Subject: [PATCH 519/533] arm64: dts: rk3399-pinephone-pro: Use 4-lane mode for +Subject: [PATCH 515/534] arm64: dts: rk3399-pinephone-pro: Use 4-lane mode for selfie camera It works, enable it. Signed-off-by: Ondrej Jirman --- - arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) + arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts b/arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts -index ebc6e98b79d3..182e042a15ba 100644 +index 707392304..b5484f4d6 100644 --- a/arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts +++ b/arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts @@ -395,7 +395,7 @@ regulator-state-mem { diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/device-property-Add-helper-to-match-multiple-connections.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/device-property-Add-helper-to-match-multiple-connections.patch index 68c0c78bc..f48c13bec 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/device-property-Add-helper-to-match-multiple-connections.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/device-property-Add-helper-to-match-multiple-connections.patch @@ -1,7 +1,7 @@ -From c7fc4a53b0b6398dab45825c6d5beb63ae24004a Mon Sep 17 00:00:00 2001 +From 8d780c641e0248a225e960f8c2a9b88ef41a8d32 Mon Sep 17 00:00:00 2001 From: Bjorn Andersson Date: Fri, 22 Apr 2022 15:23:45 -0700 -Subject: [PATCH 313/515] device property: Add helper to match multiple +Subject: [PATCH 318/534] device property: Add helper to match multiple connections In some cases multiple connections with the same connection id @@ -22,10 +22,10 @@ Signed-off-by: Bjorn Andersson 2 files changed, 114 insertions(+) diff --git a/drivers/base/property.c b/drivers/base/property.c -index c0e94cce9c29..08da5ca49e9c 100644 +index 2f6843c96..0a2d3cc7c 100644 --- a/drivers/base/property.c +++ b/drivers/base/property.c -@@ -1218,6 +1218,40 @@ fwnode_graph_devcon_match(struct fwnode_handle *fwnode, const char *con_id, +@@ -1231,6 +1231,40 @@ fwnode_graph_devcon_match(struct fwnode_handle *fwnode, const char *con_id, return NULL; } @@ -66,7 +66,7 @@ index c0e94cce9c29..08da5ca49e9c 100644 static void * fwnode_devcon_match(struct fwnode_handle *fwnode, const char *con_id, void *data, devcon_match_fn_t match) -@@ -1240,6 +1274,37 @@ fwnode_devcon_match(struct fwnode_handle *fwnode, const char *con_id, +@@ -1253,6 +1287,37 @@ fwnode_devcon_match(struct fwnode_handle *fwnode, const char *con_id, return NULL; } @@ -104,7 +104,7 @@ index c0e94cce9c29..08da5ca49e9c 100644 /** * fwnode_connection_find_match - Find connection from a device node * @fwnode: Device node with the connection -@@ -1267,3 +1332,47 @@ void *fwnode_connection_find_match(struct fwnode_handle *fwnode, +@@ -1280,3 +1345,47 @@ void *fwnode_connection_find_match(struct fwnode_handle *fwnode, return fwnode_devcon_match(fwnode, con_id, data, match); } EXPORT_SYMBOL_GPL(fwnode_connection_find_match); @@ -153,7 +153,7 @@ index c0e94cce9c29..08da5ca49e9c 100644 +} +EXPORT_SYMBOL_GPL(fwnode_connection_find_matches); diff --git a/include/linux/property.h b/include/linux/property.h -index 4cd4b326941f..de7ff336d2c8 100644 +index 4cd4b3269..de7ff336d 100644 --- a/include/linux/property.h +++ b/include/linux/property.h @@ -447,6 +447,11 @@ static inline void *device_connection_find_match(struct device *dev, diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/device-property-Use-multi-connection-matchers-for-single-case.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/device-property-Use-multi-connection-matchers-for-single-case.patch index 853388686..1a091f485 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/device-property-Use-multi-connection-matchers-for-single-case.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/device-property-Use-multi-connection-matchers-for-single-case.patch @@ -1,7 +1,7 @@ -From 1f48ffd6b8ed7ea6701dc7c904550125bac2dc84 Mon Sep 17 00:00:00 2001 +From 2b2b0dd857f1b6a90df715c0eebbf7e9d4ea184c Mon Sep 17 00:00:00 2001 From: Bjorn Andersson Date: Fri, 22 Apr 2022 15:23:46 -0700 -Subject: [PATCH 317/515] device property: Use multi-connection matchers for +Subject: [PATCH 319/534] device property: Use multi-connection matchers for single case The newly introduced helpers for searching for matches in the case of @@ -15,10 +15,10 @@ Signed-off-by: Bjorn Andersson 1 file changed, 5 insertions(+), 50 deletions(-) diff --git a/drivers/base/property.c b/drivers/base/property.c -index 08da5ca49e9c..47659764c8a1 100644 +index 0a2d3cc7c..92f827361 100644 --- a/drivers/base/property.c +++ b/drivers/base/property.c -@@ -1193,31 +1193,6 @@ const void *device_get_match_data(struct device *dev) +@@ -1206,31 +1206,6 @@ const void *device_get_match_data(struct device *dev) } EXPORT_SYMBOL_GPL(device_get_match_data); @@ -50,7 +50,7 @@ index 08da5ca49e9c..47659764c8a1 100644 static unsigned int fwnode_graph_devcon_matches(struct fwnode_handle *fwnode, const char *con_id, void *data, devcon_match_fn_t match, -@@ -1252,28 +1227,6 @@ static unsigned int fwnode_graph_devcon_matches(struct fwnode_handle *fwnode, +@@ -1265,28 +1240,6 @@ static unsigned int fwnode_graph_devcon_matches(struct fwnode_handle *fwnode, return count; } @@ -79,7 +79,7 @@ index 08da5ca49e9c..47659764c8a1 100644 static unsigned int fwnode_devcon_matches(struct fwnode_handle *fwnode, const char *con_id, void *data, devcon_match_fn_t match, -@@ -1320,16 +1273,18 @@ void *fwnode_connection_find_match(struct fwnode_handle *fwnode, +@@ -1333,16 +1286,18 @@ void *fwnode_connection_find_match(struct fwnode_handle *fwnode, const char *con_id, void *data, devcon_match_fn_t match) { diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/drm-sun4i-Fix-wrong-location-of-clk_prepare_enable.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/drm-sun4i-Fix-wrong-location-of-clk_prepare_enable.patch index 83c4c72b7..0ac5eb533 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/drm-sun4i-Fix-wrong-location-of-clk_prepare_enable.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/drm-sun4i-Fix-wrong-location-of-clk_prepare_enable.patch @@ -1,7 +1,7 @@ -From 93a7cadd14ebe09d04eb949e486cd968233e8d3c Mon Sep 17 00:00:00 2001 +From 1988779f605d34836e5812ba92fa0424e7cdcb17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Sat, 30 May 2020 03:15:04 +0200 -Subject: [PATCH 183/515] drm/sun4i: Fix wrong location of clk_prepare_enable +Subject: [PATCH 187/534] drm/sun4i: Fix wrong location of clk_prepare_enable It should be placed inside the has_channel_0 block. @@ -11,10 +11,10 @@ Signed-off-by: Ondrej Jirman 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/sun4i/sun4i_tcon.c b/drivers/gpu/drm/sun4i/sun4i_tcon.c -index 88db2d2a9336..8d31a230e3f5 100644 +index 0696fddc8..42609bae1 100644 --- a/drivers/gpu/drm/sun4i/sun4i_tcon.c +++ b/drivers/gpu/drm/sun4i/sun4i_tcon.c -@@ -790,8 +790,8 @@ static int sun4i_tcon_init_clocks(struct device *dev, +@@ -792,8 +792,8 @@ static int sun4i_tcon_init_clocks(struct device *dev, dev_err(dev, "Couldn't get the TCON channel 0 clock\n"); return PTR_ERR(tcon->sclk0); } diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/drm-sun4i-Implement-gamma-correction.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/drm-sun4i-Implement-gamma-correction.patch index c21de1a2d..458e65fac 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/drm-sun4i-Implement-gamma-correction.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/drm-sun4i-Implement-gamma-correction.patch @@ -1,7 +1,7 @@ -From ca4e047b20855eb25daf556d6b3a5996a2fd9bc3 Mon Sep 17 00:00:00 2001 +From d7b65406ac6af1883295f84ee584388e435fda73 Mon Sep 17 00:00:00 2001 From: Vasily Khoruzhick Date: Wed, 13 Mar 2019 19:50:17 -0700 -Subject: [PATCH 187/515] drm/sun4i: Implement gamma correction +Subject: [PATCH 191/534] drm/sun4i: Implement gamma correction Add support for gamma corretion to sun4i TCON driver. Its LUT has 256 entries and can be updated only when gamma correction is disabled. @@ -14,7 +14,7 @@ Signed-off-by: Vasily Khoruzhick 3 files changed, 58 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/sun4i/sun4i_crtc.c b/drivers/gpu/drm/sun4i/sun4i_crtc.c -index 45d9eb552d86..59e1959e49ff 100644 +index 45d9eb552..59e1959e4 100644 --- a/drivers/gpu/drm/sun4i/sun4i_crtc.c +++ b/drivers/gpu/drm/sun4i/sun4i_crtc.c @@ -103,6 +103,20 @@ static void sun4i_crtc_atomic_flush(struct drm_crtc *crtc, @@ -39,7 +39,7 @@ index 45d9eb552d86..59e1959e49ff 100644 static void sun4i_crtc_atomic_disable(struct drm_crtc *crtc, diff --git a/drivers/gpu/drm/sun4i/sun4i_tcon.c b/drivers/gpu/drm/sun4i/sun4i_tcon.c -index 8d31a230e3f5..21696e237d0a 100644 +index 42609bae1..6e741fa05 100644 --- a/drivers/gpu/drm/sun4i/sun4i_tcon.c +++ b/drivers/gpu/drm/sun4i/sun4i_tcon.c @@ -239,6 +239,34 @@ void sun4i_tcon_enable_vblank(struct sun4i_tcon *tcon, bool enable) @@ -77,7 +77,7 @@ index 8d31a230e3f5..21696e237d0a 100644 /* * This function is a helper for TCON output muxing. The TCON output * muxing control register in earlier SoCs (without the TCON TOP block) -@@ -1287,6 +1315,11 @@ static int sun4i_tcon_bind(struct device *dev, struct device *master, +@@ -1289,6 +1317,11 @@ static int sun4i_tcon_bind(struct device *dev, struct device *master, list_add_tail(&tcon->list, &drv->tcon_list); @@ -90,7 +90,7 @@ index 8d31a230e3f5..21696e237d0a 100644 err_free_dotclock: diff --git a/drivers/gpu/drm/sun4i/sun4i_tcon.h b/drivers/gpu/drm/sun4i/sun4i_tcon.h -index e624f6977eb8..c0565e471a64 100644 +index e624f6977..c0565e471 100644 --- a/drivers/gpu/drm/sun4i/sun4i_tcon.h +++ b/drivers/gpu/drm/sun4i/sun4i_tcon.h @@ -18,6 +18,7 @@ diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/drm-sun4i-Support-taking-over-display-pipeline-state-from-p-boo.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/drm-sun4i-Support-taking-over-display-pipeline-state-from-p-boo.patch index 8e9ec141c..c303dbce4 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/drm-sun4i-Support-taking-over-display-pipeline-state-from-p-boo.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/drm-sun4i-Support-taking-over-display-pipeline-state-from-p-boo.patch @@ -1,7 +1,7 @@ -From 3cf37798492975c4d2cedfbf40cfaefe30aac920 Mon Sep 17 00:00:00 2001 +From 763636ec2fd448d4657508ba9b6541cdc9157d9a Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Mon, 28 Mar 2022 18:31:25 +0200 -Subject: [PATCH 196/515] drm: sun4i: Support taking over display pipeline +Subject: [PATCH 197/534] drm: sun4i: Support taking over display pipeline state from p-boot For perfect, flickerless and fast boot. @@ -22,7 +22,7 @@ Signed-off-by: Ondrej Jirman 11 files changed, 169 insertions(+), 2 deletions(-) diff --git a/drivers/clk/sunxi-ng/ccu-sun50i-a64.c b/drivers/clk/sunxi-ng/ccu-sun50i-a64.c -index f03aaf4f3405..77f887108670 100644 +index f03aaf4f3..77f887108 100644 --- a/drivers/clk/sunxi-ng/ccu-sun50i-a64.c +++ b/drivers/clk/sunxi-ng/ccu-sun50i-a64.c @@ -965,7 +965,9 @@ static int sun50i_a64_ccu_probe(struct platform_device *pdev) @@ -37,7 +37,7 @@ index f03aaf4f3405..77f887108670 100644 /* Force the parent of TCON0 to PLL-MIPI */ val = readl(reg + SUN50I_A64_TCON0_REG); diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c -index d265a73313c9..685a375c35c6 100644 +index d265a7331..685a375c3 100644 --- a/drivers/gpu/drm/drm_fb_helper.c +++ b/drivers/gpu/drm/drm_fb_helper.c @@ -2362,6 +2362,7 @@ static int drm_fb_helper_generic_probe(struct drm_fb_helper *fb_helper, @@ -69,7 +69,7 @@ index d265a73313c9..685a375c35c6 100644 return 0; diff --git a/drivers/gpu/drm/panel/panel-sitronix-st7703.c b/drivers/gpu/drm/panel/panel-sitronix-st7703.c -index cd82f8cf55fa..1db40a9f3e93 100644 +index cd82f8cf5..1db40a9f3 100644 --- a/drivers/gpu/drm/panel/panel-sitronix-st7703.c +++ b/drivers/gpu/drm/panel/panel-sitronix-st7703.c @@ -58,6 +58,7 @@ struct st7703 { @@ -137,7 +137,7 @@ index cd82f8cf55fa..1db40a9f3e93 100644 if (IS_ERR(ctx->reset_gpio)) return dev_err_probe(dev, PTR_ERR(ctx->reset_gpio), "Failed to get reset gpio\n"); diff --git a/drivers/gpu/drm/sun4i/sun4i_tcon.c b/drivers/gpu/drm/sun4i/sun4i_tcon.c -index 970ac71f2f21..d456e6b7926f 100644 +index 3d9ead98a..a5a72565c 100644 --- a/drivers/gpu/drm/sun4i/sun4i_tcon.c +++ b/drivers/gpu/drm/sun4i/sun4i_tcon.c @@ -39,6 +39,8 @@ @@ -149,7 +149,7 @@ index 970ac71f2f21..d456e6b7926f 100644 static struct drm_connector *sun4i_tcon_get_connector(const struct drm_encoder *encoder) { struct drm_connector *connector; -@@ -736,6 +738,13 @@ void sun4i_tcon_mode_set(struct sun4i_tcon *tcon, +@@ -738,6 +740,13 @@ void sun4i_tcon_mode_set(struct sun4i_tcon *tcon, const struct drm_encoder *encoder, const struct drm_display_mode *mode) { @@ -163,7 +163,7 @@ index 970ac71f2f21..d456e6b7926f 100644 switch (encoder->encoder_type) { case DRM_MODE_ENCODER_DSI: /* DSI is tied to special case of CPU interface */ -@@ -884,6 +893,7 @@ static int sun4i_tcon_init_regmap(struct device *dev, +@@ -886,6 +895,7 @@ static int sun4i_tcon_init_regmap(struct device *dev, return PTR_ERR(tcon->regs); } @@ -171,7 +171,7 @@ index 970ac71f2f21..d456e6b7926f 100644 /* Make sure the TCON is disabled and all IRQs are off */ regmap_write(tcon->regs, SUN4I_TCON_GCTL_REG, 0); regmap_write(tcon->regs, SUN4I_TCON_GINT0_REG, 0); -@@ -892,6 +902,7 @@ static int sun4i_tcon_init_regmap(struct device *dev, +@@ -894,6 +904,7 @@ static int sun4i_tcon_init_regmap(struct device *dev, /* Disable IO lines and set them to tristate */ regmap_write(tcon->regs, SUN4I_TCON0_IO_TRI_REG, ~0); regmap_write(tcon->regs, SUN4I_TCON1_IO_TRI_REG, ~0); @@ -179,7 +179,7 @@ index 970ac71f2f21..d456e6b7926f 100644 return 0; } -@@ -1163,6 +1174,9 @@ static int sun4i_tcon_bind(struct device *dev, struct device *master, +@@ -1165,6 +1176,9 @@ static int sun4i_tcon_bind(struct device *dev, struct device *master, tcon->dev = dev; tcon->id = engine->id; tcon->quirks = of_device_get_match_data(dev); @@ -189,7 +189,7 @@ index 970ac71f2f21..d456e6b7926f 100644 tcon->lcd_rst = devm_reset_control_get(dev, "lcd"); if (IS_ERR(tcon->lcd_rst)) { -@@ -1184,12 +1198,14 @@ static int sun4i_tcon_bind(struct device *dev, struct device *master, +@@ -1186,12 +1200,14 @@ static int sun4i_tcon_bind(struct device *dev, struct device *master, } } @@ -204,7 +204,7 @@ index 970ac71f2f21..d456e6b7926f 100644 if (tcon->quirks->supports_lvds) { /* -@@ -1356,8 +1372,15 @@ static int sun4i_tcon_probe(struct platform_device *pdev) +@@ -1358,8 +1374,15 @@ static int sun4i_tcon_probe(struct platform_device *pdev) const struct sun4i_tcon_quirks *quirks; struct drm_bridge *bridge; struct drm_panel *panel; @@ -221,7 +221,7 @@ index 970ac71f2f21..d456e6b7926f 100644 /* panels and bridges are present only on TCONs with channel 0 */ diff --git a/drivers/gpu/drm/sun4i/sun4i_tcon.h b/drivers/gpu/drm/sun4i/sun4i_tcon.h -index ea0e6b02337b..f532d87ea82f 100644 +index ea0e6b023..f532d87ea 100644 --- a/drivers/gpu/drm/sun4i/sun4i_tcon.h +++ b/drivers/gpu/drm/sun4i/sun4i_tcon.h @@ -293,6 +293,8 @@ struct sun4i_tcon { @@ -234,7 +234,7 @@ index ea0e6b02337b..f532d87ea82f 100644 struct drm_bridge *sun4i_tcon_find_bridge(struct device_node *node); diff --git a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c -index 6c5993d986f2..0e7fa64d53e9 100644 +index 6c5993d98..0e7fa64d5 100644 --- a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c +++ b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c @@ -732,6 +732,7 @@ static void sun6i_dsi_encoder_enable(struct drm_encoder *encoder) @@ -291,7 +291,7 @@ index 6c5993d986f2..0e7fa64d53e9 100644 "allwinner,sun6i-a31-mipi-dsi")) bus_clk_name = "bus"; diff --git a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h -index c863900ae3b4..7f80ff130e44 100644 +index c863900ae..7f80ff130 100644 --- a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h +++ b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h @@ -31,6 +31,8 @@ struct sun6i_dsi { @@ -304,7 +304,7 @@ index c863900ae3b4..7f80ff130e44 100644 static inline struct sun6i_dsi *host_to_sun6i_dsi(struct mipi_dsi_host *host) diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.c b/drivers/gpu/drm/sun4i/sun8i_mixer.c -index f5e8aeaa3cdf..7e57a129016f 100644 +index f5e8aeaa3..7e57a1290 100644 --- a/drivers/gpu/drm/sun4i/sun8i_mixer.c +++ b/drivers/gpu/drm/sun4i/sun8i_mixer.c @@ -22,6 +22,7 @@ @@ -437,7 +437,7 @@ index f5e8aeaa3cdf..7e57a129016f 100644 } diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.h b/drivers/gpu/drm/sun4i/sun8i_mixer.h -index 5b3fbee18671..d78842d61402 100644 +index 5b3fbee18..d78842d61 100644 --- a/drivers/gpu/drm/sun4i/sun8i_mixer.h +++ b/drivers/gpu/drm/sun4i/sun8i_mixer.h @@ -177,6 +177,9 @@ struct sun8i_mixer { @@ -451,7 +451,7 @@ index 5b3fbee18671..d78842d61402 100644 static inline struct sun8i_mixer * diff --git a/drivers/phy/allwinner/phy-sun6i-mipi-dphy.c b/drivers/phy/allwinner/phy-sun6i-mipi-dphy.c -index f0bc87d654d4..db53bbefd11e 100644 +index f0bc87d65..db53bbefd 100644 --- a/drivers/phy/allwinner/phy-sun6i-mipi-dphy.c +++ b/drivers/phy/allwinner/phy-sun6i-mipi-dphy.c @@ -92,6 +92,8 @@ struct sun6i_dphy { @@ -496,7 +496,7 @@ index f0bc87d654d4..db53bbefd11e 100644 if (IS_ERR(regs)) { dev_err(&pdev->dev, "Couldn't map the DPHY encoder registers\n"); diff --git a/drivers/video/backlight/pwm_bl.c b/drivers/video/backlight/pwm_bl.c -index c0523a0269ee..a912d7652093 100644 +index c0523a026..a912d7652 100644 --- a/drivers/video/backlight/pwm_bl.c +++ b/drivers/video/backlight/pwm_bl.c @@ -457,7 +457,7 @@ static int pwm_backlight_probe(struct platform_device *pdev) diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/drm-sun4i-decouple-TCON_DCLK_DIV-value-from-pll_mipi-dotclock-r.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/drm-sun4i-decouple-TCON_DCLK_DIV-value-from-pll_mipi-dotclock-r.patch index a0fbb0ddf..22ac8bd53 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/drm-sun4i-decouple-TCON_DCLK_DIV-value-from-pll_mipi-dotclock-r.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/drm-sun4i-decouple-TCON_DCLK_DIV-value-from-pll_mipi-dotclock-r.patch @@ -1,7 +1,7 @@ -From 1bbd2c692f9b947917dd2ef503d686272a919b3b Mon Sep 17 00:00:00 2001 +From 70f423af5dcf3d36361255a7af12b397d094f985 Mon Sep 17 00:00:00 2001 From: Roman Beranek Date: Wed, 25 Nov 2020 13:07:35 +0100 -Subject: [PATCH 205/515] drm: sun4i: decouple TCON_DCLK_DIV value from +Subject: [PATCH 206/534] drm: sun4i: decouple TCON_DCLK_DIV value from pll_mipi/dotclock ratio Observations showed that an actual refresh rate differs from the intended. @@ -21,7 +21,7 @@ that the sun4i_dotclock driver can remain untouched. 1 file changed, 25 insertions(+), 19 deletions(-) diff --git a/drivers/gpu/drm/sun4i/sun4i_tcon.c b/drivers/gpu/drm/sun4i/sun4i_tcon.c -index d456e6b7926f..fc7a0e6208d0 100644 +index a5a72565c..38878074b 100644 --- a/drivers/gpu/drm/sun4i/sun4i_tcon.c +++ b/drivers/gpu/drm/sun4i/sun4i_tcon.c @@ -322,18 +322,6 @@ static int sun4i_tcon_get_clk_delay(const struct drm_display_mode *mode, @@ -91,7 +91,7 @@ index d456e6b7926f..fc7a0e6208d0 100644 /* Set dithering if needed */ sun4i_tcon0_mode_set_dithering(tcon, sun4i_tcon_get_connector(encoder)); -@@ -546,7 +545,14 @@ static void sun4i_tcon0_mode_set_rgb(struct sun4i_tcon *tcon, +@@ -548,7 +547,14 @@ static void sun4i_tcon0_mode_set_rgb(struct sun4i_tcon *tcon, tcon->dclk_min_div = tcon->quirks->dclk_min_div; tcon->dclk_max_div = 127; diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/drm-sun4i-tcon-hand-over-the-duty-to-keep-TCON0-clock-to-CCU-on.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/drm-sun4i-tcon-hand-over-the-duty-to-keep-TCON0-clock-to-CCU-on.patch index 1fdc74f12..3bcf64b9c 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/drm-sun4i-tcon-hand-over-the-duty-to-keep-TCON0-clock-to-CCU-on.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/drm-sun4i-tcon-hand-over-the-duty-to-keep-TCON0-clock-to-CCU-on.patch @@ -1,7 +1,7 @@ -From 312a262273a05aac4d55b8d598e1a58242671f24 Mon Sep 17 00:00:00 2001 +From 1918f0b354d8973428eb425b19880333ba065095 Mon Sep 17 00:00:00 2001 From: Icenowy Zheng Date: Wed, 17 Jun 2020 08:47:09 +0800 -Subject: [PATCH 195/515] drm/sun4i: tcon: hand over the duty to keep TCON0 +Subject: [PATCH 196/534] drm/sun4i: tcon: hand over the duty to keep TCON0 clock to CCU on A64 As the A64 CCU driver has already the ability to keep TCON0 clock stable @@ -16,7 +16,7 @@ Signed-off-by: Icenowy Zheng 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/sun4i/sun4i_tcon.c b/drivers/gpu/drm/sun4i/sun4i_tcon.c -index 21696e237d0a..970ac71f2f21 100644 +index 6e741fa05..3d9ead98a 100644 --- a/drivers/gpu/drm/sun4i/sun4i_tcon.c +++ b/drivers/gpu/drm/sun4i/sun4i_tcon.c @@ -107,9 +107,11 @@ static void sun4i_tcon_channel_set_status(struct sun4i_tcon *tcon, int channel, @@ -33,7 +33,7 @@ index 21696e237d0a..970ac71f2f21 100644 clk_disable_unprepare(clk); } } -@@ -1542,6 +1544,14 @@ static const struct sun4i_tcon_quirks sun8i_a33_quirks = { +@@ -1544,6 +1546,14 @@ static const struct sun4i_tcon_quirks sun8i_a33_quirks = { .supports_lvds = true, }; @@ -48,7 +48,7 @@ index 21696e237d0a..970ac71f2f21 100644 static const struct sun4i_tcon_quirks sun8i_a83t_lcd_quirks = { .supports_lvds = true, .has_channel_0 = true, -@@ -1592,6 +1602,7 @@ const struct of_device_id sun4i_tcon_of_table[] = { +@@ -1594,6 +1604,7 @@ const struct of_device_id sun4i_tcon_of_table[] = { { .compatible = "allwinner,sun8i-v3s-tcon", .data = &sun8i_v3s_quirks }, { .compatible = "allwinner,sun9i-a80-tcon-lcd", .data = &sun9i_a80_tcon_lcd_quirks }, { .compatible = "allwinner,sun9i-a80-tcon-tv", .data = &sun9i_a80_tcon_tv_quirks }, @@ -57,7 +57,7 @@ index 21696e237d0a..970ac71f2f21 100644 }; MODULE_DEVICE_TABLE(of, sun4i_tcon_of_table); diff --git a/drivers/gpu/drm/sun4i/sun4i_tcon.h b/drivers/gpu/drm/sun4i/sun4i_tcon.h -index c0565e471a64..ea0e6b02337b 100644 +index c0565e471..ea0e6b023 100644 --- a/drivers/gpu/drm/sun4i/sun4i_tcon.h +++ b/drivers/gpu/drm/sun4i/sun4i_tcon.h @@ -249,6 +249,7 @@ struct sun4i_tcon_quirks { diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/firmware-arm_scpi-Support-unidirectional-mailbox-channels.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/firmware-arm_scpi-Support-unidirectional-mailbox-channels.patch index c9b62f17b..e6f0b2e6c 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/firmware-arm_scpi-Support-unidirectional-mailbox-channels.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/firmware-arm_scpi-Support-unidirectional-mailbox-channels.patch @@ -1,7 +1,7 @@ -From 96eeb0d53e66ed1eb96f8ac4c965e906cbe66c63 Mon Sep 17 00:00:00 2001 +From 9b47468ac15d7a541ced840eb413e30eb2a6addc Mon Sep 17 00:00:00 2001 From: Samuel Holland Date: Tue, 5 Mar 2019 22:02:41 -0600 -Subject: [PATCH 158/515] firmware: arm_scpi: Support unidirectional mailbox +Subject: [PATCH 162/534] firmware: arm_scpi: Support unidirectional mailbox channels Some mailbox controllers have only unidirectional channels, so we need a @@ -19,10 +19,10 @@ Signed-off-by: Samuel Holland 1 file changed, 46 insertions(+), 12 deletions(-) diff --git a/drivers/firmware/arm_scpi.c b/drivers/firmware/arm_scpi.c -index ddf0b9ff9e15..182e5f977dde 100644 +index 5b4c02786..94b872ef1 100644 --- a/drivers/firmware/arm_scpi.c +++ b/drivers/firmware/arm_scpi.c -@@ -231,7 +231,8 @@ struct scpi_xfer { +@@ -234,7 +234,8 @@ struct scpi_xfer { struct scpi_chan { struct mbox_client cl; @@ -32,7 +32,7 @@ index ddf0b9ff9e15..182e5f977dde 100644 void __iomem *tx_payload; void __iomem *rx_payload; struct list_head rx_pending; -@@ -505,7 +506,7 @@ static int scpi_send_message(u8 idx, void *tx_buf, unsigned int tx_len, +@@ -508,7 +509,7 @@ static int scpi_send_message(u8 idx, void *tx_buf, unsigned int tx_len, msg->rx_len = rx_len; reinit_completion(&msg->done); @@ -41,7 +41,7 @@ index ddf0b9ff9e15..182e5f977dde 100644 if (ret < 0 || !rx_buf) goto out; -@@ -856,8 +857,13 @@ static void scpi_free_channels(void *data) +@@ -867,8 +868,13 @@ static void scpi_free_channels(void *data) struct scpi_drvinfo *info = data; int i; @@ -57,7 +57,7 @@ index ddf0b9ff9e15..182e5f977dde 100644 } static int scpi_remove(struct platform_device *pdev) -@@ -913,6 +919,7 @@ static int scpi_probe(struct platform_device *pdev) +@@ -924,6 +930,7 @@ static int scpi_probe(struct platform_device *pdev) struct resource res; struct device *dev = &pdev->dev; struct device_node *np = dev->of_node; @@ -65,7 +65,7 @@ index ddf0b9ff9e15..182e5f977dde 100644 scpi_info = devm_kzalloc(dev, sizeof(*scpi_info), GFP_KERNEL); if (!scpi_info) -@@ -926,6 +933,14 @@ static int scpi_probe(struct platform_device *pdev) +@@ -937,6 +944,14 @@ static int scpi_probe(struct platform_device *pdev) dev_err(dev, "no mboxes property in '%pOF'\n", np); return -ENODEV; } @@ -80,7 +80,7 @@ index ddf0b9ff9e15..182e5f977dde 100644 scpi_info->channels = devm_kcalloc(dev, count, sizeof(struct scpi_chan), GFP_KERNEL); -@@ -974,15 +989,34 @@ static int scpi_probe(struct platform_device *pdev) +@@ -985,15 +1000,34 @@ static int scpi_probe(struct platform_device *pdev) mutex_init(&pchan->xfers_lock); ret = scpi_alloc_xfer_list(dev, pchan); diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/input-touchscreen-goodix-Add-support-for-GT1158.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/input-touchscreen-goodix-Add-support-for-GT1158.patch index 53419fdfa..c36e6b3a2 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/input-touchscreen-goodix-Add-support-for-GT1158.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/input-touchscreen-goodix-Add-support-for-GT1158.patch @@ -1,7 +1,7 @@ -From 80ec9698c5a45a166a4478742004b4bc39a0f0e2 Mon Sep 17 00:00:00 2001 +From ef73f648535e1dbd2375e7dffd5956dce275870e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Thu, 11 Nov 2021 14:28:41 +0100 -Subject: [PATCH 335/515] input: touchscreen: goodix: Add support for GT1158 +Subject: [PATCH 334/534] input: touchscreen: goodix: Add support for GT1158 This controller is used by Pinephone Pro. @@ -11,10 +11,10 @@ Signed-off-by: Ondrej Jirman 1 file changed, 1 insertion(+) diff --git a/drivers/input/touchscreen/goodix.c b/drivers/input/touchscreen/goodix.c -index 0ee23d045498..465fd06566c8 100644 +index e90b903ab..f76db9841 100644 --- a/drivers/input/touchscreen/goodix.c +++ b/drivers/input/touchscreen/goodix.c -@@ -95,6 +95,7 @@ static const struct goodix_chip_data gt9x_chip_data = { +@@ -96,6 +96,7 @@ static const struct goodix_chip_data gt9x_chip_data = { static const struct goodix_chip_id goodix_chip_ids[] = { { .id = "1151", .data = >1x_chip_data }, diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/input-touchscreen-goodix-Respect-IRQ-flags-from-DT-when-asked-t.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/input-touchscreen-goodix-Respect-IRQ-flags-from-DT-when-asked-t.patch index 8f138ac26..7ecd28c8e 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/input-touchscreen-goodix-Respect-IRQ-flags-from-DT-when-asked-t.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/input-touchscreen-goodix-Respect-IRQ-flags-from-DT-when-asked-t.patch @@ -1,7 +1,7 @@ -From d82e7a3a782a077b3794320f9962473d3af3eb8b Mon Sep 17 00:00:00 2001 +From 3887b28494c8ace5f53eefdcbe1ae4daa6217201 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Mon, 18 Oct 2021 03:56:14 +0200 -Subject: [PATCH 334/515] input: touchscreen: goodix: Respect IRQ flags from DT +Subject: [PATCH 333/534] input: touchscreen: goodix: Respect IRQ flags from DT when asked to Sometimes the IRQ flags determined from toucschreen config don't @@ -14,10 +14,10 @@ Signed-off-by: Ondrej Jirman 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/input/touchscreen/goodix.c b/drivers/input/touchscreen/goodix.c -index 3ad9870db108..0ee23d045498 100644 +index db84b189a..e90b903ab 100644 --- a/drivers/input/touchscreen/goodix.c +++ b/drivers/input/touchscreen/goodix.c -@@ -511,9 +511,13 @@ static void goodix_free_irq(struct goodix_ts_data *ts) +@@ -512,9 +512,13 @@ static void goodix_free_irq(struct goodix_ts_data *ts) static int goodix_request_irq(struct goodix_ts_data *ts) { @@ -32,7 +32,7 @@ index 3ad9870db108..0ee23d045498 100644 } static int goodix_check_cfg_8(struct goodix_ts_data *ts, const u8 *cfg, int len) -@@ -1289,6 +1293,7 @@ static int goodix_ts_probe(struct i2c_client *client, +@@ -1305,6 +1309,7 @@ static int goodix_ts_probe(struct i2c_client *client, if (!ts) return -ENOMEM; @@ -41,7 +41,7 @@ index 3ad9870db108..0ee23d045498 100644 i2c_set_clientdata(client, ts); init_completion(&ts->firmware_loading_complete); diff --git a/drivers/input/touchscreen/goodix.h b/drivers/input/touchscreen/goodix.h -index 87797cc88b32..b683f571cd4d 100644 +index db9f03149..62999908c 100644 --- a/drivers/input/touchscreen/goodix.h +++ b/drivers/input/touchscreen/goodix.h @@ -81,6 +81,7 @@ struct goodix_ts_data { diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/mailbox-Allow-to-run-mailbox-while-timekeeping-is-suspended.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/mailbox-Allow-to-run-mailbox-while-timekeeping-is-suspended.patch index 2ae95f55d..61290e860 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/mailbox-Allow-to-run-mailbox-while-timekeeping-is-suspended.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/mailbox-Allow-to-run-mailbox-while-timekeeping-is-suspended.patch @@ -1,7 +1,7 @@ -From b3f88f8519b919d6117860401dfb8a9b5a27dc4d Mon Sep 17 00:00:00 2001 +From 9cc2aa7c30ca75cc16e8d96f594ea29535ac3624 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Sat, 2 Nov 2019 15:09:01 +0100 -Subject: [PATCH 022/515] mailbox: Allow to run mailbox while timekeeping is +Subject: [PATCH 016/534] mailbox: Allow to run mailbox while timekeeping is suspended This makes it possible to send messages from CPU suspend finisher. @@ -11,11 +11,11 @@ timekeeping is suspended, instead of using hrtimer. Signed-off-by: Ondrej Jirman --- - drivers/mailbox/mailbox.c | 26 +++++++++++++++++++++++--- - 1 file changed, 23 insertions(+), 3 deletions(-) + drivers/mailbox/mailbox.c | 23 ++++++++++++++++++++++- + 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/drivers/mailbox/mailbox.c b/drivers/mailbox/mailbox.c -index 3e7d4b20ab34..82ca7c317700 100644 +index 4229b9b5d..cd431ae6c 100644 --- a/drivers/mailbox/mailbox.c +++ b/drivers/mailbox/mailbox.c @@ -85,7 +85,10 @@ static void msg_submit(struct mbox_chan *chan) diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/media-gc2145-Galaxycore-camera-module-driver.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/media-gc2145-Galaxycore-camera-module-driver.patch index 51a2b1a58..6b764ca00 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/media-gc2145-Galaxycore-camera-module-driver.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/media-gc2145-Galaxycore-camera-module-driver.patch @@ -1,7 +1,7 @@ -From 81fd18e8a7972f2543a5e7bc3fbfc96a87225d7a Mon Sep 17 00:00:00 2001 +From 46352ab04b3195c9abe1a25850c3a33a606da9d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Tue, 23 Jun 2020 19:51:18 +0200 -Subject: [PATCH 047/515] media: gc2145: Galaxycore camera module driver +Subject: [PATCH 048/534] media: gc2145: Galaxycore camera module driver WIP! @@ -14,10 +14,10 @@ Signed-off-by: Ondrej Jirman create mode 100644 drivers/media/i2c/gc2145.c diff --git a/drivers/media/i2c/Kconfig b/drivers/media/i2c/Kconfig -index 0f3bd9f6d34b..9b1e529fdcc5 100644 +index 8e78d0850..980fac553 100644 --- a/drivers/media/i2c/Kconfig +++ b/drivers/media/i2c/Kconfig -@@ -776,6 +776,15 @@ config VIDEO_HM5065 +@@ -777,6 +777,15 @@ config VIDEO_HM5065 This is a V4L2 sensor-level driver for Himax HM5065 5 Mpixel camera. @@ -34,7 +34,7 @@ index 0f3bd9f6d34b..9b1e529fdcc5 100644 menu "Lens drivers" diff --git a/drivers/media/i2c/Makefile b/drivers/media/i2c/Makefile -index 0f391b588d59..4a0b4f050ef8 100644 +index 0f391b588..4a0b4f050 100644 --- a/drivers/media/i2c/Makefile +++ b/drivers/media/i2c/Makefile @@ -142,3 +142,4 @@ obj-$(CONFIG_VIDEO_VS6624) += vs6624.o @@ -44,7 +44,7 @@ index 0f391b588d59..4a0b4f050ef8 100644 +obj-$(CONFIG_VIDEO_GC2145) += gc2145.o diff --git a/drivers/media/i2c/gc2145.c b/drivers/media/i2c/gc2145.c new file mode 100644 -index 000000000000..b7953222eeeb +index 000000000..b7953222e --- /dev/null +++ b/drivers/media/i2c/gc2145.c @@ -0,0 +1,2247 @@ diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/media-hm5065-Add-subdev-driver-for-Himax-HM5065-camera-sensor.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/media-hm5065-Add-subdev-driver-for-Himax-HM5065-camera-sensor.patch index ef124a44b..e4fd0cbce 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/media-hm5065-Add-subdev-driver-for-Himax-HM5065-camera-sensor.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/media-hm5065-Add-subdev-driver-for-Himax-HM5065-camera-sensor.patch @@ -1,7 +1,7 @@ -From 6dc95810fcb2126d812a19af35e3b053013dba2c Mon Sep 17 00:00:00 2001 +From 0bb21248011d0a9a342450b87e83db8bfac8179c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Sat, 30 Sep 2017 02:39:48 +0200 -Subject: [PATCH 045/515] media: hm5065: Add subdev driver for Himax HM5065 +Subject: [PATCH 046/534] media: hm5065: Add subdev driver for Himax HM5065 camera sensor HM5065 is 5MP CMOS sensor. This driver implements support for @@ -22,10 +22,10 @@ Signed-off-by: Ondrej Jirman create mode 100644 drivers/media/i2c/hm5065.c diff --git a/drivers/media/i2c/Kconfig b/drivers/media/i2c/Kconfig -index fae2baabb773..0f3bd9f6d34b 100644 +index 2b20aa6c3..8e78d0850 100644 --- a/drivers/media/i2c/Kconfig +++ b/drivers/media/i2c/Kconfig -@@ -767,6 +767,15 @@ source "drivers/media/i2c/ccs/Kconfig" +@@ -768,6 +768,15 @@ source "drivers/media/i2c/ccs/Kconfig" source "drivers/media/i2c/et8ek8/Kconfig" source "drivers/media/i2c/m5mols/Kconfig" @@ -42,7 +42,7 @@ index fae2baabb773..0f3bd9f6d34b 100644 menu "Lens drivers" diff --git a/drivers/media/i2c/Makefile b/drivers/media/i2c/Makefile -index 3e1696963e7f..0f391b588d59 100644 +index 3e1696963..0f391b588 100644 --- a/drivers/media/i2c/Makefile +++ b/drivers/media/i2c/Makefile @@ -141,3 +141,4 @@ obj-$(CONFIG_VIDEO_VPX3220) += vpx3220.o @@ -52,7 +52,7 @@ index 3e1696963e7f..0f391b588d59 100644 +obj-$(CONFIG_VIDEO_HM5065) += hm5065.o diff --git a/drivers/media/i2c/hm5065.c b/drivers/media/i2c/hm5065.c new file mode 100644 -index 000000000000..89756f92cee0 +index 000000000..89756f92c --- /dev/null +++ b/drivers/media/i2c/hm5065.c @@ -0,0 +1,2208 @@ diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/media-i2c-ov8858-Add-BSP-driver-for-OV8858-from-Rockchip-kernel.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/media-i2c-ov8858-Add-BSP-driver-for-OV8858-from-Rockchip-kernel.patch index 8bfcfa1e6..299e03e24 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/media-i2c-ov8858-Add-BSP-driver-for-OV8858-from-Rockchip-kernel.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/media-i2c-ov8858-Add-BSP-driver-for-OV8858-from-Rockchip-kernel.patch @@ -1,7 +1,7 @@ -From d8b8cb683bbdb9bc0972cbffd682dfac54578589 Mon Sep 17 00:00:00 2001 +From 0ce6850ac18e220b64c91e8adad0347b007eb057 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Sun, 22 May 2022 14:28:14 +0200 -Subject: [PATCH 368/515] media: i2c: ov8858: Add BSP driver for OV8858 from +Subject: [PATCH 372/534] media: i2c: ov8858: Add BSP driver for OV8858 from Rockchip kernel tree https://raw.githubusercontent.com/JeffyCN/rockchip_mirrors/kernel/drivers/media/i2c/ov8858.c @@ -17,10 +17,10 @@ Signed-off-by: Ondrej Jirman create mode 100644 drivers/media/i2c/rk-camera-module.h diff --git a/drivers/media/i2c/Kconfig b/drivers/media/i2c/Kconfig -index fae2baabb773..28cfdc709974 100644 +index 980fac553..b3377a9d6 100644 --- a/drivers/media/i2c/Kconfig +++ b/drivers/media/i2c/Kconfig -@@ -603,6 +603,19 @@ config VIDEO_OV8856 +@@ -604,6 +604,19 @@ config VIDEO_OV8856 To compile this driver as a module, choose M here: the module will be called ov8856. @@ -41,7 +41,7 @@ index fae2baabb773..28cfdc709974 100644 tristate "OmniVision OV8865 sensor support" depends on I2C && PM && VIDEO_DEV diff --git a/drivers/media/i2c/Makefile b/drivers/media/i2c/Makefile -index 3e1696963e7f..72b5d26b13d1 100644 +index 4a0b4f050..70bf82737 100644 --- a/drivers/media/i2c/Makefile +++ b/drivers/media/i2c/Makefile @@ -93,6 +93,7 @@ obj-$(CONFIG_VIDEO_OV7670) += ov7670.o @@ -54,7 +54,7 @@ index 3e1696963e7f..72b5d26b13d1 100644 obj-$(CONFIG_VIDEO_OV9640) += ov9640.o diff --git a/drivers/media/i2c/ov8858.c b/drivers/media/i2c/ov8858.c new file mode 100644 -index 000000000000..11f01e30bc1d +index 000000000..11f01e30b --- /dev/null +++ b/drivers/media/i2c/ov8858.c @@ -0,0 +1,3018 @@ @@ -3078,7 +3078,7 @@ index 000000000000..11f01e30bc1d +MODULE_LICENSE("GPL v2"); diff --git a/drivers/media/i2c/rk-camera-module.h b/drivers/media/i2c/rk-camera-module.h new file mode 100644 -index 000000000000..9883565799e7 +index 000000000..988356579 --- /dev/null +++ b/drivers/media/i2c/rk-camera-module.h @@ -0,0 +1,146 @@ diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/mfd-axp20x-Add-battery-IRQ-resources.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/mfd-axp20x-Add-battery-IRQ-resources.patch index 28272a0ca..76899a8de 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/mfd-axp20x-Add-battery-IRQ-resources.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/mfd-axp20x-Add-battery-IRQ-resources.patch @@ -1,7 +1,7 @@ -From 5dff2e5a1b1554537a5d67a45b44d8f850c5ff10 Mon Sep 17 00:00:00 2001 +From 955f0d562bb15ddf19be0e9665523305c13fde89 Mon Sep 17 00:00:00 2001 From: Samuel Holland Date: Sat, 29 Feb 2020 01:01:58 -0600 -Subject: [PATCH 223/515] mfd: axp20x: Add battery IRQ resources +Subject: [PATCH 223/534] mfd: axp20x: Add battery IRQ resources Signed-off-by: Samuel Holland --- @@ -9,7 +9,7 @@ Signed-off-by: Samuel Holland 1 file changed, 36 insertions(+) diff --git a/drivers/mfd/axp20x.c b/drivers/mfd/axp20x.c -index 8161a5dc68e8..5b3cecac35ce 100644 +index d2e4978a5..ae424198a 100644 --- a/drivers/mfd/axp20x.c +++ b/drivers/mfd/axp20x.c @@ -179,6 +179,15 @@ static const struct resource axp20x_ac_power_supply_resources[] = { @@ -28,7 +28,7 @@ index 8161a5dc68e8..5b3cecac35ce 100644 static const struct resource axp20x_pek_resources[] = { DEFINE_RES_IRQ_NAMED(AXP20X_IRQ_PEK_RIS_EDGE, "PEK_DBR"), DEFINE_RES_IRQ_NAMED(AXP20X_IRQ_PEK_FAL_EDGE, "PEK_DBF"), -@@ -221,6 +230,23 @@ static const struct resource axp288_fuel_gauge_resources[] = { +@@ -223,6 +232,23 @@ static const struct resource axp288_fuel_gauge_resources[] = { DEFINE_RES_IRQ(AXP288_IRQ_WL1), }; @@ -52,7 +52,7 @@ index 8161a5dc68e8..5b3cecac35ce 100644 static const struct resource axp803_pek_resources[] = { DEFINE_RES_IRQ_NAMED(AXP803_IRQ_PEK_RIS_EDGE, "PEK_DBR"), DEFINE_RES_IRQ_NAMED(AXP803_IRQ_PEK_FAL_EDGE, "PEK_DBF"), -@@ -604,6 +630,8 @@ static const struct mfd_cell axp20x_cells[] = { +@@ -606,6 +632,8 @@ static const struct mfd_cell axp20x_cells[] = { }, { .name = "axp20x-battery-power-supply", .of_compatible = "x-powers,axp209-battery-power-supply", @@ -61,7 +61,7 @@ index 8161a5dc68e8..5b3cecac35ce 100644 }, { .name = "axp20x-ac-power-supply", .of_compatible = "x-powers,axp202-ac-power-supply", -@@ -635,6 +663,8 @@ static const struct mfd_cell axp221_cells[] = { +@@ -637,6 +665,8 @@ static const struct mfd_cell axp221_cells[] = { }, { .name = "axp20x-battery-power-supply", .of_compatible = "x-powers,axp221-battery-power-supply", @@ -70,7 +70,7 @@ index 8161a5dc68e8..5b3cecac35ce 100644 }, { .name = "axp20x-usb-power-supply", .of_compatible = "x-powers,axp221-usb-power-supply", -@@ -654,6 +684,8 @@ static const struct mfd_cell axp223_cells[] = { +@@ -656,6 +686,8 @@ static const struct mfd_cell axp223_cells[] = { }, { .name = "axp20x-battery-power-supply", .of_compatible = "x-powers,axp221-battery-power-supply", @@ -79,7 +79,7 @@ index 8161a5dc68e8..5b3cecac35ce 100644 }, { .name = "axp20x-regulator", }, { -@@ -753,6 +785,8 @@ static const struct mfd_cell axp803_cells[] = { +@@ -755,6 +787,8 @@ static const struct mfd_cell axp803_cells[] = { }, { .name = "axp20x-battery-power-supply", .of_compatible = "x-powers,axp813-battery-power-supply", @@ -88,7 +88,7 @@ index 8161a5dc68e8..5b3cecac35ce 100644 }, { .name = "axp20x-ac-power-supply", .of_compatible = "x-powers,axp813-ac-power-supply", -@@ -810,6 +844,8 @@ static const struct mfd_cell axp813_cells[] = { +@@ -812,6 +846,8 @@ static const struct mfd_cell axp813_cells[] = { }, { .name = "axp20x-battery-power-supply", .of_compatible = "x-powers,axp813-battery-power-supply", diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/mtd-spi-nor-Add-regulator-support.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/mtd-spi-nor-Add-regulator-support.patch index 39406f6c5..6b0742639 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/mtd-spi-nor-Add-regulator-support.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/mtd-spi-nor-Add-regulator-support.patch @@ -1,7 +1,7 @@ -From 6c452d4cf00175745eba047721ea19cb1963bdac Mon Sep 17 00:00:00 2001 +From dd830b54f43a656eedaaae81dcf13ca70ec53ec0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Mon, 30 Sep 2019 11:49:54 +0200 -Subject: [PATCH 068/515] mtd: spi-nor: Add regulator support +Subject: [PATCH 067/534] mtd: spi-nor: Add regulator support Signed-off-by: Ondrej Jirman --- @@ -10,10 +10,10 @@ Signed-off-by: Ondrej Jirman 2 files changed, 34 insertions(+), 6 deletions(-) diff --git a/drivers/mtd/spi-nor/core.c b/drivers/mtd/spi-nor/core.c -index b4f141ad9c9c..d89432664a83 100644 +index c1630131c..db8a956f2 100644 --- a/drivers/mtd/spi-nor/core.c +++ b/drivers/mtd/spi-nor/core.c -@@ -3127,6 +3127,22 @@ static int spi_nor_probe(struct spi_mem *spimem) +@@ -3136,6 +3136,22 @@ static int spi_nor_probe(struct spi_mem *spimem) if (!nor) return -ENOMEM; @@ -36,7 +36,7 @@ index b4f141ad9c9c..d89432664a83 100644 nor->spimem = spimem; nor->dev = &spi->dev; spi_nor_set_flash_node(nor, spi->dev.of_node); -@@ -3154,7 +3170,7 @@ static int spi_nor_probe(struct spi_mem *spimem) +@@ -3163,7 +3179,7 @@ static int spi_nor_probe(struct spi_mem *spimem) ret = spi_nor_scan(nor, flash_name, &hwcaps); if (ret) @@ -45,7 +45,7 @@ index b4f141ad9c9c..d89432664a83 100644 /* * None of the existing parts have > 512B pages, but let's play safe -@@ -3167,20 +3183,28 @@ static int spi_nor_probe(struct spi_mem *spimem) +@@ -3176,20 +3192,28 @@ static int spi_nor_probe(struct spi_mem *spimem) nor->bouncebuf = devm_kmalloc(nor->dev, nor->bouncebuf_size, GFP_KERNEL); @@ -79,7 +79,7 @@ index b4f141ad9c9c..d89432664a83 100644 } static int spi_nor_remove(struct spi_mem *spimem) -@@ -3188,6 +3212,7 @@ static int spi_nor_remove(struct spi_mem *spimem) +@@ -3197,6 +3221,7 @@ static int spi_nor_remove(struct spi_mem *spimem) struct spi_nor *nor = spi_mem_get_drvdata(spimem); spi_nor_restore(nor); @@ -88,7 +88,7 @@ index b4f141ad9c9c..d89432664a83 100644 /* Clean up MTD stuff. */ return mtd_device_unregister(&nor->mtd); diff --git a/include/linux/mtd/spi-nor.h b/include/linux/mtd/spi-nor.h -index 5e25a7b75ae2..305683c84787 100644 +index 5e25a7b75..305683c84 100644 --- a/include/linux/mtd/spi-nor.h +++ b/include/linux/mtd/spi-nor.h @@ -10,6 +10,7 @@ diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/phy-rockchip-inno-usb2-Don-t-print-confusing-deferered-probe-er.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/phy-rockchip-inno-usb2-Don-t-print-confusing-deferered-probe-er.patch index 25e4d9141..9c65c596f 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/phy-rockchip-inno-usb2-Don-t-print-confusing-deferered-probe-er.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/phy-rockchip-inno-usb2-Don-t-print-confusing-deferered-probe-er.patch @@ -1,7 +1,7 @@ -From 56b1ea28403dc6893f08c324beb8f379bbfb8287 Mon Sep 17 00:00:00 2001 +From 6b2f6022a280dc291645e44585b133eff4d00a45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Thu, 16 Sep 2021 19:57:06 +0200 -Subject: [PATCH 284/515] phy: rockchip: inno-usb2: Don't print confusing +Subject: [PATCH 283/534] phy: rockchip: inno-usb2: Don't print confusing deferered probe errors Signed-off-by: Ondrej Jirman @@ -10,10 +10,10 @@ Signed-off-by: Ondrej Jirman 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c -index eca77e44a4c1..54d51a3814ea 100644 +index cba5c32cb..5d8e8775a 100644 --- a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c +++ b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c -@@ -1222,7 +1222,7 @@ static int rockchip_usb2phy_probe(struct platform_device *pdev) +@@ -1228,7 +1228,7 @@ static int rockchip_usb2phy_probe(struct platform_device *pdev) phy = devm_phy_create(dev, child_np, &rockchip_usb2phy_ops); if (IS_ERR(phy)) { diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/power-axp803-Add-interrupts-for-low-battery-power-condition.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/power-axp803-Add-interrupts-for-low-battery-power-condition.patch index 7a31c6925..9bf53a001 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/power-axp803-Add-interrupts-for-low-battery-power-condition.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/power-axp803-Add-interrupts-for-low-battery-power-condition.patch @@ -1,7 +1,7 @@ -From 92eb6744215c0face958ea9e3fda52688707f505 Mon Sep 17 00:00:00 2001 +From 417e809be4380361235ccbab14f45e6de8c511ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Sun, 14 Mar 2021 15:49:34 +0100 -Subject: [PATCH 231/515] power: axp803: Add interrupts for low battery power +Subject: [PATCH 231/534] power: axp803: Add interrupts for low battery power condition These are necessary so that the device is woken up by interrupt @@ -14,10 +14,10 @@ Signed-off-by: Ondrej Jirman 2 files changed, 4 insertions(+) diff --git a/drivers/mfd/axp20x.c b/drivers/mfd/axp20x.c -index 5b3cecac35ce..d08e6f31fcf6 100644 +index ae424198a..f5347d010 100644 --- a/drivers/mfd/axp20x.c +++ b/drivers/mfd/axp20x.c -@@ -245,6 +245,8 @@ static const struct resource axp803_battery_resources[] = { +@@ -247,6 +247,8 @@ static const struct resource axp803_battery_resources[] = { DEFINE_RES_IRQ_NAMED(AXP803_IRQ_BATT_ACT_TEMP_HIGH_END, "BATT_ACT_TEMP_HIGH_END"), DEFINE_RES_IRQ_NAMED(AXP803_IRQ_BATT_ACT_TEMP_LOW, "BATT_ACT_TEMP_LOW"), DEFINE_RES_IRQ_NAMED(AXP803_IRQ_BATT_ACT_TEMP_LOW_END, "BATT_ACT_TEMP_LOW_END"), @@ -27,7 +27,7 @@ index 5b3cecac35ce..d08e6f31fcf6 100644 static const struct resource axp803_pek_resources[] = { diff --git a/drivers/power/supply/axp20x_battery.c b/drivers/power/supply/axp20x_battery.c -index bdc7e578216c..e66a4e32ace8 100644 +index bdc7e5782..e66a4e32a 100644 --- a/drivers/power/supply/axp20x_battery.c +++ b/drivers/power/supply/axp20x_battery.c @@ -616,6 +616,8 @@ static const struct axp_irq_data axp813_irqs[] = { diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/pwm-sun4i-direct-clock-output-support-for-Allwinner-A64.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/pwm-sun4i-direct-clock-output-support-for-Allwinner-A64.patch index 95c1ba821..48de8f25f 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/pwm-sun4i-direct-clock-output-support-for-Allwinner-A64.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/pwm-sun4i-direct-clock-output-support-for-Allwinner-A64.patch @@ -1,7 +1,7 @@ -From 340d5c069f9e1fdc85dec6cf9be3e3e5cd10ef0a Mon Sep 17 00:00:00 2001 +From 4886be6b62ca9a9b95a9d19caa58320a658ecdf0 Mon Sep 17 00:00:00 2001 From: Peter Vasil Date: Sun, 26 Apr 2020 12:11:22 +0200 -Subject: [PATCH 152/515] pwm: sun4i: direct clock output support for Allwinner +Subject: [PATCH 156/534] pwm: sun4i: direct clock output support for Allwinner A64 Allwinner A64 is capable of a direct clock output on PWM (see A64 @@ -14,10 +14,10 @@ Signed-off-by: Peter Vasil 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi -index 818bc8f179be..1a9195edc702 100644 +index 52f30ac7e..b9d2e1f57 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi -@@ -1135,8 +1135,7 @@ gic: interrupt-controller@1c81000 { +@@ -1140,8 +1140,7 @@ gic: interrupt-controller@1c81000 { }; pwm: pwm@1c21400 { @@ -27,7 +27,7 @@ index 818bc8f179be..1a9195edc702 100644 reg = <0x01c21400 0x400>; clocks = <&osc24M>; pinctrl-names = "default"; -@@ -1328,8 +1327,7 @@ r_ir: ir@1f02000 { +@@ -1333,8 +1332,7 @@ r_ir: ir@1f02000 { }; r_pwm: pwm@1f03800 { diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/regulator-axp20x-Enable-over-temperature-protection-and-16s-res.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/regulator-axp20x-Enable-over-temperature-protection-and-16s-res.patch index 6c590c3c3..fb79d44d4 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/regulator-axp20x-Enable-over-temperature-protection-and-16s-res.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/regulator-axp20x-Enable-over-temperature-protection-and-16s-res.patch @@ -1,7 +1,7 @@ -From 640a11016a595630e749d0183fc3bbd420b3cf8a Mon Sep 17 00:00:00 2001 +From 622ea8d6e51f9ab27c0157ebec480831b6eb5ec2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Tue, 18 Feb 2020 23:57:20 +0100 -Subject: [PATCH 217/515] regulator: axp20x: Enable over-temperature protection +Subject: [PATCH 217/534] regulator: axp20x: Enable over-temperature protection and 16s reset function Why not? Also why here, but whatever. @@ -12,7 +12,7 @@ Signed-off-by: Ondrej Jirman 1 file changed, 7 insertions(+) diff --git a/drivers/regulator/axp20x-regulator.c b/drivers/regulator/axp20x-regulator.c -index d260c442b788..0d224f0d0deb 100644 +index 21752e4bf..645edd9de 100644 --- a/drivers/regulator/axp20x-regulator.c +++ b/drivers/regulator/axp20x-regulator.c @@ -93,6 +93,8 @@ @@ -24,7 +24,7 @@ index d260c442b788..0d224f0d0deb 100644 #define AXP22X_DCDC1_V_OUT_MASK GENMASK(4, 0) #define AXP22X_DCDC2_V_OUT_MASK GENMASK(5, 0) -@@ -1357,6 +1359,11 @@ static int axp20x_regulator_probe(struct platform_device *pdev) +@@ -1389,6 +1391,11 @@ static int axp20x_regulator_probe(struct platform_device *pdev) } } diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/rtw88-8821c-fix-debugfs-rssi-value.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/rtw88-8821c-fix-debugfs-rssi-value.patch deleted file mode 100644 index e465f7c8a..000000000 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/rtw88-8821c-fix-debugfs-rssi-value.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 86e308958d8aa3f21863af9cec00abd9e370f14d Mon Sep 17 00:00:00 2001 -From: Po-Hao Huang -Date: Thu, 7 Apr 2022 17:58:58 +0800 -Subject: [PATCH 388/515] rtw88: 8821c: fix debugfs rssi value - -RSSI value per frame is reported to mac80211 but not maintained in -our own statistics, add it back to help us debug. - -Signed-off-by: Po-Hao Huang -Signed-off-by: Ping-Ke Shih -Signed-off-by: Kalle Valo -Link: https://lore.kernel.org/r/20220407095858.46807-7-pkshih@realtek.com ---- - drivers/net/wireless/realtek/rtw88/rtw8821c.c | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/drivers/net/wireless/realtek/rtw88/rtw8821c.c b/drivers/net/wireless/realtek/rtw88/rtw8821c.c -index 99eee128ae94..ec38a7c84951 100644 ---- a/drivers/net/wireless/realtek/rtw88/rtw8821c.c -+++ b/drivers/net/wireless/realtek/rtw88/rtw8821c.c -@@ -512,6 +512,7 @@ static s8 get_cck_rx_pwr(struct rtw_dev *rtwdev, u8 lna_idx, u8 vga_idx) - static void query_phy_status_page0(struct rtw_dev *rtwdev, u8 *phy_status, - struct rtw_rx_pkt_stat *pkt_stat) - { -+ struct rtw_dm_info *dm_info = &rtwdev->dm_info; - s8 rx_power; - u8 lna_idx = 0; - u8 vga_idx = 0; -@@ -523,6 +524,7 @@ static void query_phy_status_page0(struct rtw_dev *rtwdev, u8 *phy_status, - - pkt_stat->rx_power[RF_PATH_A] = rx_power; - pkt_stat->rssi = rtw_phy_rf_power_2_rssi(pkt_stat->rx_power, 1); -+ dm_info->rssi[RF_PATH_A] = pkt_stat->rssi; - pkt_stat->bw = RTW_CHANNEL_WIDTH_20; - pkt_stat->signal_power = rx_power; - } -@@ -530,6 +532,7 @@ static void query_phy_status_page0(struct rtw_dev *rtwdev, u8 *phy_status, - static void query_phy_status_page1(struct rtw_dev *rtwdev, u8 *phy_status, - struct rtw_rx_pkt_stat *pkt_stat) - { -+ struct rtw_dm_info *dm_info = &rtwdev->dm_info; - u8 rxsc, bw; - s8 min_rx_power = -120; - -@@ -549,6 +552,7 @@ static void query_phy_status_page1(struct rtw_dev *rtwdev, u8 *phy_status, - - pkt_stat->rx_power[RF_PATH_A] = GET_PHY_STAT_P1_PWDB_A(phy_status) - 110; - pkt_stat->rssi = rtw_phy_rf_power_2_rssi(pkt_stat->rx_power, 1); -+ dm_info->rssi[RF_PATH_A] = pkt_stat->rssi; - pkt_stat->bw = bw; - pkt_stat->signal_power = max(pkt_stat->rx_power[RF_PATH_A], - min_rx_power); --- -2.35.3 - diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/rtw88-fix-incorrect-frequency-reported.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/rtw88-fix-incorrect-frequency-reported.patch deleted file mode 100644 index 6c4e7a538..000000000 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/rtw88-fix-incorrect-frequency-reported.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 1876b35b1a2853c3779cf7aeef33a7ac69c86d45 Mon Sep 17 00:00:00 2001 -From: Po-Hao Huang -Date: Thu, 7 Apr 2022 17:58:54 +0800 -Subject: [PATCH 384/515] rtw88: fix incorrect frequency reported - -We should only fill in frequency reported by firmware during scan. -Add this so frames won't be dropped by mac80211 due to frequency -mismatch. - -Signed-off-by: Po-Hao Huang -Signed-off-by: Ping-Ke Shih -Signed-off-by: Kalle Valo -Link: https://lore.kernel.org/r/20220407095858.46807-3-pkshih@realtek.com ---- - drivers/net/wireless/realtek/rtw88/rx.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/drivers/net/wireless/realtek/rtw88/rx.c b/drivers/net/wireless/realtek/rtw88/rx.c -index d2d607e22198..84aedabdf285 100644 ---- a/drivers/net/wireless/realtek/rtw88/rx.c -+++ b/drivers/net/wireless/realtek/rtw88/rx.c -@@ -158,7 +158,8 @@ void rtw_rx_fill_rx_status(struct rtw_dev *rtwdev, - memset(rx_status, 0, sizeof(*rx_status)); - rx_status->freq = hw->conf.chandef.chan->center_freq; - rx_status->band = hw->conf.chandef.chan->band; -- if (rtw_fw_feature_check(&rtwdev->fw, FW_FEATURE_SCAN_OFFLOAD)) -+ if (rtw_fw_feature_check(&rtwdev->fw, FW_FEATURE_SCAN_OFFLOAD) && -+ test_bit(RTW_FLAG_SCANNING, rtwdev->flags)) - rtw_set_rx_freq_by_pktstat(pkt_stat, rx_status); - if (pkt_stat->crc_err) - rx_status->flag |= RX_FLAG_FAILED_FCS_CRC; --- -2.35.3 - diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-8852c-add-efuse-gain-offset-parser.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-8852c-add-efuse-gain-offset-parser.patch index 101f31e55..d50ee85b2 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-8852c-add-efuse-gain-offset-parser.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-8852c-add-efuse-gain-offset-parser.patch @@ -1,7 +1,7 @@ -From cd68d547173287f05c593872b7d1f990f2e2261e Mon Sep 17 00:00:00 2001 +From b40c0194648afb6c3c9e1e369bacbe29eb35bd3a Mon Sep 17 00:00:00 2001 From: Ping-Ke Shih Date: Thu, 14 Apr 2022 14:20:21 +0800 -Subject: [PATCH 460/515] rtw89: 8852c: add efuse gain offset parser +Subject: [PATCH 459/534] rtw89: 8852c: add efuse gain offset parser Define efuse struct to access gain offset, and store them for further use by setting channel. @@ -17,7 +17,7 @@ Link: https://lore.kernel.org/r/20220414062027.62638-8-pkshih@realtek.com 4 files changed, 151 insertions(+), 4 deletions(-) diff --git a/drivers/net/wireless/realtek/rtw89/core.h b/drivers/net/wireless/realtek/rtw89/core.h -index 5617015a1fa5..22dbd3197382 100644 +index ea71d7f1a..f79775646 100644 --- a/drivers/net/wireless/realtek/rtw89/core.h +++ b/drivers/net/wireless/realtek/rtw89/core.h @@ -74,6 +74,16 @@ enum rtw89_subband { @@ -37,7 +37,7 @@ index 5617015a1fa5..22dbd3197382 100644 enum rtw89_hci_type { RTW89_HCI_TYPE_PCIE, RTW89_HCI_TYPE_USB, -@@ -3035,6 +3045,12 @@ struct rtw89_phy_bb_gain_info { +@@ -3036,6 +3046,12 @@ struct rtw89_phy_bb_gain_info { [RTW89_BB_RXSC_NUM_160]; }; @@ -50,7 +50,7 @@ index 5617015a1fa5..22dbd3197382 100644 struct rtw89_dev { struct ieee80211_hw *hw; struct device *dev; -@@ -3098,6 +3114,7 @@ struct rtw89_dev { +@@ -3099,6 +3115,7 @@ struct rtw89_dev { struct rtw89_dig_info dig; struct rtw89_phy_ch_info ch_info; struct rtw89_phy_bb_gain_info bb_gain; @@ -59,7 +59,7 @@ index 5617015a1fa5..22dbd3197382 100644 struct delayed_work track_work; struct delayed_work coex_act1_work; diff --git a/drivers/net/wireless/realtek/rtw89/reg.h b/drivers/net/wireless/realtek/rtw89/reg.h -index a7daca1d462c..bd5526ffb8db 100644 +index a7daca1d4..bd5526ffb 100644 --- a/drivers/net/wireless/realtek/rtw89/reg.h +++ b/drivers/net/wireless/realtek/rtw89/reg.h @@ -3470,6 +3470,8 @@ @@ -117,7 +117,7 @@ index a7daca1d462c..bd5526ffb8db 100644 #define B_P1_TMETER GENMASK(15, 10) #define B_P1_TMETER_DIS BIT(16) diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852c.c b/drivers/net/wireless/realtek/rtw89/rtw8852c.c -index dba279938347..bb935632ce40 100644 +index dba279938..bb935632c 100644 --- a/drivers/net/wireless/realtek/rtw89/rtw8852c.c +++ b/drivers/net/wireless/realtek/rtw89/rtw8852c.c @@ -317,6 +317,41 @@ static void rtw8852c_efuse_parsing_tssi(struct rtw89_dev *rtwdev, @@ -257,7 +257,7 @@ index dba279938347..bb935632ce40 100644 static diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852c.h b/drivers/net/wireless/realtek/rtw89/rtw8852c.h -index d1c5b4367a9d..ac642808a81f 100644 +index d1c5b4367..ac642808a 100644 --- a/drivers/net/wireless/realtek/rtw89/rtw8852c.h +++ b/drivers/net/wireless/realtek/rtw89/rtw8852c.h @@ -59,13 +59,23 @@ struct rtw8852c_efuse { diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-8852c-add-trigger-frame-counter.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-8852c-add-trigger-frame-counter.patch new file mode 100644 index 000000000..b589f8048 --- /dev/null +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-8852c-add-trigger-frame-counter.patch @@ -0,0 +1,140 @@ +From 67f3e6eed945eaf2ce21e4d72c4fb8d6a677fa59 Mon Sep 17 00:00:00 2001 +From: Po Hao Huang +Date: Wed, 8 Jun 2022 19:32:23 +0800 +Subject: [PATCH 535/538] rtw89: 8852c: add trigger frame counter + +Adding this allows us to maintain trigger frame statistics, which is +required for our CFO tracking decisions. + +Signed-off-by: Po Hao Huang +Signed-off-by: Ping-Ke Shih +Signed-off-by: Kalle Valo +Link: https://lore.kernel.org/r/20220608113224.11193-3-pkshih@realtek.com +--- + drivers/net/wireless/realtek/rtw89/core.c | 48 ++++++++++++++++++++++ + drivers/net/wireless/realtek/rtw89/core.h | 14 +++++++ + drivers/net/wireless/realtek/rtw89/debug.c | 3 +- + 3 files changed, 64 insertions(+), 1 deletion(-) + +diff --git a/drivers/net/wireless/realtek/rtw89/core.c b/drivers/net/wireless/realtek/rtw89/core.c +index 97731c7a3fd6..77738d72e3bb 100644 +--- a/drivers/net/wireless/realtek/rtw89/core.c ++++ b/drivers/net/wireless/realtek/rtw89/core.c +@@ -1343,6 +1343,47 @@ struct rtw89_vif_rx_stats_iter_data { + const u8 *bssid; + }; + ++static void rtw89_stats_trigger_frame(struct rtw89_dev *rtwdev, ++ struct ieee80211_vif *vif, ++ struct sk_buff *skb) ++{ ++ struct rtw89_vif *rtwvif = (struct rtw89_vif *)vif->drv_priv; ++ struct ieee80211_trigger *tf = (struct ieee80211_trigger *)skb->data; ++ u8 *pos, *end, type; ++ u16 aid; ++ ++ if (!ether_addr_equal(vif->bss_conf.bssid, tf->ta) || ++ rtwvif->wifi_role != RTW89_WIFI_ROLE_STATION || ++ rtwvif->net_type == RTW89_NET_TYPE_NO_LINK) ++ return; ++ ++ type = le64_get_bits(tf->common_info, IEEE80211_TRIGGER_TYPE_MASK); ++ if (type != IEEE80211_TRIGGER_TYPE_BASIC) ++ return; ++ ++ end = (u8 *)tf + skb->len; ++ pos = tf->variable; ++ ++ while (end - pos >= RTW89_TF_BASIC_USER_INFO_SZ) { ++ aid = RTW89_GET_TF_USER_INFO_AID12(pos); ++ rtw89_debug(rtwdev, RTW89_DBG_TXRX, ++ "[TF] aid: %d, ul_mcs: %d, rua: %d\n", ++ aid, RTW89_GET_TF_USER_INFO_UL_MCS(pos), ++ RTW89_GET_TF_USER_INFO_RUA(pos)); ++ ++ if (aid == RTW89_TF_PAD) ++ break; ++ ++ if (aid == vif->bss_conf.aid) { ++ rtwvif->stats.rx_tf_acc++; ++ rtwdev->stats.rx_tf_acc++; ++ break; ++ } ++ ++ pos += RTW89_TF_BASIC_USER_INFO_SZ; ++ } ++} ++ + static void rtw89_vif_rx_stats_iter(void *data, u8 *mac, + struct ieee80211_vif *vif) + { +@@ -1355,6 +1396,11 @@ static void rtw89_vif_rx_stats_iter(void *data, u8 *mac, + struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data; + const u8 *bssid = iter_data->bssid; + ++ if (ieee80211_is_trigger(hdr->frame_control)) { ++ rtw89_stats_trigger_frame(rtwdev, vif, skb); ++ return; ++ } ++ + if (!ether_addr_equal(vif->bss_conf.bssid, bssid)) + return; + +@@ -2023,6 +2069,8 @@ static bool rtw89_traffic_stats_calc(struct rtw89_dev *rtwdev, + stats->rx_unicast = 0; + stats->tx_cnt = 0; + stats->rx_cnt = 0; ++ stats->rx_tf_periodic = stats->rx_tf_acc; ++ stats->rx_tf_acc = 0; + + if (tx_tfc_lv != stats->tx_tfc_lv || rx_tfc_lv != stats->rx_tfc_lv) + return true; +diff --git a/drivers/net/wireless/realtek/rtw89/core.h b/drivers/net/wireless/realtek/rtw89/core.h +index 71e66c7ac858..7660b10d5377 100644 +--- a/drivers/net/wireless/realtek/rtw89/core.h ++++ b/drivers/net/wireless/realtek/rtw89/core.h +@@ -55,6 +55,16 @@ enum htc_om_channel_width { + #define RTW89_HTC_MASK_HTC_OM_DL_MU_MIMO_RR BIT(16) + #define RTW89_HTC_MASK_HTC_OM_UL_MU_DATA_DIS BIT(17) + ++#define RTW89_TF_PAD GENMASK(11, 0) ++#define RTW89_TF_BASIC_USER_INFO_SZ 6 ++ ++#define RTW89_GET_TF_USER_INFO_AID12(data) \ ++ le32_get_bits(*((const __le32 *)(data)), GENMASK(11, 0)) ++#define RTW89_GET_TF_USER_INFO_RUA(data) \ ++ le32_get_bits(*((const __le32 *)(data)), GENMASK(19, 12)) ++#define RTW89_GET_TF_USER_INFO_UL_MCS(data) \ ++ le32_get_bits(*((const __le32 *)(data)), GENMASK(24, 21)) ++ + enum rtw89_subband { + RTW89_CH_2G = 0, + RTW89_CH_5G_BAND_1 = 1, +@@ -943,6 +953,10 @@ struct rtw89_traffic_stats { + u32 rx_throughput; + u32 tx_throughput_raw; + u32 rx_throughput_raw; ++ ++ u32 rx_tf_acc; ++ u32 rx_tf_periodic; ++ + enum rtw89_tfc_lv tx_tfc_lv; + enum rtw89_tfc_lv rx_tfc_lv; + struct ewma_tp tx_ewma_tp; +diff --git a/drivers/net/wireless/realtek/rtw89/debug.c b/drivers/net/wireless/realtek/rtw89/debug.c +index 7820bc3ab3b4..f00f81916f2f 100644 +--- a/drivers/net/wireless/realtek/rtw89/debug.c ++++ b/drivers/net/wireless/realtek/rtw89/debug.c +@@ -2376,7 +2376,8 @@ static int rtw89_debug_priv_phy_info_get(struct seq_file *m, void *v) + seq_printf(m, "TP TX: %u [%u] Mbps (lv: %d), RX: %u [%u] Mbps (lv: %d)\n", + stats->tx_throughput, stats->tx_throughput_raw, stats->tx_tfc_lv, + stats->rx_throughput, stats->rx_throughput_raw, stats->rx_tfc_lv); +- seq_printf(m, "Beacon: %u\n", pkt_stat->beacon_nr); ++ seq_printf(m, "Beacon: %u, TF: %u\n", pkt_stat->beacon_nr, ++ stats->rx_tf_periodic); + seq_printf(m, "Avg packet length: TX=%u, RX=%u\n", stats->tx_avg_len, + stats->rx_avg_len); + +-- +2.35.3 + diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-8852c-configure-default-BB-TX-RX-path.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-8852c-configure-default-BB-TX-RX-path.patch index 0b29890b4..20c359458 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-8852c-configure-default-BB-TX-RX-path.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-8852c-configure-default-BB-TX-RX-path.patch @@ -1,7 +1,7 @@ -From b18bd7956717c8767524790885e61fae09711b55 Mon Sep 17 00:00:00 2001 +From 4fab7045f80ff0b2822a9eaaa20adbe782cc5b13 Mon Sep 17 00:00:00 2001 From: Ping-Ke Shih Date: Thu, 21 Apr 2022 20:08:59 +0800 -Subject: [PATCH 475/515] rtw89: 8852c: configure default BB TX/RX path +Subject: [PATCH 474/534] rtw89: 8852c: configure default BB TX/RX path 8852c propose new API to configure BB TX/RX path. Without fix patch, it can't transmit any packet. @@ -18,7 +18,7 @@ Link: https://lore.kernel.org/r/20220421120903.73715-11-pkshih@realtek.com 5 files changed, 279 insertions(+), 2 deletions(-) diff --git a/drivers/net/wireless/realtek/rtw89/core.h b/drivers/net/wireless/realtek/rtw89/core.h -index 1e79660f288b..c307364069c0 100644 +index c7261f224..6b291d595 100644 --- a/drivers/net/wireless/realtek/rtw89/core.h +++ b/drivers/net/wireless/realtek/rtw89/core.h @@ -2104,6 +2104,7 @@ struct rtw89_chip_ops { @@ -29,7 +29,7 @@ index 1e79660f288b..c307364069c0 100644 void (*set_txpwr_ul_tb_offset)(struct rtw89_dev *rtwdev, s8 pw_ofst, enum rtw89_mac_idx mac_idx); int (*pwr_on_func)(struct rtw89_dev *rtwdev); -@@ -3633,6 +3634,14 @@ static inline void rtw89_chip_bb_ctrl_btc_preagc(struct rtw89_dev *rtwdev, +@@ -3634,6 +3635,14 @@ static inline void rtw89_chip_bb_ctrl_btc_preagc(struct rtw89_dev *rtwdev, chip->ops->bb_ctrl_btc_preagc(rtwdev, bt_en); } @@ -45,10 +45,10 @@ index 1e79660f288b..c307364069c0 100644 void rtw89_chip_cfg_txpwr_ul_tb_offset(struct rtw89_dev *rtwdev, struct ieee80211_vif *vif) diff --git a/drivers/net/wireless/realtek/rtw89/phy.c b/drivers/net/wireless/realtek/rtw89/phy.c -index cc0d0c0194bb..5f1807785e60 100644 +index 46f764c05..425fae837 100644 --- a/drivers/net/wireless/realtek/rtw89/phy.c +++ b/drivers/net/wireless/realtek/rtw89/phy.c -@@ -3592,6 +3592,7 @@ void rtw89_phy_dm_init(struct rtw89_dev *rtwdev) +@@ -3597,6 +3597,7 @@ void rtw89_phy_dm_init(struct rtw89_dev *rtwdev) rtw89_load_txpwr_table(rtwdev, chip->byr_table); rtw89_chip_set_txpwr_ctrl(rtwdev); rtw89_chip_power_trim(rtwdev); @@ -57,7 +57,7 @@ index cc0d0c0194bb..5f1807785e60 100644 void rtw89_phy_set_bss_color(struct rtw89_dev *rtwdev, struct ieee80211_vif *vif) diff --git a/drivers/net/wireless/realtek/rtw89/reg.h b/drivers/net/wireless/realtek/rtw89/reg.h -index 0f08b2581797..6dc11e8e2a83 100644 +index 0f08b2581..6dc11e8e2 100644 --- a/drivers/net/wireless/realtek/rtw89/reg.h +++ b/drivers/net/wireless/realtek/rtw89/reg.h @@ -2962,6 +2962,45 @@ @@ -205,7 +205,7 @@ index 0f08b2581797..6dc11e8e2a83 100644 #define B_PATH1_5MDET_EN BIT(12) #define B_PATH1_5MDET_SB2 BIT(8) diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852a.c b/drivers/net/wireless/realtek/rtw89/rtw8852a.c -index 5af618709ded..81bd0c4fe21b 100644 +index 5af618709..81bd0c4fe 100644 --- a/drivers/net/wireless/realtek/rtw89/rtw8852a.c +++ b/drivers/net/wireless/realtek/rtw89/rtw8852a.c @@ -2066,6 +2066,7 @@ static const struct rtw89_chip_ops rtw8852a_chip_ops = { @@ -217,7 +217,7 @@ index 5af618709ded..81bd0c4fe21b 100644 .pwr_on_func = NULL, .pwr_off_func = NULL, diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852c.c b/drivers/net/wireless/realtek/rtw89/rtw8852c.c -index 3ee57df0a639..290c453d8c23 100644 +index 3ee57df0a..290c453d8 100644 --- a/drivers/net/wireless/realtek/rtw89/rtw8852c.c +++ b/drivers/net/wireless/realtek/rtw89/rtw8852c.c @@ -1813,6 +1813,199 @@ void rtw8852c_set_txpwr_ul_tb_offset(struct rtw89_dev *rtwdev, diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-8852c-phy-configure-TSSI-bandedge.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-8852c-phy-configure-TSSI-bandedge.patch index 2d73ffdbf..302f15b62 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-8852c-phy-configure-TSSI-bandedge.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-8852c-phy-configure-TSSI-bandedge.patch @@ -1,7 +1,7 @@ -From 73232babd430262d298cae030975c4de6ad2dbb5 Mon Sep 17 00:00:00 2001 +From 9dc6686e8b84a46ed766d030254aaeb37482f337 Mon Sep 17 00:00:00 2001 From: Ping-Ke Shih Date: Thu, 14 Apr 2022 14:20:18 +0800 -Subject: [PATCH 457/515] rtw89: 8852c: phy: configure TSSI bandedge +Subject: [PATCH 456/534] rtw89: 8852c: phy: configure TSSI bandedge TSSI is used to manage TX power with thermal value as a factor. This patch is to configure bandedge to TX proper waveform. @@ -21,7 +21,7 @@ Link: https://lore.kernel.org/r/20220414062027.62638-5-pkshih@realtek.com 8 files changed, 158 insertions(+) diff --git a/drivers/net/wireless/realtek/rtw89/core.h b/drivers/net/wireless/realtek/rtw89/core.h -index 4029bbf9c615..72271929f8e6 100644 +index 967e760a0..ef87e67b9 100644 --- a/drivers/net/wireless/realtek/rtw89/core.h +++ b/drivers/net/wireless/realtek/rtw89/core.h @@ -2380,6 +2380,7 @@ struct rtw89_chip_info { @@ -33,10 +33,10 @@ index 4029bbf9c615..72271929f8e6 100644 [RTW89_RS_LMT_NUM][RTW89_BF_NUM] [RTW89_REGD_NUM][RTW89_2G_CH_NUM]; diff --git a/drivers/net/wireless/realtek/rtw89/phy.c b/drivers/net/wireless/realtek/rtw89/phy.c -index be9c0cf9e469..6db0ac085f04 100644 +index 23cc4a566..0ff85aaae 100644 --- a/drivers/net/wireless/realtek/rtw89/phy.c +++ b/drivers/net/wireless/realtek/rtw89/phy.c -@@ -3420,3 +3420,109 @@ rtw89_rfk_parser(struct rtw89_dev *rtwdev, const struct rtw89_rfk_tbl *tbl) +@@ -3425,3 +3425,109 @@ rtw89_rfk_parser(struct rtw89_dev *rtwdev, const struct rtw89_rfk_tbl *tbl) _rfk_handler[p->flag](rtwdev, p); } EXPORT_SYMBOL(rtw89_rfk_parser); @@ -147,7 +147,7 @@ index be9c0cf9e469..6db0ac085f04 100644 +} +EXPORT_SYMBOL(rtw89_phy_tssi_ctrl_set_bandedge_cfg); diff --git a/drivers/net/wireless/realtek/rtw89/phy.h b/drivers/net/wireless/realtek/rtw89/phy.h -index 9c97e77d9707..b8531bb7e606 100644 +index 9c97e77d9..b8531bb7e 100644 --- a/drivers/net/wireless/realtek/rtw89/phy.h +++ b/drivers/net/wireless/realtek/rtw89/phy.h @@ -221,6 +221,35 @@ enum rtw89_dig_gain_tia_idx { @@ -207,7 +207,7 @@ index 9c97e77d9707..b8531bb7e606 100644 #endif diff --git a/drivers/net/wireless/realtek/rtw89/reg.h b/drivers/net/wireless/realtek/rtw89/reg.h -index 98465d746989..cd7916085e00 100644 +index 98465d746..cd7916085 100644 --- a/drivers/net/wireless/realtek/rtw89/reg.h +++ b/drivers/net/wireless/realtek/rtw89/reg.h @@ -2958,6 +2958,11 @@ @@ -223,7 +223,7 @@ index 98465d746989..cd7916085e00 100644 #define R_AX_TXPWR_IMR_C1 0xF9E0 #define R_AX_TXPWR_ISR 0xD9E4 diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852a.c b/drivers/net/wireless/realtek/rtw89/rtw8852a.c -index 2c5bd381ebf5..cb93287d4722 100644 +index 2c5bd381e..cb93287d4 100644 --- a/drivers/net/wireless/realtek/rtw89/rtw8852a.c +++ b/drivers/net/wireless/realtek/rtw89/rtw8852a.c @@ -2113,6 +2113,7 @@ const struct rtw89_chip_info rtw8852a_chip_info = { @@ -235,7 +235,7 @@ index 2c5bd381ebf5..cb93287d4722 100644 BIT(NL80211_BAND_5GHZ), .support_bw160 = false, diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852c.c b/drivers/net/wireless/realtek/rtw89/rtw8852c.c -index 3f727dd42064..1b5f8da2e9e8 100644 +index 3f727dd42..1b5f8da2e 100644 --- a/drivers/net/wireless/realtek/rtw89/rtw8852c.c +++ b/drivers/net/wireless/realtek/rtw89/rtw8852c.c @@ -674,6 +674,7 @@ const struct rtw89_chip_info rtw8852c_chip_info = { @@ -247,7 +247,7 @@ index 3f727dd42064..1b5f8da2e9e8 100644 .sec_ctrl_efuse_size = 4, .physical_efuse_size = 1216, diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852c_table.c b/drivers/net/wireless/realtek/rtw89/rtw8852c_table.c -index e7852d286137..477c46041c94 100644 +index e7852d286..477c46041 100644 --- a/drivers/net/wireless/realtek/rtw89/rtw8852c_table.c +++ b/drivers/net/wireless/realtek/rtw89/rtw8852c_table.c @@ -19461,3 +19461,10 @@ const struct rtw89_txpwr_track_cfg rtw89_8852c_trk_cfg = { @@ -262,7 +262,7 @@ index e7852d286137..477c46041c94 100644 + .data[RTW89_TSSI_BANDEDGE_HIGH] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, +}; diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852c_table.h b/drivers/net/wireless/realtek/rtw89/rtw8852c_table.h -index 616282c9bb98..7d71a92e2d27 100644 +index 616282c9b..7d71a92e2 100644 --- a/drivers/net/wireless/realtek/rtw89/rtw8852c_table.h +++ b/drivers/net/wireless/realtek/rtw89/rtw8852c_table.h @@ -13,6 +13,7 @@ extern const struct rtw89_phy_table rtw89_8852c_phy_radioa_table; diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-8852c-rfk-add-DPK.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-8852c-rfk-add-DPK.patch index dac7278f4..c8c6d0141 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-8852c-rfk-add-DPK.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-8852c-rfk-add-DPK.patch @@ -1,7 +1,7 @@ -From a412f8d77dc3f9111de6d5710132da36502383cf Mon Sep 17 00:00:00 2001 +From 990ccfae26262475aca0d50b0659d432fdc5da89 Mon Sep 17 00:00:00 2001 From: Ping-Ke Shih Date: Tue, 3 May 2022 07:54:08 +0800 -Subject: [PATCH 488/515] rtw89: 8852c: rfk: add DPK +Subject: [PATCH 487/534] rtw89: 8852c: rfk: add DPK DPK is short for digital pre-distortion calibration. It can adjusts digital waveform according to PA linear characteristics dynamically to enhance @@ -27,10 +27,10 @@ Link: https://lore.kernel.org/r/20220502235408.15052-9-pkshih@realtek.com 6 files changed, 1178 insertions(+), 8 deletions(-) diff --git a/drivers/net/wireless/realtek/rtw89/core.h b/drivers/net/wireless/realtek/rtw89/core.h -index e81cf835fe70..f9bd14dd166a 100644 +index 17d74ca17..7eb1b5494 100644 --- a/drivers/net/wireless/realtek/rtw89/core.h +++ b/drivers/net/wireless/realtek/rtw89/core.h -@@ -2690,6 +2690,7 @@ struct rtw89_dpk_bkup_para { +@@ -2691,6 +2691,7 @@ struct rtw89_dpk_bkup_para { enum rtw89_bandwidth bw; u8 ch; bool path_ok; @@ -38,7 +38,7 @@ index e81cf835fe70..f9bd14dd166a 100644 u8 txagc_dpk; u8 ther_dpk; u8 gs; -@@ -2699,11 +2700,12 @@ struct rtw89_dpk_bkup_para { +@@ -2700,11 +2701,12 @@ struct rtw89_dpk_bkup_para { struct rtw89_dpk_info { bool is_dpk_enable; bool is_dpk_reload_en; @@ -55,7 +55,7 @@ index e81cf835fe70..f9bd14dd166a 100644 struct rtw89_dpk_bkup_para bp[RTW89_DPK_RF_PATH][RTW89_DPK_BKUP_NUM]; }; -@@ -2712,6 +2714,7 @@ struct rtw89_fem_info { +@@ -2713,6 +2715,7 @@ struct rtw89_fem_info { bool elna_5g; bool epa_2g; bool epa_5g; @@ -64,7 +64,7 @@ index e81cf835fe70..f9bd14dd166a 100644 struct rtw89_phy_ch_info { diff --git a/drivers/net/wireless/realtek/rtw89/reg.h b/drivers/net/wireless/realtek/rtw89/reg.h -index 120fc13520fc..6f5d1012c90c 100644 +index 120fc1352..6f5d1012c 100644 --- a/drivers/net/wireless/realtek/rtw89/reg.h +++ b/drivers/net/wireless/realtek/rtw89/reg.h @@ -3191,6 +3191,7 @@ @@ -221,7 +221,7 @@ index 120fc13520fc..6f5d1012c90c 100644 #define R_RXCFIR_P0C1 0x8D84 #define R_RXCFIR_P0C2 0x8DC8 diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c b/drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c -index aa782534e76b..e3c2fce32651 100644 +index aa782534e..e3c2fce32 100644 --- a/drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c +++ b/drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c @@ -2189,8 +2189,8 @@ static bool _dpk_sync_check(struct rtw89_dev *rtwdev, @@ -247,7 +247,7 @@ index aa782534e76b..e3c2fce32651 100644 if (dc_i > DPK_SYNC_TH_DC_I || dc_q > DPK_SYNC_TH_DC_Q || corr_val < DPK_SYNC_TH_CORR) diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852c.c b/drivers/net/wireless/realtek/rtw89/rtw8852c.c -index 0b722675aad4..4fb3de71d032 100644 +index 0b722675a..4fb3de71d 100644 --- a/drivers/net/wireless/realtek/rtw89/rtw8852c.c +++ b/drivers/net/wireless/realtek/rtw89/rtw8852c.c @@ -1789,6 +1789,7 @@ static void rtw8852c_rfk_channel(struct rtw89_dev *rtwdev) @@ -267,7 +267,7 @@ index 0b722675aad4..4fb3de71d032 100644 } diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c b/drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c -index 3108fa9cd5b2..ffc71ad24927 100644 +index 3108fa9cd..ffc71ad24 100644 --- a/drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c +++ b/drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c @@ -55,6 +55,11 @@ static const u32 _txk_g_track_range[TXK_GROUP_NR] = {0x5, 0x6, 0x6}; @@ -1406,7 +1406,7 @@ index 3108fa9cd5b2..ffc71ad24927 100644 { u32 i, path = RF_PATH_A, path_max = RF_PATH_NUM_8852C; diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.h b/drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.h -index 5c0623f6af20..e42fb1a4965e 100644 +index 5c0623f6a..e42fb1a49 100644 --- a/drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.h +++ b/drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.h @@ -11,6 +11,8 @@ void rtw8852c_rck(struct rtw89_dev *rtwdev); diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-8852c-rfk-add-IQK.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-8852c-rfk-add-IQK.patch index bc3072316..ae8570716 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-8852c-rfk-add-IQK.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-8852c-rfk-add-IQK.patch @@ -1,7 +1,7 @@ -From 5a5207074e8ae0af79852637c91ca78f9d3a79e3 Mon Sep 17 00:00:00 2001 +From 21678ce27805552dd9618246029376ebc672c007 Mon Sep 17 00:00:00 2001 From: Ping-Ke Shih Date: Tue, 3 May 2022 07:54:07 +0800 -Subject: [PATCH 487/515] rtw89: 8852c: rfk: add IQK +Subject: [PATCH 486/534] rtw89: 8852c: rfk: add IQK IQ signal calibration is a very important calibration to yield good RF performance. We do this calibration only if we are going to run on AP @@ -20,10 +20,10 @@ Link: https://lore.kernel.org/r/20220502235408.15052-8-pkshih@realtek.com 5 files changed, 1099 insertions(+), 4 deletions(-) diff --git a/drivers/net/wireless/realtek/rtw89/core.h b/drivers/net/wireless/realtek/rtw89/core.h -index a735e5aa6c75..e81cf835fe70 100644 +index 312d61edd..17d74ca17 100644 --- a/drivers/net/wireless/realtek/rtw89/core.h +++ b/drivers/net/wireless/realtek/rtw89/core.h -@@ -2649,6 +2649,7 @@ struct rtw89_lck_info { +@@ -2650,6 +2650,7 @@ struct rtw89_lck_info { struct rtw89_iqk_info { bool lok_cor_fail[RTW89_IQK_CHS_NR][RTW89_IQK_PATH_NR]; bool lok_fin_fail[RTW89_IQK_CHS_NR][RTW89_IQK_PATH_NR]; @@ -31,7 +31,7 @@ index a735e5aa6c75..e81cf835fe70 100644 bool iqk_tx_fail[RTW89_IQK_CHS_NR][RTW89_IQK_PATH_NR]; bool iqk_rx_fail[RTW89_IQK_CHS_NR][RTW89_IQK_PATH_NR]; u32 iqk_fail_cnt; -@@ -2677,6 +2678,8 @@ struct rtw89_iqk_info { +@@ -2678,6 +2679,8 @@ struct rtw89_iqk_info { u32 syn1to2; u8 iqk_mcc_ch[RTW89_IQK_CHS_NR][RTW89_IQK_PATH_NR]; u8 iqk_table_idx[RTW89_IQK_PATH_NR]; @@ -41,7 +41,7 @@ index a735e5aa6c75..e81cf835fe70 100644 #define RTW89_DPK_RF_PATH 2 diff --git a/drivers/net/wireless/realtek/rtw89/reg.h b/drivers/net/wireless/realtek/rtw89/reg.h -index c65598a7af26..120fc13520fc 100644 +index c65598a7a..120fc1352 100644 --- a/drivers/net/wireless/realtek/rtw89/reg.h +++ b/drivers/net/wireless/realtek/rtw89/reg.h @@ -3202,6 +3202,7 @@ @@ -208,7 +208,7 @@ index c65598a7af26..120fc13520fc 100644 #define R_DPD_V1 0x81a0 #define R_DPD_CH0 0x81AC diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852c.c b/drivers/net/wireless/realtek/rtw89/rtw8852c.c -index cbf69670eafe..0b722675aad4 100644 +index cbf69670e..0b722675a 100644 --- a/drivers/net/wireless/realtek/rtw89/rtw8852c.c +++ b/drivers/net/wireless/realtek/rtw89/rtw8852c.c @@ -1787,6 +1787,7 @@ static void rtw8852c_rfk_channel(struct rtw89_dev *rtwdev) @@ -220,7 +220,7 @@ index cbf69670eafe..0b722675aad4 100644 rtw89_fw_h2c_rf_ntfy_mcc(rtwdev); } diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c b/drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c -index 197d177494da..3108fa9cd5b2 100644 +index 197d17749..3108fa9cd 100644 --- a/drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c +++ b/drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c @@ -21,6 +21,40 @@ static const u32 _tssi_de_mcs_80m_80m[RF_PATH_NUM_8852C] = {0x5850, 0x7850}; @@ -1302,7 +1302,7 @@ index 197d177494da..3108fa9cd5b2 100644 void rtw8852c_rx_dck(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy, bool is_afe) diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.h b/drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.h -index fd07028a4964..5c0623f6af20 100644 +index fd07028a4..5c0623f6a 100644 --- a/drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.h +++ b/drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.h @@ -9,6 +9,7 @@ diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-8852c-rfk-add-LCK.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-8852c-rfk-add-LCK.patch index 11ee39cd6..a9dea85fc 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-8852c-rfk-add-LCK.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-8852c-rfk-add-LCK.patch @@ -1,7 +1,7 @@ -From 3cfa7c575a23cf1e34ec4a457853e982595b8c5f Mon Sep 17 00:00:00 2001 +From b0dab983f3e5fcf13a6a95e266b3da4689fa9b21 Mon Sep 17 00:00:00 2001 From: Ping-Ke Shih Date: Tue, 3 May 2022 07:54:03 +0800 -Subject: [PATCH 483/515] rtw89: 8852c: rfk: add LCK +Subject: [PATCH 482/534] rtw89: 8852c: rfk: add LCK LCK is short fro LC Tank calibration. Do this calibration once driver loads RF parameters table. Since the characteristic can be changed by @@ -20,10 +20,10 @@ Link: https://lore.kernel.org/r/20220502235408.15052-4-pkshih@realtek.com 5 files changed, 79 insertions(+) diff --git a/drivers/net/wireless/realtek/rtw89/core.h b/drivers/net/wireless/realtek/rtw89/core.h -index c307364069c0..a735e5aa6c75 100644 +index 6b291d595..312d61edd 100644 --- a/drivers/net/wireless/realtek/rtw89/core.h +++ b/drivers/net/wireless/realtek/rtw89/core.h -@@ -2642,6 +2642,10 @@ struct rtw89_mcc_info { +@@ -2643,6 +2643,10 @@ struct rtw89_mcc_info { u8 table_idx; }; @@ -34,7 +34,7 @@ index c307364069c0..a735e5aa6c75 100644 struct rtw89_iqk_info { bool lok_cor_fail[RTW89_IQK_CHS_NR][RTW89_IQK_PATH_NR]; bool lok_fin_fail[RTW89_IQK_CHS_NR][RTW89_IQK_PATH_NR]; -@@ -3114,6 +3118,7 @@ struct rtw89_dev { +@@ -3115,6 +3119,7 @@ struct rtw89_dev { struct rtw89_iqk_info iqk; struct rtw89_dpk_info dpk; struct rtw89_mcc_info mcc; @@ -43,7 +43,7 @@ index c307364069c0..a735e5aa6c75 100644 bool is_bt_iqk_timeout; diff --git a/drivers/net/wireless/realtek/rtw89/reg.h b/drivers/net/wireless/realtek/rtw89/reg.h -index ce472d3b1a66..028c88130823 100644 +index ce472d3b1..028c88130 100644 --- a/drivers/net/wireless/realtek/rtw89/reg.h +++ b/drivers/net/wireless/realtek/rtw89/reg.h @@ -3327,6 +3327,8 @@ @@ -56,7 +56,7 @@ index ce472d3b1a66..028c88130823 100644 #define RR_RCKD_POW GENMASK(19, 13) #define RR_RCKD_BW BIT(2) diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852c.c b/drivers/net/wireless/realtek/rtw89/rtw8852c.c -index 502627d8141d..14302ebed3d5 100644 +index 502627d81..14302ebed 100644 --- a/drivers/net/wireless/realtek/rtw89/rtw8852c.c +++ b/drivers/net/wireless/realtek/rtw89/rtw8852c.c @@ -1771,6 +1771,7 @@ static void rtw8852c_rfk_init(struct rtw89_dev *rtwdev) @@ -88,7 +88,7 @@ index 502627d8141d..14302ebed3d5 100644 .set_txpwr = rtw8852c_set_txpwr, .set_txpwr_ctrl = rtw8852c_set_txpwr_ctrl, diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c b/drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c -index 4245a2c5f9d6..ce08b2dcf545 100644 +index 4245a2c5f..ce08b2dcf 100644 --- a/drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c +++ b/drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c @@ -632,6 +632,69 @@ static void _rxbb_bw(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy, @@ -162,7 +162,7 @@ index 4245a2c5f9d6..ce08b2dcf545 100644 void rtw8852c_ctrl_bw_ch(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy, u8 central_ch, enum rtw89_band band, diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.h b/drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.h -index 7323183e74d4..4ce76ef4c5e6 100644 +index 7323183e7..4ce76ef4c 100644 --- a/drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.h +++ b/drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.h @@ -11,5 +11,7 @@ void rtw8852c_dack(struct rtw89_dev *rtwdev); diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-8852c-support-bb-gain-info.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-8852c-support-bb-gain-info.patch index 4f0483f4e..e82103859 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-8852c-support-bb-gain-info.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-8852c-support-bb-gain-info.patch @@ -1,7 +1,7 @@ -From 46d33ccbabac173c8e98357fe5b545b463b6412d Mon Sep 17 00:00:00 2001 +From 7731ccecb6c9150882ac1da6c82c8d766134eac6 Mon Sep 17 00:00:00 2001 From: Zong-Zhe Yang Date: Thu, 14 Apr 2022 14:20:20 +0800 -Subject: [PATCH 459/515] rtw89: 8852c: support bb gain info +Subject: [PATCH 458/534] rtw89: 8852c: support bb gain info Add parser for bb gain table and configure bb gain table for 8852c. While ctrl_ch, obtain bb gain error settings and write them to phy. @@ -18,10 +18,10 @@ Link: https://lore.kernel.org/r/20220414062027.62638-7-pkshih@realtek.com 4 files changed, 459 insertions(+) diff --git a/drivers/net/wireless/realtek/rtw89/core.h b/drivers/net/wireless/realtek/rtw89/core.h -index 72271929f8e6..5617015a1fa5 100644 +index ef87e67b9..ea71d7f1a 100644 --- a/drivers/net/wireless/realtek/rtw89/core.h +++ b/drivers/net/wireless/realtek/rtw89/core.h -@@ -3000,6 +3000,41 @@ struct rtw89_hw_scan_info { +@@ -3001,6 +3001,41 @@ struct rtw89_hw_scan_info { u8 op_band; }; @@ -63,7 +63,7 @@ index 72271929f8e6..5617015a1fa5 100644 struct rtw89_dev { struct ieee80211_hw *hw; struct device *dev; -@@ -3062,6 +3097,8 @@ struct rtw89_dev { +@@ -3063,6 +3098,8 @@ struct rtw89_dev { struct rtw89_env_monitor_info env_monitor; struct rtw89_dig_info dig; struct rtw89_phy_ch_info ch_info; @@ -73,7 +73,7 @@ index 72271929f8e6..5617015a1fa5 100644 struct delayed_work coex_act1_work; struct delayed_work coex_bt_devinfo_work; diff --git a/drivers/net/wireless/realtek/rtw89/phy.c b/drivers/net/wireless/realtek/rtw89/phy.c -index 6db0ac085f04..cc0d0c0194bb 100644 +index 0ff85aaae..46f764c05 100644 --- a/drivers/net/wireless/realtek/rtw89/phy.c +++ b/drivers/net/wireless/realtek/rtw89/phy.c @@ -790,6 +790,245 @@ static void rtw89_phy_config_bb_reg(struct rtw89_dev *rtwdev, @@ -337,7 +337,7 @@ index 6db0ac085f04..cc0d0c0194bb 100644 } diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852c.c b/drivers/net/wireless/realtek/rtw89/rtw8852c.c -index 9c6bef665c76..dba279938347 100644 +index 9c6bef665..dba279938 100644 --- a/drivers/net/wireless/realtek/rtw89/rtw8852c.c +++ b/drivers/net/wireless/realtek/rtw89/rtw8852c.c @@ -495,6 +495,184 @@ static void rtw8852c_power_trim(struct rtw89_dev *rtwdev) @@ -526,7 +526,7 @@ index 9c6bef665c76..dba279938347 100644 enum rtw89_phy_idx phy_idx) { diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852c.h b/drivers/net/wireless/realtek/rtw89/rtw8852c.h -index d0594716040b..d1c5b4367a9d 100644 +index d05947160..d1c5b4367 100644 --- a/drivers/net/wireless/realtek/rtw89/rtw8852c.h +++ b/drivers/net/wireless/realtek/rtw89/rtw8852c.h @@ -8,6 +8,7 @@ diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-Skip-useless-dig-gain-and-igi-related-settings-for-8852C.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-Skip-useless-dig-gain-and-igi-related-settings-for-8852C.patch index 6904fa3b1..26d7dc14b 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-Skip-useless-dig-gain-and-igi-related-settings-for-8852C.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-Skip-useless-dig-gain-and-igi-related-settings-for-8852C.patch @@ -1,7 +1,7 @@ -From 02a32277c46edabbe2cf0b2a73cb88dbb74e171e Mon Sep 17 00:00:00 2001 +From c46e12638c86c1076cc9d4614816f0df30665625 Mon Sep 17 00:00:00 2001 From: Johnson Lin Date: Fri, 8 Apr 2022 08:13:48 +0800 -Subject: [PATCH 447/515] rtw89: Skip useless dig gain and igi related settings +Subject: [PATCH 446/534] rtw89: Skip useless dig gain and igi related settings for 8852C Separated DIG RX gain, IGI configurations from not supportted HW using @@ -17,10 +17,10 @@ Link: https://lore.kernel.org/r/20220408001353.17188-9-pkshih@realtek.com 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/net/wireless/realtek/rtw89/phy.c b/drivers/net/wireless/realtek/rtw89/phy.c -index 193afb1f53f5..be9c0cf9e469 100644 +index c3d3fe29e..23cc4a566 100644 --- a/drivers/net/wireless/realtek/rtw89/phy.c +++ b/drivers/net/wireless/realtek/rtw89/phy.c -@@ -2930,6 +2930,9 @@ static void rtw89_phy_dig_update_gain_para(struct rtw89_dev *rtwdev) +@@ -2935,6 +2935,9 @@ static void rtw89_phy_dig_update_gain_para(struct rtw89_dev *rtwdev) u32 tmp; u8 i; @@ -30,7 +30,7 @@ index 193afb1f53f5..be9c0cf9e469 100644 tmp = rtw89_phy_read32_mask(rtwdev, R_PATH0_IB_PKPW, B_PATH0_IB_PKPW_MSK); dig->ib_pkpwr = sign_extend32(tmp >> DIG_GAIN_SHIFT, U8_MAX_BIT); -@@ -3184,6 +3187,9 @@ static void rtw89_phy_dig_config_igi(struct rtw89_dev *rtwdev) +@@ -3189,6 +3192,9 @@ static void rtw89_phy_dig_config_igi(struct rtw89_dev *rtwdev) { struct rtw89_dig_info *dig = &rtwdev->dig; @@ -40,7 +40,7 @@ index 193afb1f53f5..be9c0cf9e469 100644 if (dig->force_gaincode_idx_en) { rtw89_phy_dig_set_igi_cr(rtwdev, dig->force_gaincode); rtw89_debug(rtwdev, RTW89_DBG_DIG, -@@ -3309,8 +3315,7 @@ void rtw89_phy_dig(struct rtw89_dev *rtwdev) +@@ -3314,8 +3320,7 @@ void rtw89_phy_dig(struct rtw89_dev *rtwdev) dig->igi_rssi, dig->dyn_igi_max, dig->dyn_igi_min, dig->igi_fa_rssi); @@ -51,7 +51,7 @@ index 193afb1f53f5..be9c0cf9e469 100644 rtw89_phy_dig_dyn_pd_th(rtwdev, dig->igi_fa_rssi, dig->dyn_pd_th_en); diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852c.c b/drivers/net/wireless/realtek/rtw89/rtw8852c.c -index 9689fc5a6372..ca254339ea7a 100644 +index 9689fc5a6..ca254339e 100644 --- a/drivers/net/wireless/realtek/rtw89/rtw8852c.c +++ b/drivers/net/wireless/realtek/rtw89/rtw8852c.c @@ -598,6 +598,7 @@ const struct rtw89_chip_info rtw8852c_chip_info = { diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-add-RF-H2C-to-notify-firmware.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-add-RF-H2C-to-notify-firmware.patch index a7a5339bf..405d546bb 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-add-RF-H2C-to-notify-firmware.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-add-RF-H2C-to-notify-firmware.patch @@ -1,7 +1,7 @@ -From 19814d5a61834fc661aaa96fd9c630a158cb5e03 Mon Sep 17 00:00:00 2001 +From 278028a23696bc8e1e4f7347661282ace187320c Mon Sep 17 00:00:00 2001 From: Ping-Ke Shih Date: Thu, 21 Apr 2022 20:08:58 +0800 -Subject: [PATCH 474/515] rtw89: add RF H2C to notify firmware +Subject: [PATCH 473/534] rtw89: add RF H2C to notify firmware IQK results in hardware has two copies that are used by firmware to switch these two to support MCC. @@ -20,10 +20,10 @@ Link: https://lore.kernel.org/r/20220421120903.73715-10-pkshih@realtek.com 4 files changed, 73 insertions(+) diff --git a/drivers/net/wireless/realtek/rtw89/core.h b/drivers/net/wireless/realtek/rtw89/core.h -index 90231b20e7ee..1e79660f288b 100644 +index bc54463e9..c7261f224 100644 --- a/drivers/net/wireless/realtek/rtw89/core.h +++ b/drivers/net/wireless/realtek/rtw89/core.h -@@ -2634,6 +2634,13 @@ struct rtw89_dack_info { +@@ -2635,6 +2635,13 @@ struct rtw89_dack_info { #define RTW89_IQK_CHS_NR 2 #define RTW89_IQK_PATH_NR 4 @@ -37,7 +37,7 @@ index 90231b20e7ee..1e79660f288b 100644 struct rtw89_iqk_info { bool lok_cor_fail[RTW89_IQK_CHS_NR][RTW89_IQK_PATH_NR]; bool lok_fin_fail[RTW89_IQK_CHS_NR][RTW89_IQK_PATH_NR]; -@@ -3105,6 +3112,7 @@ struct rtw89_dev { +@@ -3106,6 +3113,7 @@ struct rtw89_dev { struct rtw89_dack_info dack; struct rtw89_iqk_info iqk; struct rtw89_dpk_info dpk; @@ -46,10 +46,10 @@ index 90231b20e7ee..1e79660f288b 100644 bool is_bt_iqk_timeout; diff --git a/drivers/net/wireless/realtek/rtw89/fw.c b/drivers/net/wireless/realtek/rtw89/fw.c -index 5d411f8ee2ed..4e393cb7db16 100644 +index fc33824a2..f693b2eaf 100644 --- a/drivers/net/wireless/realtek/rtw89/fw.c +++ b/drivers/net/wireless/realtek/rtw89/fw.c -@@ -1784,6 +1784,45 @@ int rtw89_fw_h2c_rf_reg(struct rtw89_dev *rtwdev, +@@ -1789,6 +1789,45 @@ int rtw89_fw_h2c_rf_reg(struct rtw89_dev *rtwdev, return -EBUSY; } @@ -96,7 +96,7 @@ index 5d411f8ee2ed..4e393cb7db16 100644 u8 h2c_class, u8 h2c_func, u8 *buf, u16 len, bool rack, bool dack) diff --git a/drivers/net/wireless/realtek/rtw89/fw.h b/drivers/net/wireless/realtek/rtw89/fw.h -index aaabfc0dfd71..95a55c4213db 100644 +index aaabfc0df..95a55c421 100644 --- a/drivers/net/wireless/realtek/rtw89/fw.h +++ b/drivers/net/wireless/realtek/rtw89/fw.h @@ -2538,6 +2538,17 @@ struct rtw89_fw_h2c_rf_reg_info { @@ -126,7 +126,7 @@ index aaabfc0dfd71..95a55c4213db 100644 u8 h2c_class, u8 h2c_func, u8 *buf, u16 len, bool rack, bool dack); diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852c.c b/drivers/net/wireless/realtek/rtw89/rtw8852c.c -index 1302d4324473..3ee57df0a639 100644 +index 1302d4324..3ee57df0a 100644 --- a/drivers/net/wireless/realtek/rtw89/rtw8852c.c +++ b/drivers/net/wireless/realtek/rtw89/rtw8852c.c @@ -1766,6 +1766,18 @@ static void rtw8852c_set_channel_help(struct rtw89_dev *rtwdev, bool enter, diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-add-chip_info-h2c_desc_size-fill_txdesc_fwcmd-to-support-.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-add-chip_info-h2c_desc_size-fill_txdesc_fwcmd-to-support-.patch index 03f51354d..6b4fcea95 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-add-chip_info-h2c_desc_size-fill_txdesc_fwcmd-to-support-.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-add-chip_info-h2c_desc_size-fill_txdesc_fwcmd-to-support-.patch @@ -1,7 +1,7 @@ -From cb72b7876d813cd0d7818c5c99dc75ac302e4a5c Mon Sep 17 00:00:00 2001 +From ebc33c055d70175bd044f983a8acf2fd98df9e7c Mon Sep 17 00:00:00 2001 From: Ping-Ke Shih Date: Fri, 18 Mar 2022 10:32:10 +0800 -Subject: [PATCH 414/515] rtw89: add chip_info::h2c_desc_size/fill_txdesc_fwcmd +Subject: [PATCH 414/534] rtw89: add chip_info::h2c_desc_size/fill_txdesc_fwcmd to support new chips 8852A and 8852C use different H2C header and size, so add h2c_desc_size @@ -23,7 +23,7 @@ Link: https://lore.kernel.org/r/20220318023214.32411-8-pkshih@realtek.com 9 files changed, 176 insertions(+), 43 deletions(-) diff --git a/drivers/net/wireless/realtek/rtw89/cam.c b/drivers/net/wireless/realtek/rtw89/cam.c -index 26bef9fdd205..34df3c07c55c 100644 +index 26bef9fdd..34df3c07c 100644 --- a/drivers/net/wireless/realtek/rtw89/cam.c +++ b/drivers/net/wireless/realtek/rtw89/cam.c @@ -18,7 +18,7 @@ rtw89_cam_get_sec_key_cmd(struct rtw89_dev *rtwdev, @@ -36,7 +36,7 @@ index 26bef9fdd205..34df3c07c55c 100644 return NULL; diff --git a/drivers/net/wireless/realtek/rtw89/core.c b/drivers/net/wireless/realtek/rtw89/core.c -index bce4834f18ec..a5c13fd7d8a0 100644 +index bce4834f1..a5c13fd7d 100644 --- a/drivers/net/wireless/realtek/rtw89/core.c +++ b/drivers/net/wireless/realtek/rtw89/core.c @@ -977,6 +977,26 @@ void rtw89_core_fill_txdesc(struct rtw89_dev *rtwdev, @@ -67,7 +67,7 @@ index bce4834f18ec..a5c13fd7d8a0 100644 struct sk_buff *skb, struct rtw89_rx_phy_ppdu *phy_ppdu) diff --git a/drivers/net/wireless/realtek/rtw89/core.h b/drivers/net/wireless/realtek/rtw89/core.h -index 725484be2b62..c17756ff5476 100644 +index 14a97908e..6fa6d7a68 100644 --- a/drivers/net/wireless/realtek/rtw89/core.h +++ b/drivers/net/wireless/realtek/rtw89/core.h @@ -117,6 +117,8 @@ enum rtw89_core_rx_type { @@ -97,7 +97,7 @@ index 725484be2b62..c17756ff5476 100644 u32 h2c_ctrl_reg; const u32 *h2c_regs; u32 c2h_ctrl_reg; -@@ -3507,6 +3513,16 @@ static inline void rtw89_ctrl_btg(struct rtw89_dev *rtwdev, bool btg) +@@ -3508,6 +3514,16 @@ static inline void rtw89_ctrl_btg(struct rtw89_dev *rtwdev, bool btg) chip->ops->ctrl_btg(rtwdev, btg); } @@ -114,7 +114,7 @@ index 725484be2b62..c17756ff5476 100644 static inline void rtw89_chip_mac_cfg_gnt(struct rtw89_dev *rtwdev, const struct rtw89_mac_ax_coex_gnt *gnt_cfg) -@@ -3580,6 +3596,9 @@ void rtw89_core_tx_kick_off(struct rtw89_dev *rtwdev, u8 qsel); +@@ -3581,6 +3597,9 @@ void rtw89_core_tx_kick_off(struct rtw89_dev *rtwdev, u8 qsel); void rtw89_core_fill_txdesc(struct rtw89_dev *rtwdev, struct rtw89_tx_desc_info *desc_info, void *txdesc); @@ -125,7 +125,7 @@ index 725484be2b62..c17756ff5476 100644 struct rtw89_rx_desc_info *desc_info, struct sk_buff *skb); diff --git a/drivers/net/wireless/realtek/rtw89/fw.c b/drivers/net/wireless/realtek/rtw89/fw.c -index 2c9470616a1b..5985b40950bc 100644 +index c13dcf3de..d89193289 100644 --- a/drivers/net/wireless/realtek/rtw89/fw.c +++ b/drivers/net/wireless/realtek/rtw89/fw.c @@ -10,31 +10,33 @@ @@ -187,7 +187,7 @@ index 2c9470616a1b..5985b40950bc 100644 if (!skb) { rtw89_err(rtwdev, "failed to alloc skb for fw dl\n"); return -ENOMEM; -@@ -570,7 +572,7 @@ int rtw89_fw_h2c_cam(struct rtw89_dev *rtwdev, struct rtw89_vif *rtwvif, +@@ -575,7 +577,7 @@ int rtw89_fw_h2c_cam(struct rtw89_dev *rtwdev, struct rtw89_vif *rtwvif, { struct sk_buff *skb; @@ -196,7 +196,7 @@ index 2c9470616a1b..5985b40950bc 100644 if (!skb) { rtw89_err(rtwdev, "failed to alloc skb for fw dl\n"); return -ENOMEM; -@@ -619,7 +621,7 @@ int rtw89_fw_h2c_ba_cam(struct rtw89_dev *rtwdev, struct rtw89_sta *rtwsta, +@@ -624,7 +626,7 @@ int rtw89_fw_h2c_ba_cam(struct rtw89_dev *rtwdev, struct rtw89_sta *rtwsta, return 0; } @@ -205,7 +205,7 @@ index 2c9470616a1b..5985b40950bc 100644 if (!skb) { rtw89_err(rtwdev, "failed to alloc skb for h2c ba cam\n"); return -ENOMEM; -@@ -665,7 +667,7 @@ int rtw89_fw_h2c_fw_log(struct rtw89_dev *rtwdev, bool enable) +@@ -670,7 +672,7 @@ int rtw89_fw_h2c_fw_log(struct rtw89_dev *rtwdev, bool enable) u32 comp = enable ? BIT(RTW89_FW_LOG_COMP_INIT) | BIT(RTW89_FW_LOG_COMP_TASK) | BIT(RTW89_FW_LOG_COMP_PS) | BIT(RTW89_FW_LOG_COMP_ERROR) : 0; @@ -214,7 +214,7 @@ index 2c9470616a1b..5985b40950bc 100644 if (!skb) { rtw89_err(rtwdev, "failed to alloc skb for fw log cfg\n"); return -ENOMEM; -@@ -701,7 +703,7 @@ int rtw89_fw_h2c_general_pkt(struct rtw89_dev *rtwdev, u8 macid) +@@ -706,7 +708,7 @@ int rtw89_fw_h2c_general_pkt(struct rtw89_dev *rtwdev, u8 macid) { struct sk_buff *skb; @@ -223,7 +223,7 @@ index 2c9470616a1b..5985b40950bc 100644 if (!skb) { rtw89_err(rtwdev, "failed to alloc skb for fw dl\n"); return -ENOMEM; -@@ -738,7 +740,7 @@ int rtw89_fw_h2c_lps_parm(struct rtw89_dev *rtwdev, +@@ -743,7 +745,7 @@ int rtw89_fw_h2c_lps_parm(struct rtw89_dev *rtwdev, { struct sk_buff *skb; @@ -232,7 +232,7 @@ index 2c9470616a1b..5985b40950bc 100644 if (!skb) { rtw89_err(rtwdev, "failed to alloc skb for fw dl\n"); return -ENOMEM; -@@ -784,7 +786,7 @@ int rtw89_fw_h2c_default_cmac_tbl(struct rtw89_dev *rtwdev, +@@ -789,7 +791,7 @@ int rtw89_fw_h2c_default_cmac_tbl(struct rtw89_dev *rtwdev, u8 map_b = hal->antenna_tx == RF_AB ? 1 : 0; u8 macid = rtwvif->mac_id; @@ -241,7 +241,7 @@ index 2c9470616a1b..5985b40950bc 100644 if (!skb) { rtw89_err(rtwdev, "failed to alloc skb for fw dl\n"); return -ENOMEM; -@@ -894,7 +896,7 @@ int rtw89_fw_h2c_assoc_cmac_tbl(struct rtw89_dev *rtwdev, +@@ -899,7 +901,7 @@ int rtw89_fw_h2c_assoc_cmac_tbl(struct rtw89_dev *rtwdev, if (sta) __get_sta_he_pkt_padding(rtwdev, sta, pads); @@ -250,7 +250,7 @@ index 2c9470616a1b..5985b40950bc 100644 if (!skb) { rtw89_err(rtwdev, "failed to alloc skb for fw dl\n"); return -ENOMEM; -@@ -945,7 +947,7 @@ int rtw89_fw_h2c_txtime_cmac_tbl(struct rtw89_dev *rtwdev, +@@ -950,7 +952,7 @@ int rtw89_fw_h2c_txtime_cmac_tbl(struct rtw89_dev *rtwdev, { struct sk_buff *skb; @@ -259,7 +259,7 @@ index 2c9470616a1b..5985b40950bc 100644 if (!skb) { rtw89_err(rtwdev, "failed to alloc skb for fw dl\n"); return -ENOMEM; -@@ -997,7 +999,7 @@ int rtw89_fw_h2c_update_beacon(struct rtw89_dev *rtwdev, +@@ -1002,7 +1004,7 @@ int rtw89_fw_h2c_update_beacon(struct rtw89_dev *rtwdev, } bcn_total_len = H2C_BCN_BASE_LEN + skb_beacon->len; @@ -268,7 +268,7 @@ index 2c9470616a1b..5985b40950bc 100644 if (!skb) { rtw89_err(rtwdev, "failed to alloc skb for fw dl\n"); dev_kfree_skb_any(skb_beacon); -@@ -1051,7 +1053,7 @@ int rtw89_fw_h2c_role_maintain(struct rtw89_dev *rtwdev, +@@ -1056,7 +1058,7 @@ int rtw89_fw_h2c_role_maintain(struct rtw89_dev *rtwdev, self_role = rtwvif->self_role; } @@ -277,7 +277,7 @@ index 2c9470616a1b..5985b40950bc 100644 if (!skb) { rtw89_err(rtwdev, "failed to alloc skb for h2c join\n"); return -ENOMEM; -@@ -1093,7 +1095,7 @@ int rtw89_fw_h2c_join_info(struct rtw89_dev *rtwdev, struct rtw89_vif *rtwvif, +@@ -1098,7 +1100,7 @@ int rtw89_fw_h2c_join_info(struct rtw89_dev *rtwdev, struct rtw89_vif *rtwvif, net_type = dis_conn ? RTW89_NET_TYPE_NO_LINK : net_type; } @@ -286,7 +286,7 @@ index 2c9470616a1b..5985b40950bc 100644 if (!skb) { rtw89_err(rtwdev, "failed to alloc skb for h2c join\n"); return -ENOMEM; -@@ -1137,7 +1139,7 @@ int rtw89_fw_h2c_macid_pause(struct rtw89_dev *rtwdev, u8 sh, u8 grp, +@@ -1142,7 +1144,7 @@ int rtw89_fw_h2c_macid_pause(struct rtw89_dev *rtwdev, u8 sh, u8 grp, u8 len = sizeof(struct rtw89_fw_macid_pause_grp); struct sk_buff *skb; @@ -295,7 +295,7 @@ index 2c9470616a1b..5985b40950bc 100644 if (!skb) { rtw89_err(rtwdev, "failed to alloc skb for h2c join\n"); return -ENOMEM; -@@ -1170,7 +1172,7 @@ int rtw89_fw_h2c_set_edca(struct rtw89_dev *rtwdev, struct rtw89_vif *rtwvif, +@@ -1175,7 +1177,7 @@ int rtw89_fw_h2c_set_edca(struct rtw89_dev *rtwdev, struct rtw89_vif *rtwvif, { struct sk_buff *skb; @@ -304,7 +304,7 @@ index 2c9470616a1b..5985b40950bc 100644 if (!skb) { rtw89_err(rtwdev, "failed to alloc skb for h2c edca\n"); return -ENOMEM; -@@ -1205,7 +1207,7 @@ int rtw89_fw_h2c_set_ofld_cfg(struct rtw89_dev *rtwdev) +@@ -1210,7 +1212,7 @@ int rtw89_fw_h2c_set_ofld_cfg(struct rtw89_dev *rtwdev) static const u8 cfg[] = {0x09, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00}; struct sk_buff *skb; @@ -313,7 +313,7 @@ index 2c9470616a1b..5985b40950bc 100644 if (!skb) { rtw89_err(rtwdev, "failed to alloc skb for h2c ofld\n"); return -ENOMEM; -@@ -1235,7 +1237,7 @@ int rtw89_fw_h2c_ra(struct rtw89_dev *rtwdev, struct rtw89_ra_info *ra, bool csi +@@ -1240,7 +1242,7 @@ int rtw89_fw_h2c_ra(struct rtw89_dev *rtwdev, struct rtw89_ra_info *ra, bool csi struct sk_buff *skb; u8 *cmd; @@ -322,7 +322,7 @@ index 2c9470616a1b..5985b40950bc 100644 if (!skb) { rtw89_err(rtwdev, "failed to alloc skb for h2c join\n"); return -ENOMEM; -@@ -1306,7 +1308,7 @@ int rtw89_fw_h2c_cxdrv_init(struct rtw89_dev *rtwdev) +@@ -1311,7 +1313,7 @@ int rtw89_fw_h2c_cxdrv_init(struct rtw89_dev *rtwdev) struct sk_buff *skb; u8 *cmd; @@ -331,7 +331,7 @@ index 2c9470616a1b..5985b40950bc 100644 if (!skb) { rtw89_err(rtwdev, "failed to alloc skb for h2c cxdrv_init\n"); return -ENOMEM; -@@ -1365,7 +1367,7 @@ int rtw89_fw_h2c_cxdrv_role(struct rtw89_dev *rtwdev) +@@ -1370,7 +1372,7 @@ int rtw89_fw_h2c_cxdrv_role(struct rtw89_dev *rtwdev) u8 *cmd; int i; @@ -340,7 +340,7 @@ index 2c9470616a1b..5985b40950bc 100644 if (!skb) { rtw89_err(rtwdev, "failed to alloc skb for h2c cxdrv_role\n"); return -ENOMEM; -@@ -1433,7 +1435,7 @@ int rtw89_fw_h2c_cxdrv_ctrl(struct rtw89_dev *rtwdev) +@@ -1438,7 +1440,7 @@ int rtw89_fw_h2c_cxdrv_ctrl(struct rtw89_dev *rtwdev) struct sk_buff *skb; u8 *cmd; @@ -349,7 +349,7 @@ index 2c9470616a1b..5985b40950bc 100644 if (!skb) { rtw89_err(rtwdev, "failed to alloc skb for h2c cxdrv_ctrl\n"); return -ENOMEM; -@@ -1475,7 +1477,7 @@ int rtw89_fw_h2c_cxdrv_rfk(struct rtw89_dev *rtwdev) +@@ -1480,7 +1482,7 @@ int rtw89_fw_h2c_cxdrv_rfk(struct rtw89_dev *rtwdev) struct sk_buff *skb; u8 *cmd; @@ -358,7 +358,7 @@ index 2c9470616a1b..5985b40950bc 100644 if (!skb) { rtw89_err(rtwdev, "failed to alloc skb for h2c cxdrv_ctrl\n"); return -ENOMEM; -@@ -1515,7 +1517,7 @@ int rtw89_fw_h2c_del_pkt_offload(struct rtw89_dev *rtwdev, u8 id) +@@ -1520,7 +1522,7 @@ int rtw89_fw_h2c_del_pkt_offload(struct rtw89_dev *rtwdev, u8 id) struct sk_buff *skb; u8 *cmd; @@ -367,7 +367,7 @@ index 2c9470616a1b..5985b40950bc 100644 if (!skb) { rtw89_err(rtwdev, "failed to alloc skb for h2c pkt offload\n"); return -ENOMEM; -@@ -1557,7 +1559,7 @@ int rtw89_fw_h2c_add_pkt_offload(struct rtw89_dev *rtwdev, u8 *id, +@@ -1562,7 +1564,7 @@ int rtw89_fw_h2c_add_pkt_offload(struct rtw89_dev *rtwdev, u8 *id, *id = alloc_id; @@ -376,7 +376,7 @@ index 2c9470616a1b..5985b40950bc 100644 if (!skb) { rtw89_err(rtwdev, "failed to alloc skb for h2c pkt offload\n"); return -ENOMEM; -@@ -1596,7 +1598,7 @@ int rtw89_fw_h2c_scan_list_offload(struct rtw89_dev *rtwdev, int len, +@@ -1601,7 +1603,7 @@ int rtw89_fw_h2c_scan_list_offload(struct rtw89_dev *rtwdev, int len, int skb_len = H2C_LEN_SCAN_LIST_OFFLOAD + len * RTW89_MAC_CHINFO_SIZE; u8 *cmd; @@ -385,7 +385,7 @@ index 2c9470616a1b..5985b40950bc 100644 if (!skb) { rtw89_err(rtwdev, "failed to alloc skb for h2c scan list\n"); return -ENOMEM; -@@ -1660,7 +1662,7 @@ int rtw89_fw_h2c_scan_offload(struct rtw89_dev *rtwdev, +@@ -1665,7 +1667,7 @@ int rtw89_fw_h2c_scan_offload(struct rtw89_dev *rtwdev, struct sk_buff *skb; u8 *cmd; @@ -394,7 +394,7 @@ index 2c9470616a1b..5985b40950bc 100644 if (!skb) { rtw89_err(rtwdev, "failed to alloc skb for h2c scan offload\n"); return -ENOMEM; -@@ -1709,7 +1711,7 @@ int rtw89_fw_h2c_rf_reg(struct rtw89_dev *rtwdev, +@@ -1714,7 +1716,7 @@ int rtw89_fw_h2c_rf_reg(struct rtw89_dev *rtwdev, u8 class = info->rf_path == RF_PATH_A ? H2C_CL_OUTSRC_RF_REG_A : H2C_CL_OUTSRC_RF_REG_B; @@ -403,7 +403,7 @@ index 2c9470616a1b..5985b40950bc 100644 if (!skb) { rtw89_err(rtwdev, "failed to alloc skb for h2c rf reg\n"); return -ENOMEM; -@@ -1738,7 +1740,7 @@ int rtw89_fw_h2c_raw_with_hdr(struct rtw89_dev *rtwdev, +@@ -1743,7 +1745,7 @@ int rtw89_fw_h2c_raw_with_hdr(struct rtw89_dev *rtwdev, { struct sk_buff *skb; @@ -412,7 +412,7 @@ index 2c9470616a1b..5985b40950bc 100644 if (!skb) { rtw89_err(rtwdev, "failed to alloc skb for raw with hdr\n"); return -ENOMEM; -@@ -1765,7 +1767,7 @@ int rtw89_fw_h2c_raw(struct rtw89_dev *rtwdev, const u8 *buf, u16 len) +@@ -1770,7 +1772,7 @@ int rtw89_fw_h2c_raw(struct rtw89_dev *rtwdev, const u8 *buf, u16 len) { struct sk_buff *skb; @@ -421,7 +421,7 @@ index 2c9470616a1b..5985b40950bc 100644 if (!skb) { rtw89_err(rtwdev, "failed to alloc skb for h2c raw\n"); return -ENOMEM; -@@ -2295,7 +2297,7 @@ int rtw89_fw_h2c_trigger_cpu_exception(struct rtw89_dev *rtwdev) +@@ -2300,7 +2302,7 @@ int rtw89_fw_h2c_trigger_cpu_exception(struct rtw89_dev *rtwdev) { struct sk_buff *skb; @@ -431,7 +431,7 @@ index 2c9470616a1b..5985b40950bc 100644 rtw89_err(rtwdev, "failed to alloc skb for fw cpu exception\n"); diff --git a/drivers/net/wireless/realtek/rtw89/fw.h b/drivers/net/wireless/realtek/rtw89/fw.h -index 24ab249a8ece..2a010154a8e8 100644 +index 24ab249a8..2a010154a 100644 --- a/drivers/net/wireless/realtek/rtw89/fw.h +++ b/drivers/net/wireless/realtek/rtw89/fw.h @@ -2277,8 +2277,8 @@ int rtw89_fw_h2c_ba_cam(struct rtw89_dev *rtwdev, struct rtw89_sta *rtwsta, @@ -446,7 +446,7 @@ index 24ab249a8ece..2a010154a8e8 100644 struct rtw89_mac_h2c_info *h2c_info, struct rtw89_mac_c2h_info *c2h_info); diff --git a/drivers/net/wireless/realtek/rtw89/pci.c b/drivers/net/wireless/realtek/rtw89/pci.c -index 32e8283e22f3..9335fba28fc1 100644 +index 32e8283e2..9335fba28 100644 --- a/drivers/net/wireless/realtek/rtw89/pci.c +++ b/drivers/net/wireless/realtek/rtw89/pci.c @@ -1043,16 +1043,18 @@ static int rtw89_pci_fwcmd_submit(struct rtw89_dev *rtwdev, @@ -473,7 +473,7 @@ index 32e8283e22f3..9335fba28fc1 100644 dma = dma_map_single(&pdev->dev, skb->data, skb->len, DMA_TO_DEVICE); if (dma_mapping_error(&pdev->dev, dma)) { diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852a.c b/drivers/net/wireless/realtek/rtw89/rtw8852a.c -index 67aaa05cb751..6aa3d19a7464 100644 +index 67aaa05cb..6aa3d19a7 100644 --- a/drivers/net/wireless/realtek/rtw89/rtw8852a.c +++ b/drivers/net/wireless/realtek/rtw89/rtw8852a.c @@ -2021,6 +2021,7 @@ static const struct rtw89_chip_ops rtw8852a_chip_ops = { @@ -493,7 +493,7 @@ index 67aaa05cb751..6aa3d19a7464 100644 .h2c_regs = rtw8852a_h2c_regs, .c2h_ctrl_reg = R_AX_C2HREG_CTRL, diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852c.c b/drivers/net/wireless/realtek/rtw89/rtw8852c.c -index 123cc3c4318d..08a9c01a359e 100644 +index 123cc3c43..08a9c01a3 100644 --- a/drivers/net/wireless/realtek/rtw89/rtw8852c.c +++ b/drivers/net/wireless/realtek/rtw89/rtw8852c.c @@ -492,6 +492,7 @@ static const struct rtw89_chip_ops rtw8852c_chip_ops = { @@ -513,7 +513,7 @@ index 123cc3c4318d..08a9c01a359e 100644 .h2c_regs = rtw8852c_h2c_regs, .c2h_ctrl_reg = R_AX_C2HREG_CTRL_V1, diff --git a/drivers/net/wireless/realtek/rtw89/txrx.h b/drivers/net/wireless/realtek/rtw89/txrx.h -index 86e3d8b400d6..4e81d6df9368 100644 +index 86e3d8b40..4e81d6df9 100644 --- a/drivers/net/wireless/realtek/rtw89/txrx.h +++ b/drivers/net/wireless/realtek/rtw89/txrx.h @@ -79,6 +79,92 @@ diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-add-new-H2C-to-configure-security-CAM-via-DCTL-for-V1-chi.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-add-new-H2C-to-configure-security-CAM-via-DCTL-for-V1-chi.patch index 53f4d9732..bb2d119c8 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-add-new-H2C-to-configure-security-CAM-via-DCTL-for-V1-chi.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-add-new-H2C-to-configure-security-CAM-via-DCTL-for-V1-chi.patch @@ -1,7 +1,7 @@ -From f8485df33063540c3e6a8df513c38c369452885f Mon Sep 17 00:00:00 2001 +From 770685ca64e60c5ea62f66e7b41152513f7c5c0a Mon Sep 17 00:00:00 2001 From: Ping-Ke Shih Date: Wed, 13 Apr 2022 09:08:02 +0800 -Subject: [PATCH 451/515] rtw89: add new H2C to configure security CAM via DCTL +Subject: [PATCH 450/534] rtw89: add new H2C to configure security CAM via DCTL for V1 chip DCTL is short for D-MAC control that V1 chip uses this H2C to configure @@ -18,7 +18,7 @@ Link: https://lore.kernel.org/r/20220413010804.8941-3-pkshih@realtek.com 4 files changed, 373 insertions(+) diff --git a/drivers/net/wireless/realtek/rtw89/cam.c b/drivers/net/wireless/realtek/rtw89/cam.c -index 34827f174ba1..08b9779163bb 100644 +index 34827f174..08b977916 100644 --- a/drivers/net/wireless/realtek/rtw89/cam.c +++ b/drivers/net/wireless/realtek/rtw89/cam.c @@ -710,3 +710,31 @@ void rtw89_cam_fill_addr_cam_info(struct rtw89_dev *rtwdev, @@ -54,7 +54,7 @@ index 34827f174ba1..08b9779163bb 100644 + SET_DCTL_SEC_ENT6_V1(cmd, addr_cam->sec_ent[6]); +} diff --git a/drivers/net/wireless/realtek/rtw89/cam.h b/drivers/net/wireless/realtek/rtw89/cam.h -index 3a6a786530d1..a3931d3e40d2 100644 +index 3a6a78653..a3931d3e4 100644 --- a/drivers/net/wireless/realtek/rtw89/cam.h +++ b/drivers/net/wireless/realtek/rtw89/cam.h @@ -355,6 +355,10 @@ void rtw89_cam_fill_addr_cam_info(struct rtw89_dev *rtwdev, @@ -69,10 +69,10 @@ index 3a6a786530d1..a3931d3e40d2 100644 struct rtw89_vif *vif, u8 *cmd); int rtw89_cam_sec_key_add(struct rtw89_dev *rtwdev, diff --git a/drivers/net/wireless/realtek/rtw89/fw.c b/drivers/net/wireless/realtek/rtw89/fw.c -index beedc650e33a..5d411f8ee2ed 100644 +index d22552cf1..fc33824a2 100644 --- a/drivers/net/wireless/realtek/rtw89/fw.c +++ b/drivers/net/wireless/realtek/rtw89/fw.c -@@ -599,6 +599,41 @@ int rtw89_fw_h2c_cam(struct rtw89_dev *rtwdev, struct rtw89_vif *rtwvif, +@@ -604,6 +604,41 @@ int rtw89_fw_h2c_cam(struct rtw89_dev *rtwdev, struct rtw89_vif *rtwvif, return -EBUSY; } @@ -115,7 +115,7 @@ index beedc650e33a..5d411f8ee2ed 100644 int rtw89_fw_h2c_ba_cam(struct rtw89_dev *rtwdev, struct rtw89_sta *rtwsta, bool valid, struct ieee80211_ampdu_params *params) diff --git a/drivers/net/wireless/realtek/rtw89/fw.h b/drivers/net/wireless/realtek/rtw89/fw.h -index 9cba8990b836..aaabfc0dfd71 100644 +index 9cba8990b..aaabfc0df 100644 --- a/drivers/net/wireless/realtek/rtw89/fw.h +++ b/drivers/net/wireless/realtek/rtw89/fw.h @@ -1151,6 +1151,308 @@ static inline void SET_CMC_TBL_CSI_BW(void *table, u32 val) diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-add-new-state-to-CFO-state-machine-for-UL-OFDMA.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-add-new-state-to-CFO-state-machine-for-UL-OFDMA.patch new file mode 100644 index 000000000..37f109508 --- /dev/null +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-add-new-state-to-CFO-state-machine-for-UL-OFDMA.patch @@ -0,0 +1,116 @@ +From 68c30b679d42ca34a233c925e88ff3c9415c3bda Mon Sep 17 00:00:00 2001 +From: Eric Huang +Date: Wed, 8 Jun 2022 19:32:24 +0800 +Subject: [PATCH 536/538] rtw89: add new state to CFO state machine for + UL-OFDMA + +Add an new state, RTW89_PHY_DCFO_STATE_HOLD, to keep CFO acceleration +after CFO_PERIOD_CNT if the traffic is UL-OFDMA, which is calculated +based on RX trigger frame counter. + +Signed-off-by: Eric Huang +Signed-off-by: Ping-Ke Shih +Signed-off-by: Kalle Valo +Link: https://lore.kernel.org/r/20220608113224.11193-4-pkshih@realtek.com +--- + drivers/net/wireless/realtek/rtw89/core.h | 7 +++++++ + drivers/net/wireless/realtek/rtw89/phy.c | 24 ++++++++++++++++++++--- + drivers/net/wireless/realtek/rtw89/phy.h | 1 + + 3 files changed, 29 insertions(+), 3 deletions(-) + +diff --git a/drivers/net/wireless/realtek/rtw89/core.h b/drivers/net/wireless/realtek/rtw89/core.h +index 7660b10d5377..48bfccb15c45 100644 +--- a/drivers/net/wireless/realtek/rtw89/core.h ++++ b/drivers/net/wireless/realtek/rtw89/core.h +@@ -2810,13 +2810,20 @@ enum rtw89_multi_cfo_mode { + enum rtw89_phy_cfo_status { + RTW89_PHY_DCFO_STATE_NORMAL = 0, + RTW89_PHY_DCFO_STATE_ENHANCE = 1, ++ RTW89_PHY_DCFO_STATE_HOLD = 2, + RTW89_PHY_DCFO_STATE_MAX + }; + ++enum rtw89_phy_cfo_ul_ofdma_acc_mode { ++ RTW89_CFO_UL_OFDMA_ACC_DISABLE = 0, ++ RTW89_CFO_UL_OFDMA_ACC_ENABLE = 1 ++}; ++ + struct rtw89_cfo_tracking_info { + u16 cfo_timer_ms; + bool cfo_trig_by_timer_en; + enum rtw89_phy_cfo_status phy_cfo_status; ++ enum rtw89_phy_cfo_ul_ofdma_acc_mode cfo_ul_ofdma_acc_mode; + u8 phy_cfo_trk_cnt; + bool is_adjust; + enum rtw89_multi_cfo_mode rtw89_multi_cfo_mode; +diff --git a/drivers/net/wireless/realtek/rtw89/phy.c b/drivers/net/wireless/realtek/rtw89/phy.c +index e219bed38ff4..4c03babcdb34 100644 +--- a/drivers/net/wireless/realtek/rtw89/phy.c ++++ b/drivers/net/wireless/realtek/rtw89/phy.c +@@ -2151,6 +2151,7 @@ static void rtw89_phy_cfo_init(struct rtw89_dev *rtwdev) + cfo->cfo_trig_by_timer_en = false; + cfo->phy_cfo_trk_cnt = 0; + cfo->phy_cfo_status = RTW89_PHY_DCFO_STATE_NORMAL; ++ cfo->cfo_ul_ofdma_acc_mode = RTW89_CFO_UL_OFDMA_ACC_ENABLE; + } + + static void rtw89_phy_cfo_crystal_cap_adjust(struct rtw89_dev *rtwdev, +@@ -2419,6 +2420,13 @@ void rtw89_phy_cfo_track(struct rtw89_dev *rtwdev) + { + struct rtw89_cfo_tracking_info *cfo = &rtwdev->cfo_tracking; + struct rtw89_traffic_stats *stats = &rtwdev->stats; ++ bool is_ul_ofdma = false, ofdma_acc_en = false; ++ ++ if (stats->rx_tf_periodic > CFO_TF_CNT_TH) ++ is_ul_ofdma = true; ++ if (cfo->cfo_ul_ofdma_acc_mode == RTW89_CFO_UL_OFDMA_ACC_ENABLE && ++ is_ul_ofdma) ++ ofdma_acc_en = true; + + switch (cfo->phy_cfo_status) { + case RTW89_PHY_DCFO_STATE_NORMAL: +@@ -2430,16 +2438,26 @@ void rtw89_phy_cfo_track(struct rtw89_dev *rtwdev) + } + break; + case RTW89_PHY_DCFO_STATE_ENHANCE: +- if (cfo->phy_cfo_trk_cnt >= CFO_PERIOD_CNT) { ++ if (stats->tx_throughput <= CFO_TP_LOWER) ++ cfo->phy_cfo_status = RTW89_PHY_DCFO_STATE_NORMAL; ++ else if (ofdma_acc_en && ++ cfo->phy_cfo_trk_cnt >= CFO_PERIOD_CNT) ++ cfo->phy_cfo_status = RTW89_PHY_DCFO_STATE_HOLD; ++ else ++ cfo->phy_cfo_trk_cnt++; ++ ++ if (cfo->phy_cfo_status == RTW89_PHY_DCFO_STATE_NORMAL) { + cfo->phy_cfo_trk_cnt = 0; + cfo->cfo_trig_by_timer_en = false; + } +- if (cfo->cfo_trig_by_timer_en == 1) +- cfo->phy_cfo_trk_cnt++; ++ break; ++ case RTW89_PHY_DCFO_STATE_HOLD: + if (stats->tx_throughput <= CFO_TP_LOWER) { + cfo->phy_cfo_status = RTW89_PHY_DCFO_STATE_NORMAL; + cfo->phy_cfo_trk_cnt = 0; + cfo->cfo_trig_by_timer_en = false; ++ } else { ++ cfo->phy_cfo_trk_cnt++; + } + break; + default: +diff --git a/drivers/net/wireless/realtek/rtw89/phy.h b/drivers/net/wireless/realtek/rtw89/phy.h +index 291660154d58..e20636f54b55 100644 +--- a/drivers/net/wireless/realtek/rtw89/phy.h ++++ b/drivers/net/wireless/realtek/rtw89/phy.h +@@ -62,6 +62,7 @@ + #define CFO_COMP_PERIOD 250 + #define CFO_COMP_WEIGHT 8 + #define MAX_CFO_TOLERANCE 30 ++#define CFO_TF_CNT_TH 300 + + #define CCX_MAX_PERIOD 2097 + #define CCX_MAX_PERIOD_UNIT 32 +-- +2.35.3 + diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-cfo-check-mac_id-to-avoid-out-of-bounds.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-cfo-check-mac_id-to-avoid-out-of-bounds.patch deleted file mode 100644 index d67f8f901..000000000 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-cfo-check-mac_id-to-avoid-out-of-bounds.patch +++ /dev/null @@ -1,68 +0,0 @@ -From ee38a53cc9b2510eea460e7fcaa19edb3c58d4b7 Mon Sep 17 00:00:00 2001 -From: Ping-Ke Shih -Date: Mon, 16 May 2022 08:52:12 +0800 -Subject: [PATCH 504/515] rtw89: cfo: check mac_id to avoid out-of-bounds - -Somehow, hardware reports incorrect mac_id and pollute memory. Check index -before we access the array. - - UBSAN: array-index-out-of-bounds in rtw89/phy.c:2517:23 - index 188 is out of range for type 's32 [64]' - CPU: 1 PID: 51550 Comm: irq/35-rtw89_pc Tainted: G OE - Call Trace: - - show_stack+0x52/0x58 - dump_stack_lvl+0x4c/0x63 - dump_stack+0x10/0x12 - ubsan_epilogue+0x9/0x45 - __ubsan_handle_out_of_bounds.cold+0x44/0x49 - ? __alloc_skb+0x92/0x1d0 - rtw89_phy_cfo_parse+0x44/0x7f [rtw89_core] - rtw89_core_rx+0x261/0x871 [rtw89_core] - ? __alloc_skb+0xee/0x1d0 - rtw89_pci_napi_poll+0x3fa/0x4ea [rtw89_pci] - __napi_poll+0x33/0x1a0 - net_rx_action+0x126/0x260 - ? __queue_work+0x217/0x4c0 - __do_softirq+0xd9/0x315 - ? disable_irq_nosync+0x10/0x10 - do_softirq.part.0+0x6d/0x90 - - - __local_bh_enable_ip+0x62/0x70 - rtw89_pci_interrupt_threadfn+0x182/0x1a6 [rtw89_pci] - irq_thread_fn+0x28/0x60 - irq_thread+0xc8/0x190 - ? irq_thread_fn+0x60/0x60 - kthread+0x16b/0x190 - ? irq_thread_check_affinity+0xe0/0xe0 - ? set_kthread_struct+0x50/0x50 - ret_from_fork+0x22/0x30 - - -Signed-off-by: Ping-Ke Shih -Signed-off-by: Kalle Valo -Link: https://lore.kernel.org/r/20220516005215.5878-4-pkshih@realtek.com ---- - drivers/net/wireless/realtek/rtw89/phy.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/drivers/net/wireless/realtek/rtw89/phy.c b/drivers/net/wireless/realtek/rtw89/phy.c -index bd5acf959268..0aa0ced458b3 100644 ---- a/drivers/net/wireless/realtek/rtw89/phy.c -+++ b/drivers/net/wireless/realtek/rtw89/phy.c -@@ -2462,6 +2462,11 @@ void rtw89_phy_cfo_parse(struct rtw89_dev *rtwdev, s16 cfo_val, - struct rtw89_cfo_tracking_info *cfo = &rtwdev->cfo_tracking; - u8 macid = phy_ppdu->mac_id; - -+ if (macid >= CFO_TRACK_MAX_USER) { -+ rtw89_warn(rtwdev, "mac_id %d is out of range\n", macid); -+ return; -+ } -+ - cfo->cfo_tail[macid] += cfo_val; - cfo->cfo_cnt[macid]++; - cfo->packet_count++; --- -2.35.3 - diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-configure-security-CAM-for-V1-chip.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-configure-security-CAM-for-V1-chip.patch index 4956d9d3d..55f2403e1 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-configure-security-CAM-for-V1-chip.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-configure-security-CAM-for-V1-chip.patch @@ -1,7 +1,7 @@ -From d3d96ebde534f5311d395cffec83c0720d84c660 Mon Sep 17 00:00:00 2001 +From 8a26187cee30959b2f1a66963adca21d6f5803d6 Mon Sep 17 00:00:00 2001 From: Ping-Ke Shih Date: Wed, 13 Apr 2022 09:08:03 +0800 -Subject: [PATCH 452/515] rtw89: configure security CAM for V1 chip +Subject: [PATCH 451/534] rtw89: configure security CAM for V1 chip Add to configure security CAM while mac80211 calls set_key and del_key. @@ -16,7 +16,7 @@ Link: https://lore.kernel.org/r/20220413010804.8941-4-pkshih@realtek.com 4 files changed, 26 insertions(+) diff --git a/drivers/net/wireless/realtek/rtw89/cam.c b/drivers/net/wireless/realtek/rtw89/cam.c -index 08b9779163bb..8a26adeb23fb 100644 +index 08b977916..8a26adeb2 100644 --- a/drivers/net/wireless/realtek/rtw89/cam.c +++ b/drivers/net/wireless/realtek/rtw89/cam.c @@ -244,6 +244,12 @@ static int rtw89_cam_attach_sec_cam(struct rtw89_dev *rtwdev, @@ -43,7 +43,7 @@ index 08b9779163bb..8a26adeb23fb 100644 if (ret) rtw89_err(rtwdev, "failed to update cam del key: %d\n", ret); diff --git a/drivers/net/wireless/realtek/rtw89/core.h b/drivers/net/wireless/realtek/rtw89/core.h -index 9fc7c1c70365..9ca570d143ac 100644 +index fa9bd2449..0e25f974e 100644 --- a/drivers/net/wireless/realtek/rtw89/core.h +++ b/drivers/net/wireless/realtek/rtw89/core.h @@ -2106,6 +2106,9 @@ struct rtw89_chip_ops { @@ -56,7 +56,7 @@ index 9fc7c1c70365..9ca570d143ac 100644 void (*btc_set_rfe)(struct rtw89_dev *rtwdev); void (*btc_init_cfg)(struct rtw89_dev *rtwdev); -@@ -3634,6 +3637,18 @@ int rtw89_chip_resume_sch_tx(struct rtw89_dev *rtwdev, u8 mac_idx, u32 tx_en) +@@ -3635,6 +3638,18 @@ int rtw89_chip_resume_sch_tx(struct rtw89_dev *rtwdev, u8 mac_idx, u32 tx_en) return chip->ops->resume_sch_tx(rtwdev, mac_idx, tx_en); } @@ -76,7 +76,7 @@ index 9fc7c1c70365..9ca570d143ac 100644 { __le16 fc = hdr->frame_control; diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852a.c b/drivers/net/wireless/realtek/rtw89/rtw8852a.c -index 6371bbf7a2fd..975c50495304 100644 +index 6371bbf7a..975c50495 100644 --- a/drivers/net/wireless/realtek/rtw89/rtw8852a.c +++ b/drivers/net/wireless/realtek/rtw89/rtw8852a.c @@ -2075,6 +2075,7 @@ static const struct rtw89_chip_ops rtw8852a_chip_ops = { @@ -88,7 +88,7 @@ index 6371bbf7a2fd..975c50495304 100644 .btc_set_rfe = rtw8852a_btc_set_rfe, .btc_init_cfg = rtw8852a_btc_init_cfg, diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852c.c b/drivers/net/wireless/realtek/rtw89/rtw8852c.c -index d900129c1a7c..d56d65661ce0 100644 +index d900129c1..d56d65661 100644 --- a/drivers/net/wireless/realtek/rtw89/rtw8852c.c +++ b/drivers/net/wireless/realtek/rtw89/rtw8852c.c @@ -645,6 +645,7 @@ static const struct rtw89_chip_ops rtw8852c_chip_ops = { diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-convert-rtw89_band-to-nl80211_band-precisely.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-convert-rtw89_band-to-nl80211_band-precisely.patch index 759f94f0f..ebde33dd5 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-convert-rtw89_band-to-nl80211_band-precisely.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-convert-rtw89_band-to-nl80211_band-precisely.patch @@ -1,7 +1,7 @@ -From 052372f75fa34cda8d3109133a1cf2d802cffab1 Mon Sep 17 00:00:00 2001 +From 43654c25711966ec173bc59b2f5bb7113402efe3 Mon Sep 17 00:00:00 2001 From: Zong-Zhe Yang Date: Mon, 16 May 2022 08:52:14 +0800 -Subject: [PATCH 506/515] rtw89: convert rtw89_band to nl80211_band precisely +Subject: [PATCH 504/534] rtw89: convert rtw89_band to nl80211_band precisely Before 6 GHz band was supported, i.e. only 2 GHz and 5 GHz, they were the same from the numerical point of view. However, after 6 GHz band support, @@ -19,7 +19,7 @@ Link: https://lore.kernel.org/r/20220516005215.5878-6-pkshih@realtek.com 4 files changed, 29 insertions(+), 11 deletions(-) diff --git a/drivers/net/wireless/realtek/rtw89/core.c b/drivers/net/wireless/realtek/rtw89/core.c -index 440413e001e0..c23ecf4675f3 100644 +index 440413e00..c23ecf467 100644 --- a/drivers/net/wireless/realtek/rtw89/core.c +++ b/drivers/net/wireless/realtek/rtw89/core.c @@ -1608,10 +1608,13 @@ static void rtw89_core_update_rx_status(struct rtw89_dev *rtwdev, @@ -41,10 +41,10 @@ index 440413e001e0..c23ecf4675f3 100644 if (desc_info->icv_err || desc_info->crc32_err) diff --git a/drivers/net/wireless/realtek/rtw89/core.h b/drivers/net/wireless/realtek/rtw89/core.h -index f9bd14dd166a..ea3945482f74 100644 +index 7eb1b5494..46e806650 100644 --- a/drivers/net/wireless/realtek/rtw89/core.h +++ b/drivers/net/wireless/realtek/rtw89/core.h -@@ -3480,6 +3480,20 @@ static inline u8 rtw89_hw_to_rate_info_bw(enum rtw89_bandwidth hw_bw) +@@ -3481,6 +3481,20 @@ static inline u8 rtw89_hw_to_rate_info_bw(enum rtw89_bandwidth hw_bw) return RATE_INFO_BW_20; } @@ -66,10 +66,10 @@ index f9bd14dd166a..ea3945482f74 100644 enum rtw89_bandwidth nl_to_rtw89_bandwidth(enum nl80211_chan_width width) { diff --git a/drivers/net/wireless/realtek/rtw89/fw.c b/drivers/net/wireless/realtek/rtw89/fw.c -index 4e393cb7db16..2c743b74ad7e 100644 +index f693b2eaf..168d853e2 100644 --- a/drivers/net/wireless/realtek/rtw89/fw.c +++ b/drivers/net/wireless/realtek/rtw89/fw.c -@@ -2067,7 +2067,7 @@ static void rtw89_release_pkt_list(struct rtw89_dev *rtwdev) +@@ -2072,7 +2072,7 @@ static void rtw89_release_pkt_list(struct rtw89_dev *rtwdev) struct rtw89_pktofld_info *info, *tmp; u8 idx; @@ -79,7 +79,7 @@ index 4e393cb7db16..2c743b74ad7e 100644 continue; diff --git a/drivers/net/wireless/realtek/rtw89/phy.c b/drivers/net/wireless/realtek/rtw89/phy.c -index 0aa0ced458b3..e219bed38ff4 100644 +index 0aa0ced45..e219bed38 100644 --- a/drivers/net/wireless/realtek/rtw89/phy.c +++ b/drivers/net/wireless/realtek/rtw89/phy.c @@ -429,27 +429,28 @@ void rtw89_phy_rate_pattern_vif(struct rtw89_dev *rtwdev, diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-disabled-IGI-configuration-for-unsupported-hardware.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-disabled-IGI-configuration-for-unsupported-hardware.patch index 5dad096a3..79bdd8161 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-disabled-IGI-configuration-for-unsupported-hardware.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-disabled-IGI-configuration-for-unsupported-hardware.patch @@ -1,7 +1,7 @@ -From 5a08ed57e69792f35f2f9fda9cf28a890534e799 Mon Sep 17 00:00:00 2001 +From 661b3ac1efd3852fab63ac6955ffa441f1e69c97 Mon Sep 17 00:00:00 2001 From: Johnson Lin Date: Fri, 18 Mar 2022 10:32:09 +0800 -Subject: [PATCH 413/515] rtw89: disabled IGI configuration for unsupported +Subject: [PATCH 413/534] rtw89: disabled IGI configuration for unsupported hardware Bypass IGI, known as Rx gain, adjustment flow for incompatible hardware @@ -18,7 +18,7 @@ Link: https://lore.kernel.org/r/20220318023214.32411-7-pkshih@realtek.com 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/net/wireless/realtek/rtw89/core.c b/drivers/net/wireless/realtek/rtw89/core.c -index c61061358980..bce4834f18ec 100644 +index c61061358..bce4834f1 100644 --- a/drivers/net/wireless/realtek/rtw89/core.c +++ b/drivers/net/wireless/realtek/rtw89/core.c @@ -2752,6 +2752,8 @@ static void rtw89_core_setup_phycap(struct rtw89_dev *rtwdev) @@ -31,10 +31,10 @@ index c61061358980..bce4834f18ec 100644 static int rtw89_chip_efuse_info_setup(struct rtw89_dev *rtwdev) diff --git a/drivers/net/wireless/realtek/rtw89/core.h b/drivers/net/wireless/realtek/rtw89/core.h -index 5900cbc0efd9..725484be2b62 100644 +index 05aaea1ff..14a97908e 100644 --- a/drivers/net/wireless/realtek/rtw89/core.h +++ b/drivers/net/wireless/realtek/rtw89/core.h -@@ -2489,6 +2489,7 @@ struct rtw89_hal { +@@ -2490,6 +2490,7 @@ struct rtw89_hal { u8 tx_nss; u8 rx_nss; bool support_cckpd; @@ -43,10 +43,10 @@ index 5900cbc0efd9..725484be2b62 100644 #define RTW89_MAX_MAC_ID_NUM 128 diff --git a/drivers/net/wireless/realtek/rtw89/phy.c b/drivers/net/wireless/realtek/rtw89/phy.c -index c27148acfa04..193afb1f53f5 100644 +index 68cacac67..c3d3fe29e 100644 --- a/drivers/net/wireless/realtek/rtw89/phy.c +++ b/drivers/net/wireless/realtek/rtw89/phy.c -@@ -3309,7 +3309,8 @@ void rtw89_phy_dig(struct rtw89_dev *rtwdev) +@@ -3314,7 +3314,8 @@ void rtw89_phy_dig(struct rtw89_dev *rtwdev) dig->igi_rssi, dig->dyn_igi_max, dig->dyn_igi_min, dig->igi_fa_rssi); diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-don-t-flush-hci-queues-and-send-h2c-if-power-is-off.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-don-t-flush-hci-queues-and-send-h2c-if-power-is-off.patch index cfa971525..2a1034e7c 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-don-t-flush-hci-queues-and-send-h2c-if-power-is-off.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-don-t-flush-hci-queues-and-send-h2c-if-power-is-off.patch @@ -1,7 +1,7 @@ -From f86bd165d9192af2954a5abd40cc8ec1d050e539 Mon Sep 17 00:00:00 2001 +From aefea50eb72f44ab41be7fcbbef57b38455a1686 Mon Sep 17 00:00:00 2001 From: Ping-Ke Shih Date: Thu, 21 Apr 2022 20:08:57 +0800 -Subject: [PATCH 473/515] rtw89: don't flush hci queues and send h2c if power +Subject: [PATCH 472/534] rtw89: don't flush hci queues and send h2c if power is off When disconnecting, it warns somethings after power is off, and we can't @@ -19,7 +19,7 @@ Link: https://lore.kernel.org/r/20220421120903.73715-9-pkshih@realtek.com 2 files changed, 10 insertions(+) diff --git a/drivers/net/wireless/realtek/rtw89/core.c b/drivers/net/wireless/realtek/rtw89/core.c -index e2f8551ed1df..440413e001e0 100644 +index e2f8551ed..440413e00 100644 --- a/drivers/net/wireless/realtek/rtw89/core.c +++ b/drivers/net/wireless/realtek/rtw89/core.c @@ -856,6 +856,13 @@ int rtw89_h2c_tx(struct rtw89_dev *rtwdev, @@ -37,10 +37,10 @@ index e2f8551ed1df..440413e001e0 100644 tx_req.tx_type = RTW89_CORE_TX_TYPE_FWCMD; if (fwdl) diff --git a/drivers/net/wireless/realtek/rtw89/core.h b/drivers/net/wireless/realtek/rtw89/core.h -index 7a6ad7e67100..90231b20e7ee 100644 +index 75c458fba..bc54463e9 100644 --- a/drivers/net/wireless/realtek/rtw89/core.h +++ b/drivers/net/wireless/realtek/rtw89/core.h -@@ -3199,6 +3199,9 @@ static inline void rtw89_hci_tx_kick_off(struct rtw89_dev *rtwdev, u8 txch) +@@ -3200,6 +3200,9 @@ static inline void rtw89_hci_tx_kick_off(struct rtw89_dev *rtwdev, u8 txch) static inline void rtw89_hci_flush_queues(struct rtw89_dev *rtwdev, u32 queues, bool drop) { diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-extend-H2C-of-CMAC-control-info.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-extend-H2C-of-CMAC-control-info.patch index 6a691f802..40a46bf7f 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-extend-H2C-of-CMAC-control-info.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-extend-H2C-of-CMAC-control-info.patch @@ -1,7 +1,7 @@ -From 7f2384b464604471cec86859969c2bdcb0103aa5 Mon Sep 17 00:00:00 2001 +From a27b719be2871cb47b8908dca7483dcd6e113c46 Mon Sep 17 00:00:00 2001 From: Ping-Ke Shih Date: Wed, 13 Apr 2022 09:08:01 +0800 -Subject: [PATCH 450/515] rtw89: extend H2C of CMAC control info +Subject: [PATCH 449/534] rtw89: extend H2C of CMAC control info In order to support new chip that has capability of 160M, we need new format to fill new information, so add a new V1 ID for newer use. Since @@ -19,7 +19,7 @@ Link: https://lore.kernel.org/r/20220413010804.8941-2-pkshih@realtek.com 5 files changed, 72 insertions(+), 23 deletions(-) diff --git a/drivers/net/wireless/realtek/rtw89/core.h b/drivers/net/wireless/realtek/rtw89/core.h -index 0caaf8e9530e..9fc7c1c70365 100644 +index 8ae509087..fa9bd2449 100644 --- a/drivers/net/wireless/realtek/rtw89/core.h +++ b/drivers/net/wireless/realtek/rtw89/core.h @@ -578,7 +578,7 @@ enum rtw89_ps_mode { @@ -40,10 +40,10 @@ index 0caaf8e9530e..9fc7c1c70365 100644 u32 h2c_desc_size; u32 txwd_body_size; diff --git a/drivers/net/wireless/realtek/rtw89/fw.c b/drivers/net/wireless/realtek/rtw89/fw.c -index fc77d9bfd626..beedc650e33a 100644 +index d89193289..d22552cf1 100644 --- a/drivers/net/wireless/realtek/rtw89/fw.c +++ b/drivers/net/wireless/realtek/rtw89/fw.c -@@ -780,6 +780,7 @@ int rtw89_fw_h2c_lps_parm(struct rtw89_dev *rtwdev, +@@ -785,6 +785,7 @@ int rtw89_fw_h2c_lps_parm(struct rtw89_dev *rtwdev, int rtw89_fw_h2c_default_cmac_tbl(struct rtw89_dev *rtwdev, struct rtw89_vif *rtwvif) { @@ -51,7 +51,7 @@ index fc77d9bfd626..beedc650e33a 100644 struct rtw89_hal *hal = &rtwdev->hal; struct sk_buff *skb; u8 ntx_path = hal->antenna_tx ? hal->antenna_tx : RF_B; -@@ -794,16 +795,18 @@ int rtw89_fw_h2c_default_cmac_tbl(struct rtw89_dev *rtwdev, +@@ -799,16 +800,18 @@ int rtw89_fw_h2c_default_cmac_tbl(struct rtw89_dev *rtwdev, skb_put(skb, H2C_CMC_TBL_LEN); SET_CTRL_INFO_MACID(skb->data, macid); SET_CTRL_INFO_OPERATION(skb->data, 1); @@ -80,7 +80,7 @@ index fc77d9bfd626..beedc650e33a 100644 SET_CMC_TBL_DOPPLER_CTRL(skb->data, 0); SET_CMC_TBL_TXPWR_TOLERENCE(skb->data, 0); if (rtwvif->net_type == RTW89_NET_TYPE_AP_MODE) -@@ -811,7 +814,7 @@ int rtw89_fw_h2c_default_cmac_tbl(struct rtw89_dev *rtwdev, +@@ -816,7 +819,7 @@ int rtw89_fw_h2c_default_cmac_tbl(struct rtw89_dev *rtwdev, rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, H2C_CAT_MAC, H2C_CL_MAC_FR_EXCHG, @@ -89,7 +89,7 @@ index fc77d9bfd626..beedc650e33a 100644 H2C_CMC_TBL_LEN); if (rtw89_h2c_tx(rtwdev, skb, false)) { -@@ -851,6 +854,8 @@ static void __get_sta_he_pkt_padding(struct rtw89_dev *rtwdev, +@@ -856,6 +859,8 @@ static void __get_sta_he_pkt_padding(struct rtw89_dev *rtwdev, for (i = 0; i < RTW89_PPE_BW_NUM; i++) pads[i] = pad; @@ -98,7 +98,7 @@ index fc77d9bfd626..beedc650e33a 100644 } ru_bitmap = FIELD_GET(IEEE80211_PPE_THRES_RU_INDEX_BITMASK_MASK, ppe_thres_hdr); -@@ -885,6 +890,7 @@ int rtw89_fw_h2c_assoc_cmac_tbl(struct rtw89_dev *rtwdev, +@@ -890,6 +895,7 @@ int rtw89_fw_h2c_assoc_cmac_tbl(struct rtw89_dev *rtwdev, struct ieee80211_vif *vif, struct ieee80211_sta *sta) { @@ -106,7 +106,7 @@ index fc77d9bfd626..beedc650e33a 100644 struct rtw89_hal *hal = &rtwdev->hal; struct rtw89_sta *rtwsta = sta_to_rtwsta_safe(sta); struct rtw89_vif *rtwvif = (struct rtw89_vif *)vif->drv_priv; -@@ -917,9 +923,17 @@ int rtw89_fw_h2c_assoc_cmac_tbl(struct rtw89_dev *rtwdev, +@@ -922,9 +928,17 @@ int rtw89_fw_h2c_assoc_cmac_tbl(struct rtw89_dev *rtwdev, else SET_CMC_TBL_ULDL(skb->data, 0); SET_CMC_TBL_MULTI_PORT_ID(skb->data, rtwvif->port); @@ -127,7 +127,7 @@ index fc77d9bfd626..beedc650e33a 100644 if (sta) SET_CMC_TBL_BSR_QUEUE_SIZE_FORMAT(skb->data, sta->he_cap.has_he); if (rtwvif->net_type == RTW89_NET_TYPE_AP_MODE) -@@ -927,7 +941,7 @@ int rtw89_fw_h2c_assoc_cmac_tbl(struct rtw89_dev *rtwdev, +@@ -932,7 +946,7 @@ int rtw89_fw_h2c_assoc_cmac_tbl(struct rtw89_dev *rtwdev, rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, H2C_CAT_MAC, H2C_CL_MAC_FR_EXCHG, @@ -136,7 +136,7 @@ index fc77d9bfd626..beedc650e33a 100644 H2C_CMC_TBL_LEN); if (rtw89_h2c_tx(rtwdev, skb, false)) { -@@ -945,6 +959,7 @@ int rtw89_fw_h2c_assoc_cmac_tbl(struct rtw89_dev *rtwdev, +@@ -950,6 +964,7 @@ int rtw89_fw_h2c_assoc_cmac_tbl(struct rtw89_dev *rtwdev, int rtw89_fw_h2c_txtime_cmac_tbl(struct rtw89_dev *rtwdev, struct rtw89_sta *rtwsta) { @@ -144,7 +144,7 @@ index fc77d9bfd626..beedc650e33a 100644 struct sk_buff *skb; skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, H2C_CMC_TBL_LEN); -@@ -966,7 +981,7 @@ int rtw89_fw_h2c_txtime_cmac_tbl(struct rtw89_dev *rtwdev, +@@ -971,7 +986,7 @@ int rtw89_fw_h2c_txtime_cmac_tbl(struct rtw89_dev *rtwdev, rtw89_h2c_pkt_set_hdr(rtwdev, skb, FWCMD_TYPE_H2C, H2C_CAT_MAC, H2C_CL_MAC_FR_EXCHG, @@ -154,7 +154,7 @@ index fc77d9bfd626..beedc650e33a 100644 if (rtw89_h2c_tx(rtwdev, skb, false)) { diff --git a/drivers/net/wireless/realtek/rtw89/fw.h b/drivers/net/wireless/realtek/rtw89/fw.h -index 2a010154a8e8..9cba8990b836 100644 +index 2a010154a..9cba8990b 100644 --- a/drivers/net/wireless/realtek/rtw89/fw.h +++ b/drivers/net/wireless/realtek/rtw89/fw.h @@ -973,6 +973,36 @@ static inline void SET_CMC_TBL_ANTSEL_D(void *table, u32 val) @@ -231,7 +231,7 @@ index 2a010154a8e8..9cba8990b836 100644 /* CLASS 6 - Address CAM */ #define H2C_CL_MAC_ADDR_CAM_UPDATE 0x6 diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852a.c b/drivers/net/wireless/realtek/rtw89/rtw8852a.c -index 9871ed78e44c..6371bbf7a2fd 100644 +index 9871ed78e..6371bbf7a 100644 --- a/drivers/net/wireless/realtek/rtw89/rtw8852a.c +++ b/drivers/net/wireless/realtek/rtw89/rtw8852a.c @@ -2147,6 +2147,7 @@ const struct rtw89_chip_info rtw8852a_chip_info = { @@ -243,7 +243,7 @@ index 9871ed78e44c..6371bbf7a2fd 100644 .h2c_desc_size = sizeof(struct rtw89_txwd_body), .txwd_body_size = sizeof(struct rtw89_txwd_body), diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852c.c b/drivers/net/wireless/realtek/rtw89/rtw8852c.c -index 38b138330716..d900129c1a7c 100644 +index 38b138330..d900129c1 100644 --- a/drivers/net/wireless/realtek/rtw89/rtw8852c.c +++ b/drivers/net/wireless/realtek/rtw89/rtw8852c.c @@ -667,6 +667,7 @@ const struct rtw89_chip_info rtw8852c_chip_info = { diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-fix-misconfiguration-on-hw_scan-channel-time.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-fix-misconfiguration-on-hw_scan-channel-time.patch deleted file mode 100644 index ec0bedceb..000000000 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-fix-misconfiguration-on-hw_scan-channel-time.patch +++ /dev/null @@ -1,32 +0,0 @@ -From d6378550de2b826fda376273f055c45d790ce0ab Mon Sep 17 00:00:00 2001 -From: Po Hao Huang -Date: Fri, 1 Apr 2022 13:50:43 +0800 -Subject: [PATCH 439/515] rtw89: fix misconfiguration on hw_scan channel time - -Without this patch, hw scan won't stay long enough on DFS/passive -channels. Found previous logic error and fix it. - -Signed-off-by: Po Hao Huang -Signed-off-by: Ping-Ke Shih -Signed-off-by: Kalle Valo -Link: https://lore.kernel.org/r/20220401055043.12512-5-pkshih@realtek.com ---- - drivers/net/wireless/realtek/rtw89/fw.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/drivers/net/wireless/realtek/rtw89/fw.c b/drivers/net/wireless/realtek/rtw89/fw.c -index 5985b40950bc..fc77d9bfd626 100644 ---- a/drivers/net/wireless/realtek/rtw89/fw.c -+++ b/drivers/net/wireless/realtek/rtw89/fw.c -@@ -2101,7 +2101,7 @@ static void rtw89_hw_scan_add_chan(struct rtw89_dev *rtwdev, int chan_type, - ch_info->num_pkt = 0; - break; - case RTW89_CHAN_DFS: -- ch_info->period = min_t(u8, ch_info->period, -+ ch_info->period = max_t(u8, ch_info->period, - RTW89_DFS_CHAN_TIME); - ch_info->dwell_time = RTW89_DWELL_TIME; - break; --- -2.35.3 - diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-packed-IGI-configuration-flow-into-function-for-DIG-featu.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-packed-IGI-configuration-flow-into-function-for-DIG-featu.patch index e0f89d298..dbf079238 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-packed-IGI-configuration-flow-into-function-for-DIG-featu.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-packed-IGI-configuration-flow-into-function-for-DIG-featu.patch @@ -1,7 +1,7 @@ -From 4fe1740c1100b333abb4091eb550877ba0477ba2 Mon Sep 17 00:00:00 2001 +From 699d777f604f42c4f243d2b0baaa0da4affe6b60 Mon Sep 17 00:00:00 2001 From: Johnson Lin Date: Fri, 18 Mar 2022 10:32:08 +0800 -Subject: [PATCH 412/515] rtw89: packed IGI configuration flow into function +Subject: [PATCH 412/534] rtw89: packed IGI configuration flow into function for DIG feature Refinement of DIG flow, a mechanism to adjust Rx gain for better Rx @@ -17,10 +17,10 @@ Link: https://lore.kernel.org/r/20220318023214.32411-6-pkshih@realtek.com 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/drivers/net/wireless/realtek/rtw89/phy.c b/drivers/net/wireless/realtek/rtw89/phy.c -index c9a04ca0b1f2..c27148acfa04 100644 +index ed0f4de67..68cacac67 100644 --- a/drivers/net/wireless/realtek/rtw89/phy.c +++ b/drivers/net/wireless/realtek/rtw89/phy.c -@@ -3180,6 +3180,21 @@ static void rtw89_phy_dig_sdagc_follow_pagc_config(struct rtw89_dev *rtwdev, +@@ -3185,6 +3185,21 @@ static void rtw89_phy_dig_sdagc_follow_pagc_config(struct rtw89_dev *rtwdev, rtw89_debug(rtwdev, RTW89_DBG_DIG, "sdagc_follow_pagc=%d\n", enable); } @@ -42,7 +42,7 @@ index c9a04ca0b1f2..c27148acfa04 100644 static void rtw89_phy_dig_dyn_pd_th(struct rtw89_dev *rtwdev, u8 rssi, bool enable) { -@@ -3294,15 +3309,7 @@ void rtw89_phy_dig(struct rtw89_dev *rtwdev) +@@ -3299,15 +3314,7 @@ void rtw89_phy_dig(struct rtw89_dev *rtwdev) dig->igi_rssi, dig->dyn_igi_max, dig->dyn_igi_min, dig->igi_fa_rssi); diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-ps-access-TX-RX-rings-via-another-registers-in-low-power-.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-ps-access-TX-RX-rings-via-another-registers-in-low-power-.patch index ab1ec00a3..7d0453c21 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-ps-access-TX-RX-rings-via-another-registers-in-low-power-.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-ps-access-TX-RX-rings-via-another-registers-in-low-power-.patch @@ -1,7 +1,7 @@ -From 75c2d1e3c77b022a50877d1907086072dc25463a Mon Sep 17 00:00:00 2001 +From 1ad211a8040d528f79dbd152519f433306769c61 Mon Sep 17 00:00:00 2001 From: Ping-Ke Shih Date: Thu, 21 Apr 2022 20:08:55 +0800 -Subject: [PATCH 471/515] rtw89: ps: access TX/RX rings via another registers +Subject: [PATCH 470/534] rtw89: ps: access TX/RX rings via another registers in low power mode In low power mode, we need to pause PCI to configure IMR and PCI ring @@ -31,7 +31,7 @@ Link: https://lore.kernel.org/r/20220421120903.73715-7-pkshih@realtek.com 8 files changed, 177 insertions(+), 4 deletions(-) diff --git a/drivers/net/wireless/realtek/rtw89/core.h b/drivers/net/wireless/realtek/rtw89/core.h -index 22dbd3197382..7a6ad7e67100 100644 +index f79775646..75c458fba 100644 --- a/drivers/net/wireless/realtek/rtw89/core.h +++ b/drivers/net/wireless/realtek/rtw89/core.h @@ -2036,6 +2036,8 @@ struct rtw89_hci_ops { @@ -59,7 +59,7 @@ index 22dbd3197382..7a6ad7e67100 100644 u32 h2c_cctl_func_id; u32 hci_func_en_addr; -@@ -3167,6 +3171,16 @@ static inline int rtw89_hci_deinit(struct rtw89_dev *rtwdev) +@@ -3168,6 +3172,16 @@ static inline int rtw89_hci_deinit(struct rtw89_dev *rtwdev) return rtwdev->hci.ops->deinit(rtwdev); } @@ -77,7 +77,7 @@ index 22dbd3197382..7a6ad7e67100 100644 { rtwdev->hci.ops->recalc_int_mit(rtwdev); diff --git a/drivers/net/wireless/realtek/rtw89/pci.c b/drivers/net/wireless/realtek/rtw89/pci.c -index ad3db5aa890c..31c62d116f44 100644 +index ad3db5aa8..31c62d116 100644 --- a/drivers/net/wireless/realtek/rtw89/pci.c +++ b/drivers/net/wireless/realtek/rtw89/pci.c @@ -919,6 +919,21 @@ u32 __rtw89_pci_check_and_reclaim_tx_fwcmd_resource(struct rtw89_dev *rtwdev) @@ -233,7 +233,7 @@ index ad3db5aa890c..31c62d116f44 100644 .read8 = rtw89_pci_ops_read8, diff --git a/drivers/net/wireless/realtek/rtw89/pci.h b/drivers/net/wireless/realtek/rtw89/pci.h -index c203c8cbf163..bb585ed19190 100644 +index c203c8cbf..bb585ed19 100644 --- a/drivers/net/wireless/realtek/rtw89/pci.h +++ b/drivers/net/wireless/realtek/rtw89/pci.h @@ -202,6 +202,15 @@ @@ -281,7 +281,7 @@ index c203c8cbf163..bb585ed19190 100644 u32 ind_intrs; u32 halt_c2h_intrs; diff --git a/drivers/net/wireless/realtek/rtw89/ps.c b/drivers/net/wireless/realtek/rtw89/ps.c -index 7eaa01e41ef2..a90b33720588 100644 +index 7eaa01e41..a90b33720 100644 --- a/drivers/net/wireless/realtek/rtw89/ps.c +++ b/drivers/net/wireless/realtek/rtw89/ps.c @@ -29,6 +29,36 @@ static int rtw89_fw_leave_lps_check(struct rtw89_dev *rtwdev, u8 macid) @@ -340,7 +340,7 @@ index 7eaa01e41ef2..a90b33720588 100644 static void __rtw89_enter_lps(struct rtw89_dev *rtwdev, u8 mac_id) diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852a.c b/drivers/net/wireless/realtek/rtw89/rtw8852a.c -index cb93287d4722..5af618709ded 100644 +index cb93287d4..5af618709 100644 --- a/drivers/net/wireless/realtek/rtw89/rtw8852a.c +++ b/drivers/net/wireless/realtek/rtw89/rtw8852a.c @@ -2150,6 +2150,7 @@ const struct rtw89_chip_info rtw8852a_chip_info = { @@ -352,7 +352,7 @@ index cb93287d4722..5af618709ded 100644 .hci_func_en_addr = R_AX_HCI_FUNC_EN, .h2c_desc_size = sizeof(struct rtw89_txwd_body), diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852ae.c b/drivers/net/wireless/realtek/rtw89/rtw8852ae.c -index c6937e5943ea..190c4aefb02e 100644 +index c6937e594..190c4aefb 100644 --- a/drivers/net/wireless/realtek/rtw89/rtw8852ae.c +++ b/drivers/net/wireless/realtek/rtw89/rtw8852ae.c @@ -41,6 +41,7 @@ static const struct rtw89_pci_info rtw8852a_pci_info = { @@ -364,7 +364,7 @@ index c6937e5943ea..190c4aefb02e 100644 .ltr_set = rtw89_pci_ltr_set, diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852c.c b/drivers/net/wireless/realtek/rtw89/rtw8852c.c -index 510614630bfb..1302d4324473 100644 +index 510614630..1302d4324 100644 --- a/drivers/net/wireless/realtek/rtw89/rtw8852c.c +++ b/drivers/net/wireless/realtek/rtw89/rtw8852c.c @@ -2006,6 +2006,8 @@ const struct rtw89_chip_info rtw8852c_chip_info = { @@ -377,7 +377,7 @@ index 510614630bfb..1302d4324473 100644 .hci_func_en_addr = R_AX_HCI_FUNC_EN_V1, .h2c_desc_size = sizeof(struct rtw89_rxdesc_short), diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852ce.c b/drivers/net/wireless/realtek/rtw89/rtw8852ce.c -index 4d71cc87f7ba..fc0394494013 100644 +index 4d71cc87f..fc0394494 100644 --- a/drivers/net/wireless/realtek/rtw89/rtw8852ce.c +++ b/drivers/net/wireless/realtek/rtw89/rtw8852ce.c @@ -9,6 +9,15 @@ diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-reconstruct-fw-feature.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-reconstruct-fw-feature.patch index 5a5963ec0..885adb3fe 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-reconstruct-fw-feature.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-reconstruct-fw-feature.patch @@ -1,7 +1,7 @@ -From 4861dc457c5e98da2cf5bc8cf17e558d68d73acc Mon Sep 17 00:00:00 2001 +From 9bff6acc96d56dea3c72713e1be16c9fb2489f2f Mon Sep 17 00:00:00 2001 From: Zong-Zhe Yang Date: Mon, 14 Mar 2022 15:12:49 +0800 -Subject: [PATCH 405/515] rtw89: reconstruct fw feature +Subject: [PATCH 405/534] rtw89: reconstruct fw feature As the fw features gradually increase, it would be better that we have a set of methods to maintain fw features instead of using @@ -24,7 +24,7 @@ Link: https://lore.kernel.org/r/20220314071250.40292-8-pkshih@realtek.com 5 files changed, 62 insertions(+), 18 deletions(-) diff --git a/drivers/net/wireless/realtek/rtw89/core.c b/drivers/net/wireless/realtek/rtw89/core.c -index bcefc968576e..c61061358980 100644 +index bcefc9685..c61061358 100644 --- a/drivers/net/wireless/realtek/rtw89/core.c +++ b/drivers/net/wireless/realtek/rtw89/core.c @@ -759,7 +759,7 @@ static void @@ -47,7 +47,7 @@ index bcefc968576e..c61061358980 100644 ieee80211_channel_to_frequency(hal->current_channel, hal->current_band_type); diff --git a/drivers/net/wireless/realtek/rtw89/core.h b/drivers/net/wireless/realtek/rtw89/core.h -index 17ba5b85e500..395d3bacdd3f 100644 +index 9d43a95ac..9eba16b0b 100644 --- a/drivers/net/wireless/realtek/rtw89/core.h +++ b/drivers/net/wireless/realtek/rtw89/core.h @@ -2396,6 +2396,12 @@ enum rtw89_fw_type { @@ -63,7 +63,7 @@ index 17ba5b85e500..395d3bacdd3f 100644 struct rtw89_fw_suit { const u8 *data; u32 size; -@@ -2425,11 +2431,15 @@ struct rtw89_fw_info { +@@ -2426,11 +2432,15 @@ struct rtw89_fw_info { struct rtw89_fw_suit normal; struct rtw89_fw_suit wowlan; bool fw_log_enable; @@ -83,7 +83,7 @@ index 17ba5b85e500..395d3bacdd3f 100644 DECLARE_BITMAP(addr_cam_map, RTW89_MAX_ADDR_CAM_NUM); DECLARE_BITMAP(bssid_cam_map, RTW89_MAX_BSSID_CAM_NUM); diff --git a/drivers/net/wireless/realtek/rtw89/fw.c b/drivers/net/wireless/realtek/rtw89/fw.c -index 6deaf8eec6b4..76a290090507 100644 +index af3f0f5ff..bf2e18c57 100644 --- a/drivers/net/wireless/realtek/rtw89/fw.c +++ b/drivers/net/wireless/realtek/rtw89/fw.c @@ -193,22 +193,55 @@ int __rtw89_fw_recognize(struct rtw89_dev *rtwdev, enum rtw89_fw_type type) @@ -153,7 +153,7 @@ index 6deaf8eec6b4..76a290090507 100644 int rtw89_fw_recognize(struct rtw89_dev *rtwdev) diff --git a/drivers/net/wireless/realtek/rtw89/mac80211.c b/drivers/net/wireless/realtek/rtw89/mac80211.c -index fca9f82bb462..8da3e117ad38 100644 +index fca9f82bb..8da3e117a 100644 --- a/drivers/net/wireless/realtek/rtw89/mac80211.c +++ b/drivers/net/wireless/realtek/rtw89/mac80211.c @@ -725,7 +725,7 @@ static int rtw89_ops_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif, @@ -175,7 +175,7 @@ index fca9f82bb462..8da3e117ad38 100644 if (!rtwdev->scanning) diff --git a/drivers/net/wireless/realtek/rtw89/phy.c b/drivers/net/wireless/realtek/rtw89/phy.c -index ac211d897311..c9a04ca0b1f2 100644 +index 8414f3018..ed0f4de67 100644 --- a/drivers/net/wireless/realtek/rtw89/phy.c +++ b/drivers/net/wireless/realtek/rtw89/phy.c @@ -1686,7 +1686,7 @@ static void rtw89_phy_c2h_ra_rpt_iter(void *data, struct ieee80211_sta *sta) diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-rtw89_ser-add-const-to-struct-state_ent-and-event_ent.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-rtw89_ser-add-const-to-struct-state_ent-and-event_ent.patch index c1c36305f..106a10ffb 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-rtw89_ser-add-const-to-struct-state_ent-and-event_ent.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-rtw89_ser-add-const-to-struct-state_ent-and-event_ent.patch @@ -1,7 +1,7 @@ -From b5699203c44d76ea6d6a2936adbd106d99e41c19 Mon Sep 17 00:00:00 2001 +From 4981b1a34afcd717e8855e66382101cf8d660a4e Mon Sep 17 00:00:00 2001 From: Joe Perches Date: Thu, 7 Apr 2022 13:14:44 -0700 -Subject: [PATCH 449/515] rtw89: rtw89_ser: add const to struct state_ent and +Subject: [PATCH 448/534] rtw89: rtw89_ser: add const to struct state_ent and event_ent Change the struct and the uses to const to reduce data. @@ -21,10 +21,10 @@ Link: https://lore.kernel.org/r/2fd88e6119f62b968477ef9781abb1832d399fd6.camel@p 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/net/wireless/realtek/rtw89/core.h b/drivers/net/wireless/realtek/rtw89/core.h -index 5f0f675fe2a1..0caaf8e9530e 100644 +index 904fb89ef..8ae509087 100644 --- a/drivers/net/wireless/realtek/rtw89/core.h +++ b/drivers/net/wireless/realtek/rtw89/core.h -@@ -2948,8 +2948,8 @@ struct rtw89_ser { +@@ -2949,8 +2949,8 @@ struct rtw89_ser { struct work_struct ser_hdl_work; struct delayed_work ser_alarm_work; @@ -36,7 +36,7 @@ index 5f0f675fe2a1..0caaf8e9530e 100644 spinlock_t msg_q_lock; /* lock when read/write ser msg */ DECLARE_BITMAP(flags, RTW89_NUM_OF_SER_FLAGS); diff --git a/drivers/net/wireless/realtek/rtw89/ser.c b/drivers/net/wireless/realtek/rtw89/ser.c -index 5aebd6839d29..9e95ed972710 100644 +index 5aebd6839..9e95ed972 100644 --- a/drivers/net/wireless/realtek/rtw89/ser.c +++ b/drivers/net/wireless/realtek/rtw89/ser.c @@ -632,7 +632,7 @@ static void ser_l2_reset_st_hdl(struct rtw89_ser *ser, u8 evt) diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-ser-control-hci-interrupts-on-off-by-state.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-ser-control-hci-interrupts-on-off-by-state.patch index ac31dcaee..bb5472d4b 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-ser-control-hci-interrupts-on-off-by-state.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-ser-control-hci-interrupts-on-off-by-state.patch @@ -1,7 +1,7 @@ -From 8c4e9a4a94846e345ccb89ecf88917b650560f0e Mon Sep 17 00:00:00 2001 +From 238368068940c6e53c91309b4d0104f87dd9c20e Mon Sep 17 00:00:00 2001 From: Zong-Zhe Yang Date: Mon, 14 Mar 2022 15:12:46 +0800 -Subject: [PATCH 402/515] rtw89: ser: control hci interrupts on/off by state +Subject: [PATCH 402/534] rtw89: ser: control hci interrupts on/off by state While SER (system error recover) is processing, it's supposed to mean something is under recovery. So, disable interrupts (excluding the one @@ -20,7 +20,7 @@ Link: https://lore.kernel.org/r/20220314071250.40292-5-pkshih@realtek.com 4 files changed, 53 insertions(+) diff --git a/drivers/net/wireless/realtek/rtw89/core.h b/drivers/net/wireless/realtek/rtw89/core.h -index 771722132c53..5efa5ca372c6 100644 +index c6513a003..233eb0407 100644 --- a/drivers/net/wireless/realtek/rtw89/core.h +++ b/drivers/net/wireless/realtek/rtw89/core.h @@ -2025,6 +2025,13 @@ struct rtw89_hci_ops { @@ -37,7 +37,7 @@ index 771722132c53..5efa5ca372c6 100644 }; struct rtw89_hci_info { -@@ -3033,6 +3040,18 @@ static inline void rtw89_hci_flush_queues(struct rtw89_dev *rtwdev, u32 queues, +@@ -3034,6 +3041,18 @@ static inline void rtw89_hci_flush_queues(struct rtw89_dev *rtwdev, u32 queues, return rtwdev->hci.ops->flush_queues(rtwdev, queues, drop); } @@ -57,7 +57,7 @@ index 771722132c53..5efa5ca372c6 100644 { return rtwdev->hci.ops->read8(rtwdev, addr); diff --git a/drivers/net/wireless/realtek/rtw89/pci.c b/drivers/net/wireless/realtek/rtw89/pci.c -index e79bfc335b44..32e8283e22f3 100644 +index e79bfc335..32e8283e2 100644 --- a/drivers/net/wireless/realtek/rtw89/pci.c +++ b/drivers/net/wireless/realtek/rtw89/pci.c @@ -647,6 +647,29 @@ static void rtw89_pci_disable_intr(struct rtw89_dev *rtwdev, @@ -111,7 +111,7 @@ index e79bfc335b44..32e8283e22f3 100644 int rtw89_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id) diff --git a/drivers/net/wireless/realtek/rtw89/pci.h b/drivers/net/wireless/realtek/rtw89/pci.h -index b84acd0d0582..2c8030af3e72 100644 +index b84acd0d0..2c8030af3 100644 --- a/drivers/net/wireless/realtek/rtw89/pci.h +++ b/drivers/net/wireless/realtek/rtw89/pci.h @@ -594,6 +594,7 @@ struct rtw89_pci { @@ -123,7 +123,7 @@ index b84acd0d0582..2c8030af3e72 100644 struct rtw89_pci_rx_ring rx_rings[RTW89_RXCH_NUM]; struct sk_buff_head h2c_queue; diff --git a/drivers/net/wireless/realtek/rtw89/ser.c b/drivers/net/wireless/realtek/rtw89/ser.c -index 5327b97b9c72..a20389cde7e2 100644 +index 5327b97b9..a20389cde 100644 --- a/drivers/net/wireless/realtek/rtw89/ser.c +++ b/drivers/net/wireless/realtek/rtw89/ser.c @@ -302,8 +302,11 @@ static void hal_send_m4_event(struct rtw89_ser *ser) diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-ser-fix-CAM-leaks-occurring-in-L2-reset.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-ser-fix-CAM-leaks-occurring-in-L2-reset.patch deleted file mode 100644 index 72eae2968..000000000 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-ser-fix-CAM-leaks-occurring-in-L2-reset.patch +++ /dev/null @@ -1,118 +0,0 @@ -From d6c7facb311eb55ef7cbb55fa15749f502d87ecf Mon Sep 17 00:00:00 2001 -From: Zong-Zhe Yang -Date: Mon, 14 Mar 2022 15:12:43 +0800 -Subject: [PATCH 399/515] rtw89: ser: fix CAM leaks occurring in L2 reset - -The CAM, meaning address CAM and bssid CAM here, will get leaks during -SER (system error recover) L2 reset process and ieee80211_restart_hw() -which is called by L2 reset process eventually. - -The normal flow would be like --> add interface (acquire 1) --> enter ips (release 1) --> leave ips (acquire 1) --> connection (occupy 1) <(A) 1 leak after L2 reset if non-sec connection> - -The ieee80211_restart_hw() flow (under connection) --> ieee80211 reconfig --> add interface (acquire 1) --> leave ips (acquire 1) --> connection (occupy (A) + 2) <(B) 1 more leak> - -Originally, CAM is released before HW restart only if connection is under -security. Now, release CAM whatever connection it is to fix leak in (A). -OTOH, check if CAM is already valid to avoid acquiring multiple times to -fix (B). - -Besides, if AP mode, release address CAM of all stations before HW restart. - -Signed-off-by: Zong-Zhe Yang -Signed-off-by: Ping-Ke Shih -Signed-off-by: Kalle Valo -Link: https://lore.kernel.org/r/20220314071250.40292-2-pkshih@realtek.com ---- - drivers/net/wireless/realtek/rtw89/cam.c | 14 ++++++++++++-- - drivers/net/wireless/realtek/rtw89/ser.c | 21 +++++++++++++++++++++ - 2 files changed, 33 insertions(+), 2 deletions(-) - -diff --git a/drivers/net/wireless/realtek/rtw89/cam.c b/drivers/net/wireless/realtek/rtw89/cam.c -index 305dbbebff6b..26bef9fdd205 100644 ---- a/drivers/net/wireless/realtek/rtw89/cam.c -+++ b/drivers/net/wireless/realtek/rtw89/cam.c -@@ -421,10 +421,8 @@ static void rtw89_cam_reset_key_iter(struct ieee80211_hw *hw, - void *data) - { - struct rtw89_dev *rtwdev = (struct rtw89_dev *)data; -- struct rtw89_vif *rtwvif = (struct rtw89_vif *)vif->drv_priv; - - rtw89_cam_sec_key_del(rtwdev, vif, sta, key, false); -- rtw89_cam_deinit(rtwdev, rtwvif); - } - - void rtw89_cam_deinit_addr_cam(struct rtw89_dev *rtwdev, -@@ -480,6 +478,12 @@ int rtw89_cam_init_addr_cam(struct rtw89_dev *rtwdev, - int i; - int ret; - -+ if (unlikely(addr_cam->valid)) { -+ rtw89_debug(rtwdev, RTW89_DBG_FW, -+ "addr cam is already valid; skip init\n"); -+ return 0; -+ } -+ - ret = rtw89_cam_get_avail_addr_cam(rtwdev, &addr_cam_idx); - if (ret) { - rtw89_err(rtwdev, "failed to get available addr cam\n"); -@@ -531,6 +535,12 @@ static int rtw89_cam_init_bssid_cam(struct rtw89_dev *rtwdev, - u8 bssid_cam_idx; - int ret; - -+ if (unlikely(bssid_cam->valid)) { -+ rtw89_debug(rtwdev, RTW89_DBG_FW, -+ "bssid cam is already valid; skip init\n"); -+ return 0; -+ } -+ - ret = rtw89_cam_get_avail_bssid_cam(rtwdev, &bssid_cam_idx); - if (ret) { - rtw89_err(rtwdev, "failed to get available bssid cam\n"); -diff --git a/drivers/net/wireless/realtek/rtw89/ser.c b/drivers/net/wireless/realtek/rtw89/ser.c -index 837cdc366a61..e86f3d89ef1b 100644 ---- a/drivers/net/wireless/realtek/rtw89/ser.c -+++ b/drivers/net/wireless/realtek/rtw89/ser.c -@@ -220,11 +220,32 @@ static void ser_reset_vif(struct rtw89_dev *rtwdev, struct rtw89_vif *rtwvif) - rtwvif->trigger = false; - } - -+static void ser_sta_deinit_addr_cam_iter(void *data, struct ieee80211_sta *sta) -+{ -+ struct rtw89_dev *rtwdev = (struct rtw89_dev *)data; -+ struct rtw89_sta *rtwsta = (struct rtw89_sta *)sta->drv_priv; -+ -+ rtw89_cam_deinit_addr_cam(rtwdev, &rtwsta->addr_cam); -+} -+ -+static void ser_deinit_cam(struct rtw89_dev *rtwdev, struct rtw89_vif *rtwvif) -+{ -+ if (rtwvif->net_type == RTW89_NET_TYPE_AP_MODE) -+ ieee80211_iterate_stations_atomic(rtwdev->hw, -+ ser_sta_deinit_addr_cam_iter, -+ rtwdev); -+ -+ rtw89_cam_deinit(rtwdev, rtwvif); -+} -+ - static void ser_reset_mac_binding(struct rtw89_dev *rtwdev) - { - struct rtw89_vif *rtwvif; - - rtw89_cam_reset_keys(rtwdev); -+ rtw89_for_each_rtwvif(rtwdev, rtwvif) -+ ser_deinit_cam(rtwdev, rtwvif); -+ - rtw89_core_release_all_bits_map(rtwdev->mac_id_map, RTW89_MAX_MAC_ID_NUM); - rtw89_for_each_rtwvif(rtwdev, rtwvif) - ser_reset_vif(rtwdev, rtwvif); --- -2.35.3 - diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-support-FW-crash-simulation.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-support-FW-crash-simulation.patch index 79b93030c..99ca9b0ca 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-support-FW-crash-simulation.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-support-FW-crash-simulation.patch @@ -1,7 +1,7 @@ -From 601a815bfbfd68a45286af88338553d6aa6597a9 Mon Sep 17 00:00:00 2001 +From e7f0053eca82d86b5bb303552dcc88a0fd78018c Mon Sep 17 00:00:00 2001 From: Zong-Zhe Yang Date: Mon, 14 Mar 2022 15:12:50 +0800 -Subject: [PATCH 406/515] rtw89: support FW crash simulation +Subject: [PATCH 406/534] rtw89: support FW crash simulation Originally, there is already a mechanism, SER (system error recover), to deal with HW/FW recovery. After FW v0.13.36.0, FW supports a H2C @@ -26,7 +26,7 @@ Link: https://lore.kernel.org/r/20220314071250.40292-9-pkshih@realtek.com 5 files changed, 99 insertions(+) diff --git a/drivers/net/wireless/realtek/rtw89/core.h b/drivers/net/wireless/realtek/rtw89/core.h -index 395d3bacdd3f..7d8140cc25a7 100644 +index 9eba16b0b..f1c1be7a3 100644 --- a/drivers/net/wireless/realtek/rtw89/core.h +++ b/drivers/net/wireless/realtek/rtw89/core.h @@ -2400,6 +2400,7 @@ enum rtw89_fw_feature { @@ -37,7 +37,7 @@ index 395d3bacdd3f..7d8140cc25a7 100644 }; struct rtw89_fw_suit { -@@ -2502,6 +2503,7 @@ enum rtw89_flags { +@@ -2503,6 +2504,7 @@ enum rtw89_flags { RTW89_FLAG_LEISURE_PS, RTW89_FLAG_LOW_POWER_MODE, RTW89_FLAG_INACTIVE_PS, @@ -46,7 +46,7 @@ index 395d3bacdd3f..7d8140cc25a7 100644 NUM_OF_RTW89_FLAGS, }; diff --git a/drivers/net/wireless/realtek/rtw89/debug.c b/drivers/net/wireless/realtek/rtw89/debug.c -index 09c545497ec5..f93f3fee1505 100644 +index 09c545497..f93f3fee1 100644 --- a/drivers/net/wireless/realtek/rtw89/debug.c +++ b/drivers/net/wireless/realtek/rtw89/debug.c @@ -2184,6 +2184,48 @@ rtw89_debug_priv_early_h2c_set(struct file *filp, const char __user *user_buf, @@ -119,7 +119,7 @@ index 09c545497ec5..f93f3fee1505 100644 rtw89_debugfs_add_w(btc_manual); rtw89_debugfs_add_w(fw_log_manual); diff --git a/drivers/net/wireless/realtek/rtw89/fw.c b/drivers/net/wireless/realtek/rtw89/fw.c -index 76a290090507..2c9470616a1b 100644 +index bf2e18c57..c13dcf3de 100644 --- a/drivers/net/wireless/realtek/rtw89/fw.c +++ b/drivers/net/wireless/realtek/rtw89/fw.c @@ -221,6 +221,7 @@ static const struct __fw_feat_cfg fw_feat_tbl[] = { @@ -130,7 +130,7 @@ index 76a290090507..2c9470616a1b 100644 }; static void rtw89_fw_recognize_features(struct rtw89_dev *rtwdev) -@@ -2287,3 +2288,38 @@ void rtw89_store_op_chan(struct rtw89_dev *rtwdev) +@@ -2292,3 +2293,38 @@ void rtw89_store_op_chan(struct rtw89_dev *rtwdev) scan_info->op_bw = hal->current_band_width; scan_info->op_band = hal->current_band_type; } @@ -170,7 +170,7 @@ index 76a290090507..2c9470616a1b 100644 + return -EBUSY; +} diff --git a/drivers/net/wireless/realtek/rtw89/fw.h b/drivers/net/wireless/realtek/rtw89/fw.h -index 1aaec2672237..24ab249a8ece 100644 +index 1aaec2672..24ab249a8 100644 --- a/drivers/net/wireless/realtek/rtw89/fw.h +++ b/drivers/net/wireless/realtek/rtw89/fw.h @@ -1461,6 +1461,11 @@ static inline void SET_LPS_PARM_LASTRPWM(void *h2c, u32 val) @@ -206,7 +206,7 @@ index 1aaec2672237..24ab249a8ece 100644 #endif diff --git a/drivers/net/wireless/realtek/rtw89/ser.c b/drivers/net/wireless/realtek/rtw89/ser.c -index f28cd0645ad9..25d1df10f226 100644 +index f28cd0645..25d1df10f 100644 --- a/drivers/net/wireless/realtek/rtw89/ser.c +++ b/drivers/net/wireless/realtek/rtw89/ser.c @@ -619,6 +619,7 @@ static void ser_l2_reset_st_hdl(struct rtw89_ser *ser, u8 evt) diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-support-variant-of-fill_txdesc.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-support-variant-of-fill_txdesc.patch index cbbaa252d..97509b976 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-support-variant-of-fill_txdesc.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/rtw89-support-variant-of-fill_txdesc.patch @@ -1,7 +1,7 @@ -From ef9923ea88bffb6f5ca6724917706088820d6da2 Mon Sep 17 00:00:00 2001 +From 5740f0fef1d4f3f5abd7c303e33e91c0ab9f5885 Mon Sep 17 00:00:00 2001 From: Ping-Ke Shih Date: Fri, 18 Mar 2022 10:32:12 +0800 -Subject: [PATCH 416/515] rtw89: support variant of fill_txdesc +Subject: [PATCH 416/534] rtw89: support variant of fill_txdesc The txdesc is descriptor related to skb->data. The v1 version contains 8 dwords txwd_body and 6 dwords txwd_info, and the format is also different @@ -20,7 +20,7 @@ Link: https://lore.kernel.org/r/20220318023214.32411-10-pkshih@realtek.com 6 files changed, 116 insertions(+), 4 deletions(-) diff --git a/drivers/net/wireless/realtek/rtw89/core.c b/drivers/net/wireless/realtek/rtw89/core.c -index a5c13fd7d8a0..3c2cbe479197 100644 +index a5c13fd7d..3c2cbe479 100644 --- a/drivers/net/wireless/realtek/rtw89/core.c +++ b/drivers/net/wireless/realtek/rtw89/core.c @@ -897,6 +897,26 @@ static __le32 rtw89_build_txwd_body0(struct rtw89_tx_desc_info *desc_info) @@ -127,7 +127,7 @@ index a5c13fd7d8a0..3c2cbe479197 100644 { u32 dword = FIELD_PREP(AX_RXD_RPKT_LEN_MASK, desc_info->pkt_size) | diff --git a/drivers/net/wireless/realtek/rtw89/core.h b/drivers/net/wireless/realtek/rtw89/core.h -index 501381bb74ad..b5587d799bd8 100644 +index b5c4b0bb6..28038b49a 100644 --- a/drivers/net/wireless/realtek/rtw89/core.h +++ b/drivers/net/wireless/realtek/rtw89/core.h @@ -642,6 +642,17 @@ struct rtw89_txwd_body { @@ -166,7 +166,7 @@ index 501381bb74ad..b5587d799bd8 100644 u32 h2c_ctrl_reg; const u32 *h2c_regs; u32 c2h_ctrl_reg; -@@ -3514,6 +3529,16 @@ static inline void rtw89_ctrl_btg(struct rtw89_dev *rtwdev, bool btg) +@@ -3515,6 +3530,16 @@ static inline void rtw89_ctrl_btg(struct rtw89_dev *rtwdev, bool btg) chip->ops->ctrl_btg(rtwdev, btg); } @@ -183,7 +183,7 @@ index 501381bb74ad..b5587d799bd8 100644 static inline void rtw89_chip_fill_txdesc_fwcmd(struct rtw89_dev *rtwdev, struct rtw89_tx_desc_info *desc_info, -@@ -3597,6 +3622,9 @@ void rtw89_core_tx_kick_off(struct rtw89_dev *rtwdev, u8 qsel); +@@ -3598,6 +3623,9 @@ void rtw89_core_tx_kick_off(struct rtw89_dev *rtwdev, u8 qsel); void rtw89_core_fill_txdesc(struct rtw89_dev *rtwdev, struct rtw89_tx_desc_info *desc_info, void *txdesc); @@ -194,7 +194,7 @@ index 501381bb74ad..b5587d799bd8 100644 struct rtw89_tx_desc_info *desc_info, void *txdesc); diff --git a/drivers/net/wireless/realtek/rtw89/pci.c b/drivers/net/wireless/realtek/rtw89/pci.c -index 48a5feaf2722..3a27d6f8c630 100644 +index 48a5feaf2..3a27d6f8c 100644 --- a/drivers/net/wireless/realtek/rtw89/pci.c +++ b/drivers/net/wireless/realtek/rtw89/pci.c @@ -1035,8 +1035,8 @@ static int rtw89_pci_txwd_submit(struct rtw89_dev *rtwdev, @@ -235,7 +235,7 @@ index 48a5feaf2722..3a27d6f8c630 100644 return 0; diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852a.c b/drivers/net/wireless/realtek/rtw89/rtw8852a.c -index 6aa3d19a7464..a0dd4db384c6 100644 +index 6aa3d19a7..a0dd4db38 100644 --- a/drivers/net/wireless/realtek/rtw89/rtw8852a.c +++ b/drivers/net/wireless/realtek/rtw89/rtw8852a.c @@ -2021,6 +2021,7 @@ static const struct rtw89_chip_ops rtw8852a_chip_ops = { @@ -255,7 +255,7 @@ index 6aa3d19a7464..a0dd4db384c6 100644 .h2c_regs = rtw8852a_h2c_regs, .c2h_ctrl_reg = R_AX_C2HREG_CTRL, diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852c.c b/drivers/net/wireless/realtek/rtw89/rtw8852c.c -index 08a9c01a359e..df0c67c7322f 100644 +index 08a9c01a3..df0c67c73 100644 --- a/drivers/net/wireless/realtek/rtw89/rtw8852c.c +++ b/drivers/net/wireless/realtek/rtw89/rtw8852c.c @@ -492,6 +492,7 @@ static const struct rtw89_chip_ops rtw8852c_chip_ops = { @@ -275,7 +275,7 @@ index 08a9c01a359e..df0c67c7322f 100644 .h2c_regs = rtw8852c_h2c_regs, .c2h_ctrl_reg = R_AX_C2HREG_CTRL_V1, diff --git a/drivers/net/wireless/realtek/rtw89/txrx.h b/drivers/net/wireless/realtek/rtw89/txrx.h -index 4e81d6df9368..c943e4e95721 100644 +index 4e81d6df9..c943e4e95 100644 --- a/drivers/net/wireless/realtek/rtw89/txrx.h +++ b/drivers/net/wireless/realtek/rtw89/txrx.h @@ -24,6 +24,7 @@ diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/sunxi-Use-dev_err_probe-to-handle-EPROBE_DEFER-errors.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/sunxi-Use-dev_err_probe-to-handle-EPROBE_DEFER-errors.patch index 4f660d0e6..d54a54d70 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/sunxi-Use-dev_err_probe-to-handle-EPROBE_DEFER-errors.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/sunxi-Use-dev_err_probe-to-handle-EPROBE_DEFER-errors.patch @@ -1,7 +1,7 @@ -From e8db7491b61a391fdcc45823f01e6fc498d1f1b8 Mon Sep 17 00:00:00 2001 +From 21922d13fbc6d5d3dd3a60dda3c85e2cb87904b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Mon, 2 Sep 2019 14:51:17 +0200 -Subject: [PATCH 228/515] sunxi: Use dev_err_probe to handle EPROBE_DEFER +Subject: [PATCH 228/534] sunxi: Use dev_err_probe to handle EPROBE_DEFER errors This makes it easier to debug EPROBE_DEFER issues via debugfs. @@ -16,7 +16,7 @@ Signed-off-by: Ondrej Jirman 5 files changed, 25 insertions(+), 12 deletions(-) diff --git a/arch/arm/kernel/topology.c b/arch/arm/kernel/topology.c -index ef0058de432b..b87be5d007bf 100644 +index ef0058de4..b87be5d00 100644 --- a/arch/arm/kernel/topology.c +++ b/arch/arm/kernel/topology.c @@ -121,7 +121,7 @@ static void __init parse_dt_topology(void) @@ -29,10 +29,10 @@ index ef0058de432b..b87be5d007bf 100644 } diff --git a/drivers/gpu/drm/panel/panel-sitronix-st7703.c b/drivers/gpu/drm/panel/panel-sitronix-st7703.c -index 73f69c929a75..e594d4b3fff7 100644 +index bd6a4a3ae..2e0e3a86d 100644 --- a/drivers/gpu/drm/panel/panel-sitronix-st7703.c +++ b/drivers/gpu/drm/panel/panel-sitronix-st7703.c -@@ -570,7 +570,7 @@ static int st7703_probe(struct mipi_dsi_device *dsi) +@@ -588,7 +588,7 @@ static int st7703_probe(struct mipi_dsi_device *dsi) ret = mipi_dsi_attach(dsi); if (ret < 0) { @@ -42,7 +42,7 @@ index 73f69c929a75..e594d4b3fff7 100644 return ret; } diff --git a/drivers/i2c/busses/i2c-gpio.c b/drivers/i2c/busses/i2c-gpio.c -index 7a048abbf92b..12cbd0977da1 100644 +index 7a048abbf..12cbd0977 100644 --- a/drivers/i2c/busses/i2c-gpio.c +++ b/drivers/i2c/busses/i2c-gpio.c @@ -332,6 +332,13 @@ static struct gpio_desc *i2c_gpio_get_desc(struct device *dev, @@ -71,10 +71,10 @@ index 7a048abbf92b..12cbd0977da1 100644 return retdesc; } diff --git a/drivers/phy/allwinner/phy-sun4i-usb.c b/drivers/phy/allwinner/phy-sun4i-usb.c -index d5f3b42eb8ce..40a9415695be 100644 +index cd35dd7b2..eb517ab30 100644 --- a/drivers/phy/allwinner/phy-sun4i-usb.c +++ b/drivers/phy/allwinner/phy-sun4i-usb.c -@@ -708,14 +708,16 @@ static int sun4i_usb_phy_probe(struct platform_device *pdev) +@@ -740,14 +740,16 @@ static int sun4i_usb_phy_probe(struct platform_device *pdev) data->id_det_gpio = devm_gpiod_get_optional(dev, "usb0_id_det", GPIOD_IN); if (IS_ERR(data->id_det_gpio)) { @@ -93,7 +93,7 @@ index d5f3b42eb8ce..40a9415695be 100644 return PTR_ERR(data->vbus_det_gpio); } -@@ -723,7 +725,8 @@ static int sun4i_usb_phy_probe(struct platform_device *pdev) +@@ -755,7 +757,8 @@ static int sun4i_usb_phy_probe(struct platform_device *pdev) data->vbus_power_supply = devm_power_supply_get_by_phandle(dev, "usb0_vbus_power-supply"); if (IS_ERR(data->vbus_power_supply)) { @@ -103,7 +103,7 @@ index d5f3b42eb8ce..40a9415695be 100644 return PTR_ERR(data->vbus_power_supply); } -@@ -756,8 +759,8 @@ static int sun4i_usb_phy_probe(struct platform_device *pdev) +@@ -788,8 +791,8 @@ static int sun4i_usb_phy_probe(struct platform_device *pdev) phy->vbus = devm_regulator_get_optional(dev, name); if (IS_ERR(phy->vbus)) { if (PTR_ERR(phy->vbus) == -EPROBE_DEFER) { @@ -114,7 +114,7 @@ index d5f3b42eb8ce..40a9415695be 100644 name); return -EPROBE_DEFER; } -@@ -772,7 +775,8 @@ static int sun4i_usb_phy_probe(struct platform_device *pdev) +@@ -804,7 +807,8 @@ static int sun4i_usb_phy_probe(struct platform_device *pdev) phy->clk = devm_clk_get(dev, name); if (IS_ERR(phy->clk)) { @@ -125,10 +125,10 @@ index d5f3b42eb8ce..40a9415695be 100644 } diff --git a/drivers/phy/allwinner/phy-sun6i-mipi-dphy.c b/drivers/phy/allwinner/phy-sun6i-mipi-dphy.c -index f0bc87d654d4..4eae4a7c1832 100644 +index db53bbefd..d9206c663 100644 --- a/drivers/phy/allwinner/phy-sun6i-mipi-dphy.c +++ b/drivers/phy/allwinner/phy-sun6i-mipi-dphy.c -@@ -268,13 +268,15 @@ static int sun6i_dphy_probe(struct platform_device *pdev) +@@ -283,13 +283,15 @@ static int sun6i_dphy_probe(struct platform_device *pdev) dphy->regs = devm_regmap_init_mmio_clk(&pdev->dev, "bus", regs, &sun6i_dphy_regmap_config); if (IS_ERR(dphy->regs)) { diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/usb-quirks-Add-USB_QUIRK_RESET-for-Quectel-EG25G-Modem.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/usb-quirks-Add-USB_QUIRK_RESET-for-Quectel-EG25G-Modem.patch index e7202ad23..692b1fdcd 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/usb-quirks-Add-USB_QUIRK_RESET-for-Quectel-EG25G-Modem.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/usb-quirks-Add-USB_QUIRK_RESET-for-Quectel-EG25G-Modem.patch @@ -1,7 +1,7 @@ -From 62867934f6251349e1352a345f827ba8de514a36 Mon Sep 17 00:00:00 2001 +From e7ec7a3c6eb2416ee8216921cc4db97e54f1e61b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Thu, 18 Feb 2021 07:48:07 +0100 -Subject: [PATCH 168/515] usb: quirks: Add USB_QUIRK_RESET for Quectel EG25G +Subject: [PATCH 172/534] usb: quirks: Add USB_QUIRK_RESET for Quectel EG25G Modem See: https://gitlab.com/mobian1/devices/eg25-manager/-/merge_requests/5 @@ -12,10 +12,10 @@ Signed-off-by: Ondrej Jirman 1 file changed, 3 insertions(+) diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c -index 97b44a68668a..68ac6f6d7792 100644 +index f99a65a64..17c3d472f 100644 --- a/drivers/usb/core/quirks.c +++ b/drivers/usb/core/quirks.c -@@ -516,6 +516,9 @@ static const struct usb_device_id usb_quirk_list[] = { +@@ -519,6 +519,9 @@ static const struct usb_device_id usb_quirk_list[] = { /* INTEL VALUE SSD */ { USB_DEVICE(0x8086, 0xf1a5), .driver_info = USB_QUIRK_RESET_RESUME }, diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/usb-typec-mux-Check-dev_set_name-return-value.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/usb-typec-mux-Check-dev_set_name-return-value.patch deleted file mode 100644 index 3c2292481..000000000 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/usb-typec-mux-Check-dev_set_name-return-value.patch +++ /dev/null @@ -1,50 +0,0 @@ -From cc75502a1240088922c3e51ad4e34ca84246d29e Mon Sep 17 00:00:00 2001 -From: Bjorn Andersson -Date: Fri, 22 Apr 2022 15:23:47 -0700 -Subject: [PATCH 315/515] usb: typec: mux: Check dev_set_name() return value - -It's possible that dev_set_name() returns -ENOMEM, catch and handle this. - -Fixes: 3370db35193b ("usb: typec: Registering real device entries for the muxes") -Reported-by: Andy Shevchenko -Acked-by: Heikki Krogerus -Signed-off-by: Bjorn Andersson ---- - drivers/usb/typec/mux.c | 14 ++++++++++---- - 1 file changed, 10 insertions(+), 4 deletions(-) - -diff --git a/drivers/usb/typec/mux.c b/drivers/usb/typec/mux.c -index c8340de0ed49..d2aaf294b649 100644 ---- a/drivers/usb/typec/mux.c -+++ b/drivers/usb/typec/mux.c -@@ -131,8 +131,11 @@ typec_switch_register(struct device *parent, - sw->dev.class = &typec_mux_class; - sw->dev.type = &typec_switch_dev_type; - sw->dev.driver_data = desc->drvdata; -- dev_set_name(&sw->dev, "%s-switch", -- desc->name ? desc->name : dev_name(parent)); -+ ret = dev_set_name(&sw->dev, "%s-switch", desc->name ? desc->name : dev_name(parent)); -+ if (ret) { -+ put_device(&sw->dev); -+ return ERR_PTR(ret); -+ } - - ret = device_add(&sw->dev); - if (ret) { -@@ -338,8 +341,11 @@ typec_mux_register(struct device *parent, const struct typec_mux_desc *desc) - mux->dev.class = &typec_mux_class; - mux->dev.type = &typec_mux_dev_type; - mux->dev.driver_data = desc->drvdata; -- dev_set_name(&mux->dev, "%s-mux", -- desc->name ? desc->name : dev_name(parent)); -+ ret = dev_set_name(&mux->dev, "%s-mux", desc->name ? desc->name : dev_name(parent)); -+ if (ret) { -+ put_device(&mux->dev); -+ return ERR_PTR(ret); -+ } - - ret = device_add(&mux->dev); - if (ret) { --- -2.35.3 - diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/usb-typec-typec-extcon-Add-typec-extcon-bridge-driver.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/usb-typec-typec-extcon-Add-typec-extcon-bridge-driver.patch index 3ce7ad358..c46a0d654 100644 --- a/patch/kernel/archive/sunxi-5.18/patches.megous/usb-typec-typec-extcon-Add-typec-extcon-bridge-driver.patch +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/usb-typec-typec-extcon-Add-typec-extcon-bridge-driver.patch @@ -1,7 +1,7 @@ -From 10eea403a29590fa6897ba8883d0686bc4394f0c Mon Sep 17 00:00:00 2001 +From be2005c49b6b8166a9993f7fe92598979a05b998 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Sun, 7 Nov 2021 19:24:40 +0100 -Subject: [PATCH 365/515] usb: typec: typec-extcon: Add typec -> extcon bridge +Subject: [PATCH 370/534] usb: typec: typec-extcon: Add typec -> extcon bridge driver This bridge connects standard Type C port interfaces for controling @@ -17,10 +17,10 @@ Signed-off-by: Ondrej Jirman create mode 100644 drivers/usb/typec/typec-extcon.c diff --git a/drivers/usb/typec/Kconfig b/drivers/usb/typec/Kconfig -index ba24847fb245..4799cf488fe9 100644 +index 5c151a976..b718a3102 100644 --- a/drivers/usb/typec/Kconfig +++ b/drivers/usb/typec/Kconfig -@@ -111,6 +111,13 @@ config TYPEC_WUSB3801 +@@ -122,6 +122,13 @@ config TYPEC_WUSB3801 If you choose to build this driver as a dynamically linked module, the module will be called wusb3801.ko. @@ -35,10 +35,10 @@ index ba24847fb245..4799cf488fe9 100644 source "drivers/usb/typec/altmodes/Kconfig" diff --git a/drivers/usb/typec/Makefile b/drivers/usb/typec/Makefile -index 43626acc0aaf..cf1182ef5d55 100644 +index 9f0da3328..e2ca36437 100644 --- a/drivers/usb/typec/Makefile +++ b/drivers/usb/typec/Makefile -@@ -11,4 +11,5 @@ obj-$(CONFIG_TYPEC_QCOM_PMIC) += qcom-pmic-typec.o +@@ -12,4 +12,5 @@ obj-$(CONFIG_TYPEC_QCOM_PMIC) += qcom-pmic-typec.o obj-$(CONFIG_TYPEC_STUSB160X) += stusb160x.o obj-$(CONFIG_TYPEC_RT1719) += rt1719.o obj-$(CONFIG_TYPEC_WUSB3801) += wusb3801.o @@ -46,7 +46,7 @@ index 43626acc0aaf..cf1182ef5d55 100644 obj-$(CONFIG_TYPEC) += mux/ diff --git a/drivers/usb/typec/typec-extcon.c b/drivers/usb/typec/typec-extcon.c new file mode 100644 -index 000000000000..e460f35c8390 +index 000000000..e460f35c8 --- /dev/null +++ b/drivers/usb/typec/typec-extcon.c @@ -0,0 +1,332 @@ diff --git a/patch/kernel/archive/sunxi-5.18/patches.megous/wifi-rtw89-support-MULTI_BSSID-and-correct-BSSID-mask-of-H2C.patch b/patch/kernel/archive/sunxi-5.18/patches.megous/wifi-rtw89-support-MULTI_BSSID-and-correct-BSSID-mask-of-H2C.patch new file mode 100644 index 000000000..7ec23f320 --- /dev/null +++ b/patch/kernel/archive/sunxi-5.18/patches.megous/wifi-rtw89-support-MULTI_BSSID-and-correct-BSSID-mask-of-H2C.patch @@ -0,0 +1,86 @@ +From dc383c2b074bbe44ff632a43e6c5ad957b7ccccf Mon Sep 17 00:00:00 2001 +From: Ping-Ke Shih +Date: Mon, 30 May 2022 19:27:43 +0800 +Subject: [PATCH 534/538] wifi: rtw89: support MULTI_BSSID and correct BSSID + mask of H2C + +The BSSID mask of H2C is used to match BSSID of receiving packets. +Normally, we set six bits BSSID mask to exactly match BSSID of packets +sent by target AP. After we support multiple BSSID, it could connect a +nontransmitted BSSID, so we can only match first five bytes of BSSID. +That means we could possibly receive other AP's packets if only the last +byte of BSSID is different from target AP. + +Signed-off-by: Ping-Ke Shih +Signed-off-by: Kalle Valo +Link: https://lore.kernel.org/r/20220530112743.106857-1-pkshih@realtek.com +--- + drivers/net/wireless/realtek/rtw89/cam.c | 7 +++++++ + drivers/net/wireless/realtek/rtw89/cam.h | 8 ++++++++ + drivers/net/wireless/realtek/rtw89/core.c | 1 + + 3 files changed, 16 insertions(+) + +diff --git a/drivers/net/wireless/realtek/rtw89/cam.c b/drivers/net/wireless/realtek/rtw89/cam.c +index 8a26adeb23fb..db3c55f0ccd0 100644 +--- a/drivers/net/wireless/realtek/rtw89/cam.c ++++ b/drivers/net/wireless/realtek/rtw89/cam.c +@@ -602,11 +602,18 @@ int rtw89_cam_fill_bssid_cam_info(struct rtw89_dev *rtwdev, + struct ieee80211_vif *vif = rtwvif_to_vif(rtwvif); + struct rtw89_bssid_cam_entry *bssid_cam = &rtwvif->bssid_cam; + u8 bss_color = vif->bss_conf.he_bss_color.color; ++ u8 bss_mask; ++ ++ if (vif->bss_conf.nontransmitted) ++ bss_mask = RTW89_BSSID_MATCH_5_BYTES; ++ else ++ bss_mask = RTW89_BSSID_MATCH_ALL; + + FWCMD_SET_ADDR_BSSID_IDX(cmd, bssid_cam->bssid_cam_idx); + FWCMD_SET_ADDR_BSSID_OFFSET(cmd, bssid_cam->offset); + FWCMD_SET_ADDR_BSSID_LEN(cmd, bssid_cam->len); + FWCMD_SET_ADDR_BSSID_VALID(cmd, bssid_cam->valid); ++ FWCMD_SET_ADDR_BSSID_MASK(cmd, bss_mask); + FWCMD_SET_ADDR_BSSID_BB_SEL(cmd, bssid_cam->phy_idx); + FWCMD_SET_ADDR_BSSID_BSS_COLOR(cmd, bss_color); + +diff --git a/drivers/net/wireless/realtek/rtw89/cam.h b/drivers/net/wireless/realtek/rtw89/cam.h +index a3931d3e40d2..74a6c4748d64 100644 +--- a/drivers/net/wireless/realtek/rtw89/cam.h ++++ b/drivers/net/wireless/realtek/rtw89/cam.h +@@ -9,6 +9,9 @@ + + #define RTW89_SEC_CAM_LEN 20 + ++#define RTW89_BSSID_MATCH_ALL GENMASK(5, 0) ++#define RTW89_BSSID_MATCH_5_BYTES GENMASK(4, 0) ++ + static inline void FWCMD_SET_ADDR_IDX(void *cmd, u32 value) + { + le32p_replace_bits((__le32 *)(cmd) + 1, value, GENMASK(7, 0)); +@@ -309,6 +312,11 @@ static inline void FWCMD_SET_ADDR_BSSID_BB_SEL(void *cmd, u32 value) + le32p_replace_bits((__le32 *)(cmd) + 13, value, BIT(1)); + } + ++static inline void FWCMD_SET_ADDR_BSSID_MASK(void *cmd, u32 value) ++{ ++ le32p_replace_bits((__le32 *)(cmd) + 13, value, GENMASK(7, 2)); ++} ++ + static inline void FWCMD_SET_ADDR_BSSID_BSS_COLOR(void *cmd, u32 value) + { + le32p_replace_bits((__le32 *)(cmd) + 13, value, GENMASK(13, 8)); +diff --git a/drivers/net/wireless/realtek/rtw89/core.c b/drivers/net/wireless/realtek/rtw89/core.c +index 631dcdff4d0d..97731c7a3fd6 100644 +--- a/drivers/net/wireless/realtek/rtw89/core.c ++++ b/drivers/net/wireless/realtek/rtw89/core.c +@@ -3011,6 +3011,7 @@ static int rtw89_core_register_hw(struct rtw89_dev *rtwdev) + ieee80211_hw_set(hw, SUPPORTS_PS); + ieee80211_hw_set(hw, SUPPORTS_DYNAMIC_PS); + ieee80211_hw_set(hw, SINGLE_SCAN_ON_ALL_BANDS); ++ ieee80211_hw_set(hw, SUPPORTS_MULTI_BSSID); + + hw->wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION) | + BIT(NL80211_IFTYPE_AP); +-- +2.35.3 + diff --git a/patch/kernel/archive/sunxi-5.18/series.conf b/patch/kernel/archive/sunxi-5.18/series.conf index 8bd08ec15..ea4f659ae 100644 --- a/patch/kernel/archive/sunxi-5.18/series.conf +++ b/patch/kernel/archive/sunxi-5.18/series.conf @@ -3,6 +3,9 @@ # # https://github.com/megous/linux # +# tag: orange-pi-5.18-20220526-2012 +# tag: orange-pi-5.18-20220609-1318 +# tag: orange-pi-5.18-20220615-1100 patches.megous/dt-bindings-input-gpio-vibrator-Don-t-require-enable-gpios.patch patches.megous/dt-bindings-leds-Add-a-binding-for-AXP813-charger-led.patch patches.megous/dt-bindings-media-Add-bindings-for-Himax-HM5065-camera-sensor.patch @@ -322,7 +325,6 @@ patches.megous/media-platform-rkisp1-Fix-detection-of-sensor-subdevices.patch patches.megous/device-property-Add-helper-to-match-multiple-connections.patch patches.megous/device-property-Use-multi-connection-matchers-for-single-case.patch - patches.megous/usb-typec-mux-Check-dev_set_name-return-value.patch patches.megous/usb-typec-mux-Introduce-indirection.patch patches.megous/usb-typec-mux-Allow-multiple-mux_devs-per-mux.patch patches.megous/sdhci-arasan-Add-runtime-PM-support.patch @@ -390,11 +392,9 @@ patches.megous/input-pinephone-keyboard-Allow-disabling-the-keyboard-input.patch patches.megous/rtw88-change-idle-mode-condition-during-hw_scan.patch patches.megous/rtw88-add-ieee80211-sta_rc_update-ops.patch -- patches.megous/rtw88-fix-incorrect-frequency-reported.patch patches.megous/rtw88-Add-update-beacon-flow-for-AP-mode.patch patches.megous/rtw88-8821c-Enable-TX-report-for-management-frames.patch patches.megous/rtw88-do-PHY-calibration-while-starting-AP.patch -- patches.megous/rtw88-8821c-fix-debugfs-rssi-value.patch patches.megous/rtw88-8821ce-add-support-for-device-ID-0xb821.patch patches.megous/rtw88-8821ce-Disable-PCIe-ASPM-L1-for-8821CE-using-chip-ID.patch patches.megous/rtw88-fix-uninitialized-tim_offset-warning.patch @@ -405,7 +405,6 @@ patches.megous/rtw88-fix-hw-scan-may-cause-disconnect-issue.patch patches.megous/rtw88-remove-a-copy-of-the-NAPI_POLL_WEIGHT-define.patch patches.megous/rtw88-adjust-adaptivity-option-to-1.patch -- patches.megous/rtw89-ser-fix-CAM-leaks-occurring-in-L2-reset.patch patches.megous/rtw89-mac-move-table-of-mem-base-addr-to-common.patch patches.megous/rtw89-mac-correct-decision-on-error-status-by-scenario.patch patches.megous/rtw89-ser-control-hci-interrupts-on-off-by-state.patch @@ -445,7 +444,6 @@ patches.megous/rtw89-change-idle-mode-condition-during-hw_scan.patch patches.megous/rtw89-packet-offload-handler-to-avoid-warning.patch patches.megous/rtw89-coex-Add-case-for-scan-offload.patch -- patches.megous/rtw89-fix-misconfiguration-on-hw_scan-channel-time.patch patches.megous/rtw89-ser-fix-unannotated-fall-through.patch patches.megous/rtw89-ser-configure-D-MAC-interrupt-mask.patch patches.megous/rtw89-ser-configure-C-MAC-interrupt-mask.patch @@ -510,7 +508,6 @@ patches.megous/rtw89-add-debug-entry-to-dump-BSSID-CAM.patch patches.megous/rtw89-add-ieee80211-sta_rc_update-ops.patch patches.megous/rtw89-8852c-set-TX-antenna-path.patch -- patches.megous/rtw89-cfo-check-mac_id-to-avoid-out-of-bounds.patch patches.megous/rtw89-8852c-update-txpwr-tables-to-HALRF_027_00_052.patch patches.megous/rtw89-convert-rtw89_band-to-nl80211_band-precisely.patch patches.megous/rtw89-pci-only-mask-out-INT-indicator-register-for-disable-inte.patch @@ -521,7 +518,6 @@ patches.megous/iio-af8133j-Cleanup-probe-and-power-up-down.patch patches.megous/iio-af8133j-Add-runtime-power-management.patch patches.megous/rtw88-add-a-work-to-correct-atomic-scheduling-warning-of-set_ti.patch -# tag: orange-pi-5.18-20220526-2012 patches.megous/power-supply-rk818-battery-Speed-up-battery-current-readout.patch patches.megous/leds-sgm3140-Add-missing-timer-cleanup-and-flash-gpio-control.patch patches.megous/arm64-dts-rk3399-pinephone-pro-Use-4-lane-mode-for-selfie-camer.patch @@ -539,7 +535,11 @@ patches.megous/wifi-rtw88-Fix-Sparse-warning-for-rtw8821c_hw_spec.patch patches.megous/media-imx258-Add-debug-register-access.patch patches.megous/Import-pgwipeout-s-pcie-regs-ranges.patch -# tag: orange-pi-5.18-20220609-1318 + patches.megous/wifi-rtw89-support-MULTI_BSSID-and-correct-BSSID-mask-of-H2C.patch + patches.megous/rtw89-8852c-add-trigger-frame-counter.patch + patches.megous/rtw89-add-new-state-to-CFO-state-machine-for-UL-OFDMA.patch + patches.megous/Revert-rtw89-8852c-add-trigger-frame-counter.patch + patches.megous/Revert-rtw89-add-new-state-to-CFO-state-machine-for-UL-OFDMA.patch ############################################################################ # diff --git a/patch/kernel/archive/sunxi-5.18/series.megous b/patch/kernel/archive/sunxi-5.18/series.megous index acefc506d..8793eed9b 100644 --- a/patch/kernel/archive/sunxi-5.18/series.megous +++ b/patch/kernel/archive/sunxi-5.18/series.megous @@ -3,6 +3,9 @@ # # https://github.com/megous/linux # +# tag: orange-pi-5.18-20220526-2012 +# tag: orange-pi-5.18-20220609-1318 +# tag: orange-pi-5.18-20220615-1100 patches.megous/dt-bindings-input-gpio-vibrator-Don-t-require-enable-gpios.patch patches.megous/dt-bindings-leds-Add-a-binding-for-AXP813-charger-led.patch patches.megous/dt-bindings-media-Add-bindings-for-Himax-HM5065-camera-sensor.patch @@ -322,7 +325,6 @@ patches.megous/media-platform-rkisp1-Fix-detection-of-sensor-subdevices.patch patches.megous/device-property-Add-helper-to-match-multiple-connections.patch patches.megous/device-property-Use-multi-connection-matchers-for-single-case.patch - patches.megous/usb-typec-mux-Check-dev_set_name-return-value.patch patches.megous/usb-typec-mux-Introduce-indirection.patch patches.megous/usb-typec-mux-Allow-multiple-mux_devs-per-mux.patch patches.megous/sdhci-arasan-Add-runtime-PM-support.patch @@ -390,11 +392,9 @@ patches.megous/input-pinephone-keyboard-Allow-disabling-the-keyboard-input.patch patches.megous/rtw88-change-idle-mode-condition-during-hw_scan.patch patches.megous/rtw88-add-ieee80211-sta_rc_update-ops.patch -- patches.megous/rtw88-fix-incorrect-frequency-reported.patch patches.megous/rtw88-Add-update-beacon-flow-for-AP-mode.patch patches.megous/rtw88-8821c-Enable-TX-report-for-management-frames.patch patches.megous/rtw88-do-PHY-calibration-while-starting-AP.patch -- patches.megous/rtw88-8821c-fix-debugfs-rssi-value.patch patches.megous/rtw88-8821ce-add-support-for-device-ID-0xb821.patch patches.megous/rtw88-8821ce-Disable-PCIe-ASPM-L1-for-8821CE-using-chip-ID.patch patches.megous/rtw88-fix-uninitialized-tim_offset-warning.patch @@ -405,7 +405,6 @@ patches.megous/rtw88-fix-hw-scan-may-cause-disconnect-issue.patch patches.megous/rtw88-remove-a-copy-of-the-NAPI_POLL_WEIGHT-define.patch patches.megous/rtw88-adjust-adaptivity-option-to-1.patch -- patches.megous/rtw89-ser-fix-CAM-leaks-occurring-in-L2-reset.patch patches.megous/rtw89-mac-move-table-of-mem-base-addr-to-common.patch patches.megous/rtw89-mac-correct-decision-on-error-status-by-scenario.patch patches.megous/rtw89-ser-control-hci-interrupts-on-off-by-state.patch @@ -445,7 +444,6 @@ patches.megous/rtw89-change-idle-mode-condition-during-hw_scan.patch patches.megous/rtw89-packet-offload-handler-to-avoid-warning.patch patches.megous/rtw89-coex-Add-case-for-scan-offload.patch -- patches.megous/rtw89-fix-misconfiguration-on-hw_scan-channel-time.patch patches.megous/rtw89-ser-fix-unannotated-fall-through.patch patches.megous/rtw89-ser-configure-D-MAC-interrupt-mask.patch patches.megous/rtw89-ser-configure-C-MAC-interrupt-mask.patch @@ -510,7 +508,6 @@ patches.megous/rtw89-add-debug-entry-to-dump-BSSID-CAM.patch patches.megous/rtw89-add-ieee80211-sta_rc_update-ops.patch patches.megous/rtw89-8852c-set-TX-antenna-path.patch -- patches.megous/rtw89-cfo-check-mac_id-to-avoid-out-of-bounds.patch patches.megous/rtw89-8852c-update-txpwr-tables-to-HALRF_027_00_052.patch patches.megous/rtw89-convert-rtw89_band-to-nl80211_band-precisely.patch patches.megous/rtw89-pci-only-mask-out-INT-indicator-register-for-disable-inte.patch @@ -521,7 +518,6 @@ patches.megous/iio-af8133j-Cleanup-probe-and-power-up-down.patch patches.megous/iio-af8133j-Add-runtime-power-management.patch patches.megous/rtw88-add-a-work-to-correct-atomic-scheduling-warning-of-set_ti.patch -# tag: orange-pi-5.18-20220526-2012 patches.megous/power-supply-rk818-battery-Speed-up-battery-current-readout.patch patches.megous/leds-sgm3140-Add-missing-timer-cleanup-and-flash-gpio-control.patch patches.megous/arm64-dts-rk3399-pinephone-pro-Use-4-lane-mode-for-selfie-camer.patch @@ -539,4 +535,8 @@ patches.megous/wifi-rtw88-Fix-Sparse-warning-for-rtw8821c_hw_spec.patch patches.megous/media-imx258-Add-debug-register-access.patch patches.megous/Import-pgwipeout-s-pcie-regs-ranges.patch -# tag: orange-pi-5.18-20220609-1318 + patches.megous/wifi-rtw89-support-MULTI_BSSID-and-correct-BSSID-mask-of-H2C.patch + patches.megous/rtw89-8852c-add-trigger-frame-counter.patch + patches.megous/rtw89-add-new-state-to-CFO-state-machine-for-UL-OFDMA.patch + patches.megous/Revert-rtw89-8852c-add-trigger-frame-counter.patch + patches.megous/Revert-rtw89-add-new-state-to-CFO-state-machine-for-UL-OFDMA.patch diff --git a/tools/mk_format_patch b/tools/mk_format_patch index 3f4eee773..6596a182f 100755 --- a/tools/mk_format_patch +++ b/tools/mk_format_patch @@ -55,12 +55,13 @@ mk_patch_series () local target_name local target_dir local mess="" + numbered=${numbered:-false} echo -e "\nLOCAL GIT URL =: [\033[1;34m$url_t\033[0m]" echo -e "revision range =: [\033[1;34m$range\033[0m]" echo -e "target folder for patches =: [\033[1;34m$target\033[0m]" echo -e "prefix =: [\033[1;34m$prefix\033[0m]" - echo -e "numbered =: [\033[1;31m${numbered:-false}\033[0m]\n" + echo -e "numbered =: [\033[1;31m${numbered}\033[0m]\n" [ -d $url_t ] || mess+=" bad url [$url_t]\n" [ "$(git -C $url_t rev-parse --git-dir 2>/dev/null)" != ".git" ] && \