--- /dev/null
+From 91d2443f3f15475f39b32d65f04d6d528131081a Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Fri, 13 Jan 2023 12:41:26 +0100
+Subject: ACPI: video: Add backlight=native DMI quirk for Acer Aspire 4810T
+
+From: Hans de Goede <hdegoede@redhat.com>
+
+[ Upstream commit 8ba5fc4c154aeb3b4620f05543cce426c62ed2de ]
+
+The Acer Aspire 4810T predates Windows 8, so it defaults to using
+acpi_video# for backlight control, but this is non functional on
+this model.
+
+Add a DMI quirk to use the native backlight interface which does
+work properly.
+
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/acpi/video_detect.c | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/drivers/acpi/video_detect.c b/drivers/acpi/video_detect.c
+index 5c32b318c173..b48f85c3791e 100644
+--- a/drivers/acpi/video_detect.c
++++ b/drivers/acpi/video_detect.c
+@@ -493,6 +493,14 @@ static const struct dmi_system_id video_detect_dmi_table[] = {
+ DMI_MATCH(DMI_PRODUCT_NAME, "Precision 7510"),
+ },
+ },
++ {
++ .callback = video_detect_force_native,
++ /* Acer Aspire 4810T */
++ .matches = {
++ DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
++ DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 4810T"),
++ },
++ },
+ {
+ .callback = video_detect_force_native,
+ /* Acer Aspire 5738z */
+--
+2.39.0
+
--- /dev/null
+From c2af937e65d567ba463d1076b5c4205dcd2f5e0c Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Fri, 2 Dec 2022 17:49:18 +0100
+Subject: ARM: dts: imx: Fix pca9547 i2c-mux node name
+
+From: Geert Uytterhoeven <geert+renesas@glider.be>
+
+[ Upstream commit f78985f9f58380eec37f82c8a2c765aa7670fc29 ]
+
+"make dtbs_check":
+
+ arch/arm/boot/dts/imx53-ppd.dtb: i2c-switch@70: $nodename:0: 'i2c-switch@70' does not match '^(i2c-?)?mux'
+ From schema: Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.yaml
+ arch/arm/boot/dts/imx53-ppd.dtb: i2c-switch@70: Unevaluated properties are not allowed ('#address-cells', '#size-cells', 'i2c@0', 'i2c@1', 'i2c@2', 'i2c@3', 'i2c@4', 'i2c@5', 'i2c@6', 'i2c@7' were unexpected)
+ From schema: Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.yaml
+
+Fix this by renaming the PCA9547 node to "i2c-mux", to match the I2C bus
+multiplexer/switch DT bindings and the Generic Names Recommendation in
+the Devicetree Specification.
+
+Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
+Signed-off-by: Shawn Guo <shawnguo@kernel.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ arch/arm/boot/dts/imx53-ppd.dts | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/arch/arm/boot/dts/imx53-ppd.dts b/arch/arm/boot/dts/imx53-ppd.dts
+index 37d0cffea99c..70c4a4852256 100644
+--- a/arch/arm/boot/dts/imx53-ppd.dts
++++ b/arch/arm/boot/dts/imx53-ppd.dts
+@@ -488,7 +488,7 @@ &i2c1 {
+ scl-gpios = <&gpio3 21 GPIO_ACTIVE_HIGH>;
+ status = "okay";
+
+- i2c-switch@70 {
++ i2c-mux@70 {
+ compatible = "nxp,pca9547";
+ #address-cells = <1>;
+ #size-cells = <0>;
+--
+2.39.0
+
--- /dev/null
+From ae8e10fbeefb199c73ac0664300bda7cda1d3491 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Fri, 2 Dec 2022 17:49:21 +0100
+Subject: ARM: dts: vf610: Fix pca9548 i2c-mux node names
+
+From: Geert Uytterhoeven <geert+renesas@glider.be>
+
+[ Upstream commit 42825d1f269355d63554ab3c3762611e4d8053e9 ]
+
+"make dtbs_check":
+
+ arch/arm/boot/dts/vf610-zii-dev-rev-b.dtb: tca9548@70: $nodename:0: 'tca9548@70' does not match '^(i2c-?)?mux'
+ From schema: Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.yaml
+ arch/arm/boot/dts/vf610-zii-dev-rev-b.dtb: tca9548@70: Unevaluated properties are not allowed ('#address-cells', '#size-cells', 'i2c@0', 'i2c@1', 'i2c@2', 'i2c@3', 'i2c@4' were unexpected)
+ From schema: /scratch/geert/linux/linux-renesas/Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.yaml
+ ...
+
+Fix this by renaming PCA9548 nodes to "i2c-mux", to match the I2C bus
+multiplexer/switch DT bindings and the Generic Names Recommendation in
+the Devicetree Specification.
+
+Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
+Signed-off-by: Shawn Guo <shawnguo@kernel.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ arch/arm/boot/dts/vf610-zii-dev-rev-b.dts | 2 +-
+ arch/arm/boot/dts/vf610-zii-dev-rev-c.dts | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/arch/arm/boot/dts/vf610-zii-dev-rev-b.dts b/arch/arm/boot/dts/vf610-zii-dev-rev-b.dts
+index 42ed4a04a12e..6280c5e86a12 100644
+--- a/arch/arm/boot/dts/vf610-zii-dev-rev-b.dts
++++ b/arch/arm/boot/dts/vf610-zii-dev-rev-b.dts
+@@ -345,7 +345,7 @@ gpio6: io-expander@22 {
+ };
+
+ &i2c2 {
+- tca9548@70 {
++ i2c-mux@70 {
+ compatible = "nxp,pca9548";
+ pinctrl-0 = <&pinctrl_i2c_mux_reset>;
+ pinctrl-names = "default";
+diff --git a/arch/arm/boot/dts/vf610-zii-dev-rev-c.dts b/arch/arm/boot/dts/vf610-zii-dev-rev-c.dts
+index de79dcfd32e6..ba2001f37315 100644
+--- a/arch/arm/boot/dts/vf610-zii-dev-rev-c.dts
++++ b/arch/arm/boot/dts/vf610-zii-dev-rev-c.dts
+@@ -340,7 +340,7 @@ eeprom@50 {
+ };
+
+ &i2c2 {
+- tca9548@70 {
++ i2c-mux@70 {
+ compatible = "nxp,pca9548";
+ pinctrl-0 = <&pinctrl_i2c_mux_reset>;
+ pinctrl-names = "default";
+--
+2.39.0
+
--- /dev/null
+From fc98eac7422e4929caa8c7268e206d5e3e17b12c Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Tue, 13 Dec 2022 22:06:49 +0100
+Subject: ARM: omap1: fix building gpio15xx
+
+From: Arnd Bergmann <arnd@arndb.de>
+
+[ Upstream commit 9d46ce57f4d1c626bb48170226ea5e35deb5877c ]
+
+In some randconfig builds, the asm/irq.h header is not included
+in gpio15xx.c, so add an explicit include to avoid a build fialure:
+
+In file included from arch/arm/mach-omap1/gpio15xx.c:15:
+arch/arm/mach-omap1/irqs.h:99:34: error: 'NR_IRQS_LEGACY' undeclared here (not in a function)
+ 99 | #define IH2_BASE (NR_IRQS_LEGACY + 32)
+ | ^~~~~~~~~~~~~~
+arch/arm/mach-omap1/irqs.h:105:38: note: in expansion of macro 'IH2_BASE'
+ 105 | #define INT_MPUIO (5 + IH2_BASE)
+ | ^~~~~~~~
+arch/arm/mach-omap1/gpio15xx.c:28:27: note: in expansion of macro 'INT_MPUIO'
+ 28 | .start = INT_MPUIO,
+ | ^~~~~~~~~
+
+Acked-by: Aaro Koskinen <aaro.koskinen@iki.fi>
+Signed-off-by: Arnd Bergmann <arnd@arndb.de>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ arch/arm/mach-omap1/gpio15xx.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/arch/arm/mach-omap1/gpio15xx.c b/arch/arm/mach-omap1/gpio15xx.c
+index c675f11de99d..61fa26efd865 100644
+--- a/arch/arm/mach-omap1/gpio15xx.c
++++ b/arch/arm/mach-omap1/gpio15xx.c
+@@ -11,6 +11,7 @@
+ #include <linux/gpio.h>
+ #include <linux/platform_data/gpio-omap.h>
+ #include <linux/soc/ti/omap1-soc.h>
++#include <asm/irq.h>
+
+ #include "irqs.h"
+
+--
+2.39.0
+
--- /dev/null
+From 537bfc262a5ba4093285e74ef0f9934cb2c6bf3e Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Fri, 2 Dec 2022 17:49:22 +0100
+Subject: arm64: dts: freescale: Fix pca954x i2c-mux node names
+
+From: Geert Uytterhoeven <geert+renesas@glider.be>
+
+[ Upstream commit b025b4f5c288e29bbea421613a5b4eacf9261fbb ]
+
+"make dtbs_check":
+
+ arch/arm64/boot/dts/freescale/fsl-ls1012a-qds.dtb: pca9547@77: $nodename:0: 'pca9547@77' does not match '^(i2c-?)?mux'
+ From schema: Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.yaml
+ arch/arm64/boot/dts/freescale/fsl-ls1012a-qds.dtb: pca9547@77: Unevaluated properties are not allowed ('#address-cells', '#size-cells', 'i2c@4' were unexpected)
+ From schema: Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.yaml
+ ...
+
+Fix this by renaming PCA954x nodes to "i2c-mux", to match the I2C bus
+multiplexer/switch DT bindings and the Generic Names Recommendation in
+the Devicetree Specification.
+
+Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
+Signed-off-by: Shawn Guo <shawnguo@kernel.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ arch/arm64/boot/dts/freescale/fsl-ls1012a-qds.dts | 2 +-
+ arch/arm64/boot/dts/freescale/fsl-ls1043a-qds.dts | 2 +-
+ arch/arm64/boot/dts/freescale/fsl-ls1046a-qds.dts | 2 +-
+ arch/arm64/boot/dts/freescale/fsl-ls1088a-qds.dts | 2 +-
+ arch/arm64/boot/dts/freescale/fsl-ls1088a-rdb.dts | 2 +-
+ arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts | 2 +-
+ arch/arm64/boot/dts/freescale/fsl-ls208xa-qds.dtsi | 2 +-
+ arch/arm64/boot/dts/freescale/fsl-ls208xa-rdb.dtsi | 2 +-
+ arch/arm64/boot/dts/freescale/fsl-lx2160a-cex7.dtsi | 2 +-
+ arch/arm64/boot/dts/freescale/imx8mm-nitrogen-r2.dts | 2 +-
+ arch/arm64/boot/dts/freescale/imx8mq-nitrogen.dts | 4 ++--
+ arch/arm64/boot/dts/freescale/imx8qxp-mek.dts | 2 +-
+ 12 files changed, 13 insertions(+), 13 deletions(-)
+
+diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1012a-qds.dts b/arch/arm64/boot/dts/freescale/fsl-ls1012a-qds.dts
+index 5a8d85a7d161..bbdf989058ff 100644
+--- a/arch/arm64/boot/dts/freescale/fsl-ls1012a-qds.dts
++++ b/arch/arm64/boot/dts/freescale/fsl-ls1012a-qds.dts
+@@ -110,7 +110,7 @@ &esdhc1 {
+ &i2c0 {
+ status = "okay";
+
+- pca9547@77 {
++ i2c-mux@77 {
+ compatible = "nxp,pca9547";
+ reg = <0x77>;
+ #address-cells = <1>;
+diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1043a-qds.dts b/arch/arm64/boot/dts/freescale/fsl-ls1043a-qds.dts
+index 9b726c2a4842..dda27ed7aaf2 100644
+--- a/arch/arm64/boot/dts/freescale/fsl-ls1043a-qds.dts
++++ b/arch/arm64/boot/dts/freescale/fsl-ls1043a-qds.dts
+@@ -89,7 +89,7 @@ fpga: board-control@2,0 {
+ &i2c0 {
+ status = "okay";
+
+- pca9547@77 {
++ i2c-mux@77 {
+ compatible = "nxp,pca9547";
+ reg = <0x77>;
+ #address-cells = <1>;
+diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1046a-qds.dts b/arch/arm64/boot/dts/freescale/fsl-ls1046a-qds.dts
+index b2fcbba60d3a..3b0ed9305f2b 100644
+--- a/arch/arm64/boot/dts/freescale/fsl-ls1046a-qds.dts
++++ b/arch/arm64/boot/dts/freescale/fsl-ls1046a-qds.dts
+@@ -88,7 +88,7 @@ &duart1 {
+ &i2c0 {
+ status = "okay";
+
+- pca9547@77 {
++ i2c-mux@77 {
+ compatible = "nxp,pca9547";
+ reg = <0x77>;
+ #address-cells = <1>;
+diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1088a-qds.dts b/arch/arm64/boot/dts/freescale/fsl-ls1088a-qds.dts
+index 41d8b15f25a5..aa52ff73ff9e 100644
+--- a/arch/arm64/boot/dts/freescale/fsl-ls1088a-qds.dts
++++ b/arch/arm64/boot/dts/freescale/fsl-ls1088a-qds.dts
+@@ -53,7 +53,7 @@ flash@2 {
+ &i2c0 {
+ status = "okay";
+
+- i2c-switch@77 {
++ i2c-mux@77 {
+ compatible = "nxp,pca9547";
+ reg = <0x77>;
+ #address-cells = <1>;
+diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1088a-rdb.dts b/arch/arm64/boot/dts/freescale/fsl-ls1088a-rdb.dts
+index 1bfbce69cc8b..ee8e932628d1 100644
+--- a/arch/arm64/boot/dts/freescale/fsl-ls1088a-rdb.dts
++++ b/arch/arm64/boot/dts/freescale/fsl-ls1088a-rdb.dts
+@@ -136,7 +136,7 @@ mdio2_aquantia_phy: ethernet-phy@0 {
+ &i2c0 {
+ status = "okay";
+
+- i2c-switch@77 {
++ i2c-mux@77 {
+ compatible = "nxp,pca9547";
+ reg = <0x77>;
+ #address-cells = <1>;
+diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts b/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts
+index ef6c8967533e..d4867d6cf47c 100644
+--- a/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts
++++ b/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts
+@@ -245,7 +245,7 @@ rx8035: rtc@32 {
+ &i2c3 {
+ status = "okay";
+
+- i2c-switch@70 {
++ i2c-mux@70 {
+ compatible = "nxp,pca9540";
+ #address-cells = <1>;
+ #size-cells = <0>;
+diff --git a/arch/arm64/boot/dts/freescale/fsl-ls208xa-qds.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls208xa-qds.dtsi
+index f598669e742f..52c5a43b30a0 100644
+--- a/arch/arm64/boot/dts/freescale/fsl-ls208xa-qds.dtsi
++++ b/arch/arm64/boot/dts/freescale/fsl-ls208xa-qds.dtsi
+@@ -103,7 +103,7 @@ mdio0_phy15: mdio-phy3@1f {
+
+ &i2c0 {
+ status = "okay";
+- pca9547@77 {
++ i2c-mux@77 {
+ compatible = "nxp,pca9547";
+ reg = <0x77>;
+ #address-cells = <1>;
+diff --git a/arch/arm64/boot/dts/freescale/fsl-ls208xa-rdb.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls208xa-rdb.dtsi
+index 3d9647b3da14..537cecb13dd0 100644
+--- a/arch/arm64/boot/dts/freescale/fsl-ls208xa-rdb.dtsi
++++ b/arch/arm64/boot/dts/freescale/fsl-ls208xa-rdb.dtsi
+@@ -44,7 +44,7 @@ cpld@3,0 {
+
+ &i2c0 {
+ status = "okay";
+- pca9547@75 {
++ i2c-mux@75 {
+ compatible = "nxp,pca9547";
+ reg = <0x75>;
+ #address-cells = <1>;
+diff --git a/arch/arm64/boot/dts/freescale/fsl-lx2160a-cex7.dtsi b/arch/arm64/boot/dts/freescale/fsl-lx2160a-cex7.dtsi
+index afb455210bd0..d32a52ab00a4 100644
+--- a/arch/arm64/boot/dts/freescale/fsl-lx2160a-cex7.dtsi
++++ b/arch/arm64/boot/dts/freescale/fsl-lx2160a-cex7.dtsi
+@@ -54,7 +54,7 @@ &esdhc1 {
+ &i2c0 {
+ status = "okay";
+
+- i2c-switch@77 {
++ i2c-mux@77 {
+ compatible = "nxp,pca9547";
+ #address-cells = <1>;
+ #size-cells = <0>;
+diff --git a/arch/arm64/boot/dts/freescale/imx8mm-nitrogen-r2.dts b/arch/arm64/boot/dts/freescale/imx8mm-nitrogen-r2.dts
+index 74c09891600f..6357078185ed 100644
+--- a/arch/arm64/boot/dts/freescale/imx8mm-nitrogen-r2.dts
++++ b/arch/arm64/boot/dts/freescale/imx8mm-nitrogen-r2.dts
+@@ -214,7 +214,7 @@ &i2c3 {
+ pinctrl-0 = <&pinctrl_i2c3>;
+ status = "okay";
+
+- i2cmux@70 {
++ i2c-mux@70 {
+ compatible = "nxp,pca9540";
+ reg = <0x70>;
+ #address-cells = <1>;
+diff --git a/arch/arm64/boot/dts/freescale/imx8mq-nitrogen.dts b/arch/arm64/boot/dts/freescale/imx8mq-nitrogen.dts
+index 9dda2a1554c3..8614c18b5998 100644
+--- a/arch/arm64/boot/dts/freescale/imx8mq-nitrogen.dts
++++ b/arch/arm64/boot/dts/freescale/imx8mq-nitrogen.dts
+@@ -133,7 +133,7 @@ &i2c1 {
+ pinctrl-0 = <&pinctrl_i2c1>;
+ status = "okay";
+
+- i2cmux@70 {
++ i2c-mux@70 {
+ compatible = "nxp,pca9546";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_i2c1_pca9546>;
+@@ -216,7 +216,7 @@ &i2c4 {
+ pinctrl-0 = <&pinctrl_i2c4>;
+ status = "okay";
+
+- pca9546: i2cmux@70 {
++ pca9546: i2c-mux@70 {
+ compatible = "nxp,pca9546";
+ reg = <0x70>;
+ #address-cells = <1>;
+diff --git a/arch/arm64/boot/dts/freescale/imx8qxp-mek.dts b/arch/arm64/boot/dts/freescale/imx8qxp-mek.dts
+index 07d8dd8160f6..afa883389456 100644
+--- a/arch/arm64/boot/dts/freescale/imx8qxp-mek.dts
++++ b/arch/arm64/boot/dts/freescale/imx8qxp-mek.dts
+@@ -61,7 +61,7 @@ &i2c1 {
+ pinctrl-0 = <&pinctrl_lpi2c1 &pinctrl_ioexp_rst>;
+ status = "okay";
+
+- i2c-switch@71 {
++ i2c-mux@71 {
+ compatible = "nxp,pca9646", "nxp,pca9546";
+ #address-cells = <1>;
+ #size-cells = <0>;
+--
+2.39.0
+
--- /dev/null
+From f5c82a6cc9fceb966af709894f90a1a5917e4a7c Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Sun, 4 Dec 2022 10:44:17 +0100
+Subject: arm64: dts: imx8mq-thor96: fix no-mmc property for SDHCI
+
+From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
+
+[ Upstream commit ef10d57936ead5e817ef7cea6a87531085e77773 ]
+
+There is no "no-emmc" property, so intention for SD/SDIO only nodes was
+to use "no-mmc".
+
+Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
+Signed-off-by: Shawn Guo <shawnguo@kernel.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ arch/arm64/boot/dts/freescale/imx8mq-thor96.dts | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/arch/arm64/boot/dts/freescale/imx8mq-thor96.dts b/arch/arm64/boot/dts/freescale/imx8mq-thor96.dts
+index 5d5aa6537225..6e6182709d22 100644
+--- a/arch/arm64/boot/dts/freescale/imx8mq-thor96.dts
++++ b/arch/arm64/boot/dts/freescale/imx8mq-thor96.dts
+@@ -339,7 +339,7 @@ &usdhc1 {
+ bus-width = <4>;
+ non-removable;
+ no-sd;
+- no-emmc;
++ no-mmc;
+ status = "okay";
+
+ brcmf: wifi@1 {
+@@ -359,7 +359,7 @@ &usdhc2 {
+ cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
+ bus-width = <4>;
+ no-sdio;
+- no-emmc;
++ no-mmc;
+ disable-wp;
+ status = "okay";
+ };
+--
+2.39.0
+
--- /dev/null
+From e6c31f800b56fb806bab9d072ef9cd490a13ebc4 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Fri, 30 Dec 2022 20:48:45 +0100
+Subject: arm64: dts: msm8994-angler: fix the memory map
+
+From: Dominik Kobinski <dominikkobinski314@gmail.com>
+
+[ Upstream commit 380cd3a34b7f9825a60ccb045611af9cb4533b70 ]
+
+Add reserved regions for memory hole and tz app mem to prevent
+rebooting. Also enable cont_splash_mem, it is the same as the
+generic 8994 one.
+
+Reported-by: Petr Vorel <petr.vorel@gmail.com>
+Signed-off-by: Dominik Kobinski <dominikkobinski314@gmail.com>
+Reviewed-by: Petr Vorel <petr.vorel@gmail.com>
+Signed-off-by: Bjorn Andersson <andersson@kernel.org>
+Link: https://lore.kernel.org/r/20221230194845.57780-1-dominikkobinski314@gmail.com
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ .../qcom/msm8994-huawei-angler-rev-101.dts | 19 ++++++++++++++++---
+ 1 file changed, 16 insertions(+), 3 deletions(-)
+
+diff --git a/arch/arm64/boot/dts/qcom/msm8994-huawei-angler-rev-101.dts b/arch/arm64/boot/dts/qcom/msm8994-huawei-angler-rev-101.dts
+index dbfbb77e9ff5..7e2c0dcc11ab 100644
+--- a/arch/arm64/boot/dts/qcom/msm8994-huawei-angler-rev-101.dts
++++ b/arch/arm64/boot/dts/qcom/msm8994-huawei-angler-rev-101.dts
+@@ -8,9 +8,6 @@
+
+ #include "msm8994.dtsi"
+
+-/* Angler's firmware does not report where the memory is allocated */
+-/delete-node/ &cont_splash_mem;
+-
+ / {
+ model = "Huawei Nexus 6P";
+ compatible = "huawei,angler", "qcom,msm8994";
+@@ -27,6 +24,22 @@ aliases {
+ chosen {
+ stdout-path = "serial0:115200n8";
+ };
++
++ reserved-memory {
++ #address-cells = <2>;
++ #size-cells = <2>;
++ ranges;
++
++ tzapp_mem: tzapp@4800000 {
++ reg = <0 0x04800000 0 0x1900000>;
++ no-map;
++ };
++
++ removed_region: reserved@6300000 {
++ reg = <0 0x06300000 0 0xD00000>;
++ no-map;
++ };
++ };
+ };
+
+ &blsp1_uart2 {
+--
+2.39.0
+
--- /dev/null
+From e73368ff6931de289f4044d53995a655ba656e86 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Tue, 3 Jan 2023 19:28:33 +0800
+Subject: blk-cgroup: fix missing pd_online_fn() while activating policy
+
+From: Yu Kuai <yukuai3@huawei.com>
+
+[ Upstream commit e3ff8887e7db757360f97634e0d6f4b8e27a8c46 ]
+
+If the policy defines pd_online_fn(), it should be called after
+pd_init_fn(), like blkg_create().
+
+Signed-off-by: Yu Kuai <yukuai3@huawei.com>
+Acked-by: Tejun Heo <tj@kernel.org>
+Link: https://lore.kernel.org/r/20230103112833.2013432-1-yukuai1@huaweicloud.com
+Signed-off-by: Jens Axboe <axboe@kernel.dk>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ block/blk-cgroup.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/block/blk-cgroup.c b/block/blk-cgroup.c
+index fcf9cf49f5de..7c91d9195da8 100644
+--- a/block/blk-cgroup.c
++++ b/block/blk-cgroup.c
+@@ -1408,6 +1408,10 @@ int blkcg_activate_policy(struct request_queue *q,
+ list_for_each_entry_reverse(blkg, &q->blkg_list, q_node)
+ pol->pd_init_fn(blkg->pd[pol->plid]);
+
++ if (pol->pd_online_fn)
++ list_for_each_entry_reverse(blkg, &q->blkg_list, q_node)
++ pol->pd_online_fn(blkg->pd[pol->plid]);
++
+ __set_bit(pol->plid, q->blkcg_pols);
+ ret = 0;
+
+--
+2.39.0
+
--- /dev/null
+From b0556c1b65b326c8cf82fdb5d7bacc6a44e57de9 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Tue, 17 Jan 2023 11:42:15 +0000
+Subject: block: fix hctx checks for batch allocation
+
+From: Pavel Begunkov <asml.silence@gmail.com>
+
+[ Upstream commit 7746564793978fe2f43b18a302b22dca0ad3a0e8 ]
+
+When there are no read queues read requests will be assigned a
+default queue on allocation. However, blk_mq_get_cached_request() is not
+prepared for that and will fail all attempts to grab read requests from
+the cache. Worst case it doubles the number of requests allocated,
+roughly half of which will be returned by blk_mq_free_plug_rqs().
+
+It only affects batched allocations and so is io_uring specific.
+For reference, QD8 t/io_uring benchmark improves by 20-35%.
+
+Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
+Link: https://lore.kernel.org/r/80d4511011d7d4751b4cf6375c4e38f237d935e3.1673955390.git.asml.silence@gmail.com
+Signed-off-by: Jens Axboe <axboe@kernel.dk>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ block/blk-mq.c | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/block/blk-mq.c b/block/blk-mq.c
+index 63abbe342b28..83fbc7c54617 100644
+--- a/block/blk-mq.c
++++ b/block/blk-mq.c
+@@ -2858,6 +2858,7 @@ static inline struct request *blk_mq_get_cached_request(struct request_queue *q,
+ struct blk_plug *plug, struct bio **bio, unsigned int nsegs)
+ {
+ struct request *rq;
++ enum hctx_type type, hctx_type;
+
+ if (!plug)
+ return NULL;
+@@ -2870,7 +2871,10 @@ static inline struct request *blk_mq_get_cached_request(struct request_queue *q,
+ return NULL;
+ }
+
+- if (blk_mq_get_hctx_type((*bio)->bi_opf) != rq->mq_hctx->type)
++ type = blk_mq_get_hctx_type((*bio)->bi_opf);
++ hctx_type = rq->mq_hctx->type;
++ if (type != hctx_type &&
++ !(type == HCTX_TYPE_READ && hctx_type == HCTX_TYPE_DEFAULT))
+ return NULL;
+ if (op_is_flush(rq->cmd_flags) != op_is_flush((*bio)->bi_opf))
+ return NULL;
+--
+2.39.0
+
--- /dev/null
+From bbcaa60e8bd30db9ddee7af325e45ff27f70d5ab Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Fri, 6 Jan 2023 16:48:38 +0800
+Subject: bpf: Skip task with pid=1 in send_signal_common()
+
+From: Hao Sun <sunhao.th@gmail.com>
+
+[ Upstream commit a3d81bc1eaef48e34dd0b9b48eefed9e02a06451 ]
+
+The following kernel panic can be triggered when a task with pid=1 attaches
+a prog that attempts to send killing signal to itself, also see [1] for more
+details:
+
+ Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
+ CPU: 3 PID: 1 Comm: systemd Not tainted 6.1.0-09652-g59fe41b5255f #148
+ Call Trace:
+ <TASK>
+ __dump_stack lib/dump_stack.c:88 [inline]
+ dump_stack_lvl+0x100/0x178 lib/dump_stack.c:106
+ panic+0x2c4/0x60f kernel/panic.c:275
+ do_exit.cold+0x63/0xe4 kernel/exit.c:789
+ do_group_exit+0xd4/0x2a0 kernel/exit.c:950
+ get_signal+0x2460/0x2600 kernel/signal.c:2858
+ arch_do_signal_or_restart+0x78/0x5d0 arch/x86/kernel/signal.c:306
+ exit_to_user_mode_loop kernel/entry/common.c:168 [inline]
+ exit_to_user_mode_prepare+0x15f/0x250 kernel/entry/common.c:203
+ __syscall_exit_to_user_mode_work kernel/entry/common.c:285 [inline]
+ syscall_exit_to_user_mode+0x1d/0x50 kernel/entry/common.c:296
+ do_syscall_64+0x44/0xb0 arch/x86/entry/common.c:86
+ entry_SYSCALL_64_after_hwframe+0x63/0xcd
+
+So skip task with pid=1 in bpf_send_signal_common() to avoid the panic.
+
+ [1] https://lore.kernel.org/bpf/20221222043507.33037-1-sunhao.th@gmail.com
+
+Signed-off-by: Hao Sun <sunhao.th@gmail.com>
+Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
+Acked-by: Stanislav Fomichev <sdf@google.com>
+Link: https://lore.kernel.org/bpf/20230106084838.12690-1-sunhao.th@gmail.com
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ kernel/trace/bpf_trace.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/kernel/trace/bpf_trace.c b/kernel/trace/bpf_trace.c
+index 1ed08967fb97..eb8c117cc8b6 100644
+--- a/kernel/trace/bpf_trace.c
++++ b/kernel/trace/bpf_trace.c
+@@ -847,6 +847,9 @@ static int bpf_send_signal_common(u32 sig, enum pid_type type)
+ return -EPERM;
+ if (unlikely(!nmi_uaccess_okay()))
+ return -EPERM;
++ /* Task should not be pid=1 to avoid kernel panic. */
++ if (unlikely(is_global_init(current)))
++ return -EPERM;
+
+ if (irqs_disabled()) {
+ /* Do an early check on signal validity. Otherwise,
+--
+2.39.0
+
--- /dev/null
+From ba7423790a7e14c9424ede0cbfd4023a154a4c1d Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Wed, 18 Jan 2023 13:36:31 -0300
+Subject: cifs: fix return of uninitialized rc in dfs_cache_update_tgthint()
+
+From: Paulo Alcantara <pc@cjr.nz>
+
+[ Upstream commit d6a49e8c4ca4d399ed65ac219585187fc8c2e2b1 ]
+
+Fix this by initializing rc to 0 as cache_refresh_path() would not set
+it in case of success.
+
+Reported-by: kernel test robot <lkp@intel.com>
+Link: https://lore.kernel.org/all/202301190004.bEHvbKG6-lkp@intel.com/
+Signed-off-by: Paulo Alcantara (SUSE) <pc@cjr.nz>
+Signed-off-by: Steve French <stfrench@microsoft.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ fs/cifs/dfs_cache.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/fs/cifs/dfs_cache.c b/fs/cifs/dfs_cache.c
+index 4302dc75843c..3bc1d3494be3 100644
+--- a/fs/cifs/dfs_cache.c
++++ b/fs/cifs/dfs_cache.c
+@@ -1050,10 +1050,10 @@ int dfs_cache_update_tgthint(const unsigned int xid, struct cifs_ses *ses,
+ const struct nls_table *cp, int remap, const char *path,
+ const struct dfs_cache_tgt_iterator *it)
+ {
+- int rc;
+- const char *npath;
+- struct cache_entry *ce;
+ struct cache_dfs_tgt *t;
++ struct cache_entry *ce;
++ const char *npath;
++ int rc = 0;
+
+ npath = dfs_cache_canonical_path(path, cp, remap);
+ if (IS_ERR(npath))
+--
+2.39.0
+
--- /dev/null
+From 0763bb815fd78c0baf937c0f3a583350ec64312c Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Wed, 30 Nov 2022 17:08:00 +0800
+Subject: dmaengine: imx-sdma: Fix a possible memory leak in sdma_transfer_init
+
+From: Hui Wang <hui.wang@canonical.com>
+
+[ Upstream commit 1417f59ac0b02130ee56c0c50794b9b257be3d17 ]
+
+If the function sdma_load_context() fails, the sdma_desc will be
+freed, but the allocated desc->bd is forgot to be freed.
+
+We already met the sdma_load_context() failure case and the log as
+below:
+[ 450.699064] imx-sdma 30bd0000.dma-controller: Timeout waiting for CH0 ready
+...
+
+In this case, the desc->bd will not be freed without this change.
+
+Signed-off-by: Hui Wang <hui.wang@canonical.com>
+Reviewed-by: Sascha Hauer <s.hauer@pengutronix.de>
+Link: https://lore.kernel.org/r/20221130090800.102035-1-hui.wang@canonical.com
+Signed-off-by: Vinod Koul <vkoul@kernel.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/dma/imx-sdma.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/dma/imx-sdma.c b/drivers/dma/imx-sdma.c
+index fbea5f62dd98..b926abe4fa43 100644
+--- a/drivers/dma/imx-sdma.c
++++ b/drivers/dma/imx-sdma.c
+@@ -1521,10 +1521,12 @@ static struct sdma_desc *sdma_transfer_init(struct sdma_channel *sdmac,
+ sdma_config_ownership(sdmac, false, true, false);
+
+ if (sdma_load_context(sdmac))
+- goto err_desc_out;
++ goto err_bd_out;
+
+ return desc;
+
++err_bd_out:
++ sdma_free_bd(desc);
+ err_desc_out:
+ kfree(desc);
+ err_out:
+--
+2.39.0
+
--- /dev/null
+From 277b333e8d8096f5b7f738d55304a341c732fd47 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Thu, 12 Jan 2023 14:54:31 +0800
+Subject: erofs: clean up parsing of fscache related options
+
+From: Jingbo Xu <jefflexu@linux.alibaba.com>
+
+[ Upstream commit e02ac3e7329f76c5de40cba2746cbe165f571dff ]
+
+... to avoid the mess of conditional preprocessing as we are continually
+adding fscache related mount options.
+
+Reviewd-by: Gao Xiang <hsiangkao@linux.alibaba.com>
+Reviewed-by: Yue Hu <huyue2@coolpad.com>
+Reviewed-by: Chao Yu <chao@kernel.org>
+Signed-off-by: Jingbo Xu <jefflexu@linux.alibaba.com>
+Link: https://lore.kernel.org/r/20230112065431.124926-3-jefflexu@linux.alibaba.com
+Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ fs/erofs/super.c | 13 ++++++-------
+ 1 file changed, 6 insertions(+), 7 deletions(-)
+
+diff --git a/fs/erofs/super.c b/fs/erofs/super.c
+index 481788c24a68..626a615dafc2 100644
+--- a/fs/erofs/super.c
++++ b/fs/erofs/super.c
+@@ -577,26 +577,25 @@ static int erofs_fc_parse_param(struct fs_context *fc,
+ }
+ ++ctx->devs->extra_devices;
+ break;
+- case Opt_fsid:
+ #ifdef CONFIG_EROFS_FS_ONDEMAND
++ case Opt_fsid:
+ kfree(ctx->fsid);
+ ctx->fsid = kstrdup(param->string, GFP_KERNEL);
+ if (!ctx->fsid)
+ return -ENOMEM;
+-#else
+- errorfc(fc, "fsid option not supported");
+-#endif
+ break;
+ case Opt_domain_id:
+-#ifdef CONFIG_EROFS_FS_ONDEMAND
+ kfree(ctx->domain_id);
+ ctx->domain_id = kstrdup(param->string, GFP_KERNEL);
+ if (!ctx->domain_id)
+ return -ENOMEM;
++ break;
+ #else
+- errorfc(fc, "domain_id option not supported");
+-#endif
++ case Opt_fsid:
++ case Opt_domain_id:
++ errorfc(fc, "%s option not supported", erofs_fs_parameters[opt].name);
+ break;
++#endif
+ default:
+ return -ENOPARAM;
+ }
+--
+2.39.0
+
--- /dev/null
+From 2eb92f0d24f3f60fc805bf9d348332ea25a51cc5 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Fri, 9 Dec 2022 15:51:51 +0530
+Subject: erofs/zmap.c: Fix incorrect offset calculation
+
+From: Siddh Raman Pant <code@siddh.me>
+
+[ Upstream commit 6acd87d50998ef0afafc441613aeaf5a8f5c9eff ]
+
+Effective offset to add to length was being incorrectly calculated,
+which resulted in iomap->length being set to 0, triggering a WARN_ON
+in iomap_iter_done().
+
+Fix that, and describe it in comments.
+
+This was reported as a crash by syzbot under an issue about a warning
+encountered in iomap_iter_done(), but unrelated to erofs.
+
+C reproducer: https://syzkaller.appspot.com/text?tag=ReproC&x=1037a6b2880000
+Kernel config: https://syzkaller.appspot.com/text?tag=KernelConfig&x=e2021a61197ebe02
+Dashboard link: https://syzkaller.appspot.com/bug?extid=a8e049cd3abd342936b6
+
+Reported-by: syzbot+a8e049cd3abd342936b6@syzkaller.appspotmail.com
+Suggested-by: Gao Xiang <hsiangkao@linux.alibaba.com>
+Signed-off-by: Siddh Raman Pant <code@siddh.me>
+Reviewed-by: Gao Xiang <hsiangkao@linux.alibaba.com>
+Reviewed-by: Chao Yu <chao@kernel.org>
+Link: https://lore.kernel.org/r/20221209102151.311049-1-code@siddh.me
+Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ fs/erofs/zmap.c | 10 +++++++---
+ 1 file changed, 7 insertions(+), 3 deletions(-)
+
+diff --git a/fs/erofs/zmap.c b/fs/erofs/zmap.c
+index e6d5d7a18fb0..39cc014dba40 100644
+--- a/fs/erofs/zmap.c
++++ b/fs/erofs/zmap.c
+@@ -793,12 +793,16 @@ static int z_erofs_iomap_begin_report(struct inode *inode, loff_t offset,
+ iomap->type = IOMAP_HOLE;
+ iomap->addr = IOMAP_NULL_ADDR;
+ /*
+- * No strict rule how to describe extents for post EOF, yet
+- * we need do like below. Otherwise, iomap itself will get
++ * No strict rule on how to describe extents for post EOF, yet
++ * we need to do like below. Otherwise, iomap itself will get
+ * into an endless loop on post EOF.
++ *
++ * Calculate the effective offset by subtracting extent start
++ * (map.m_la) from the requested offset, and add it to length.
++ * (NB: offset >= map.m_la always)
+ */
+ if (iomap->offset >= inode->i_size)
+- iomap->length = length + map.m_la - offset;
++ iomap->length = length + offset - map.m_la;
+ }
+ iomap->flags = 0;
+ return 0;
+--
+2.39.0
+
--- /dev/null
+From ac0a7afef35bd3b6a72c7d42707654eea886d160 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Thu, 22 Dec 2022 18:38:19 +0000
+Subject: firmware: arm_scmi: Clear stale xfer->hdr.status
+
+From: Cristian Marussi <cristian.marussi@arm.com>
+
+[ Upstream commit f6ca5059dc0d6608dc46070f48e396d611f240d6 ]
+
+Stale error status reported from a previous message transaction must be
+cleared before starting a new transaction to avoid being confusingly
+reported in the following SCMI message dump traces.
+
+Signed-off-by: Cristian Marussi <cristian.marussi@arm.com>
+Link: https://lore.kernel.org/r/20221222183823.518856-2-cristian.marussi@arm.com
+Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/firmware/arm_scmi/driver.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/drivers/firmware/arm_scmi/driver.c b/drivers/firmware/arm_scmi/driver.c
+index f818d00bb2c6..ffdad59ec81f 100644
+--- a/drivers/firmware/arm_scmi/driver.c
++++ b/drivers/firmware/arm_scmi/driver.c
+@@ -910,6 +910,8 @@ static int do_xfer(const struct scmi_protocol_handle *ph,
+ xfer->hdr.protocol_id, xfer->hdr.seq,
+ xfer->hdr.poll_completion);
+
++ /* Clear any stale status */
++ xfer->hdr.status = SCMI_SUCCESS;
+ xfer->state = SCMI_XFER_SENT_OK;
+ /*
+ * Even though spinlocking is not needed here since no race is possible
+--
+2.39.0
+
--- /dev/null
+From 832a64f6e1557e017da518199dcab0e5fdca2808 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 16 Jan 2023 13:37:01 -0600
+Subject: gpiolib: acpi: Allow ignoring wake capability on pins that aren't in
+ _AEI
+
+From: Mario Limonciello <mario.limonciello@amd.com>
+
+[ Upstream commit 0e3b175f079247f0d40d2ab695999c309d3a7498 ]
+
+Using the `ignore_wake` quirk or module parameter doesn't work for any pin
+that has been specified in the _CRS instead of _AEI.
+
+Extend the `acpi_gpio_irq_is_wake` check to cover both places.
+
+Suggested-by: Raul Rangel <rrangel@chromium.org>
+Link: https://gitlab.freedesktop.org/drm/amd/-/issues/1722#note_1722335
+Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
+Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
+Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/gpio/gpiolib-acpi.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/gpio/gpiolib-acpi.c b/drivers/gpio/gpiolib-acpi.c
+index a7d2358736fe..27f234637a15 100644
+--- a/drivers/gpio/gpiolib-acpi.c
++++ b/drivers/gpio/gpiolib-acpi.c
+@@ -361,7 +361,7 @@ static bool acpi_gpio_in_ignore_list(const char *ignore_list, const char *contro
+ }
+
+ static bool acpi_gpio_irq_is_wake(struct device *parent,
+- struct acpi_resource_gpio *agpio)
++ const struct acpi_resource_gpio *agpio)
+ {
+ unsigned int pin = agpio->pin_table[0];
+
+@@ -754,7 +754,7 @@ static int acpi_populate_gpio_lookup(struct acpi_resource *ares, void *data)
+ lookup->info.pin_config = agpio->pin_config;
+ lookup->info.debounce = agpio->debounce_timeout;
+ lookup->info.gpioint = gpioint;
+- lookup->info.wake_capable = agpio->wake_capable == ACPI_WAKE_CAPABLE;
++ lookup->info.wake_capable = acpi_gpio_irq_is_wake(&lookup->info.adev->dev, agpio);
+
+ /*
+ * Polarity and triggering are only specified for GpioInt
+--
+2.39.0
+
--- /dev/null
+From 44c9ae070da3eecdaeb9848759e03bd9dcb37e38 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Thu, 5 Jan 2023 17:59:08 -0800
+Subject: HID: playstation: sanity check DualSense calibration data.
+
+From: Roderick Colenbrander <roderick@gaikai.com>
+
+[ Upstream commit ccf1e1626d37745d0a697db67407beec9ae9d4b8 ]
+
+Make sure calibration values are defined to prevent potential kernel
+crashes. This fixes a hypothetical issue for virtual or clone devices
+inspired by a similar fix for DS4.
+
+Signed-off-by: Roderick Colenbrander <roderick.colenbrander@sony.com>
+Signed-off-by: Jiri Kosina <jkosina@suse.cz>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/hid/hid-playstation.c | 32 ++++++++++++++++++++++++++++++++
+ 1 file changed, 32 insertions(+)
+
+diff --git a/drivers/hid/hid-playstation.c b/drivers/hid/hid-playstation.c
+index 0b58763bfd30..2228f6e4ba23 100644
+--- a/drivers/hid/hid-playstation.c
++++ b/drivers/hid/hid-playstation.c
+@@ -712,6 +712,7 @@ ATTRIBUTE_GROUPS(ps_device);
+
+ static int dualsense_get_calibration_data(struct dualsense *ds)
+ {
++ struct hid_device *hdev = ds->base.hdev;
+ short gyro_pitch_bias, gyro_pitch_plus, gyro_pitch_minus;
+ short gyro_yaw_bias, gyro_yaw_plus, gyro_yaw_minus;
+ short gyro_roll_bias, gyro_roll_plus, gyro_roll_minus;
+@@ -722,6 +723,7 @@ static int dualsense_get_calibration_data(struct dualsense *ds)
+ int speed_2x;
+ int range_2g;
+ int ret = 0;
++ int i;
+ uint8_t *buf;
+
+ buf = kzalloc(DS_FEATURE_REPORT_CALIBRATION_SIZE, GFP_KERNEL);
+@@ -773,6 +775,21 @@ static int dualsense_get_calibration_data(struct dualsense *ds)
+ ds->gyro_calib_data[2].sens_numer = speed_2x*DS_GYRO_RES_PER_DEG_S;
+ ds->gyro_calib_data[2].sens_denom = gyro_roll_plus - gyro_roll_minus;
+
++ /*
++ * Sanity check gyro calibration data. This is needed to prevent crashes
++ * during report handling of virtual, clone or broken devices not implementing
++ * calibration data properly.
++ */
++ for (i = 0; i < ARRAY_SIZE(ds->gyro_calib_data); i++) {
++ if (ds->gyro_calib_data[i].sens_denom == 0) {
++ hid_warn(hdev, "Invalid gyro calibration data for axis (%d), disabling calibration.",
++ ds->gyro_calib_data[i].abs_code);
++ ds->gyro_calib_data[i].bias = 0;
++ ds->gyro_calib_data[i].sens_numer = DS_GYRO_RANGE;
++ ds->gyro_calib_data[i].sens_denom = S16_MAX;
++ }
++ }
++
+ /*
+ * Set accelerometer calibration and normalization parameters.
+ * Data values will be normalized to 1/DS_ACC_RES_PER_G g.
+@@ -795,6 +812,21 @@ static int dualsense_get_calibration_data(struct dualsense *ds)
+ ds->accel_calib_data[2].sens_numer = 2*DS_ACC_RES_PER_G;
+ ds->accel_calib_data[2].sens_denom = range_2g;
+
++ /*
++ * Sanity check accelerometer calibration data. This is needed to prevent crashes
++ * during report handling of virtual, clone or broken devices not implementing calibration
++ * data properly.
++ */
++ for (i = 0; i < ARRAY_SIZE(ds->accel_calib_data); i++) {
++ if (ds->accel_calib_data[i].sens_denom == 0) {
++ hid_warn(hdev, "Invalid accelerometer calibration data for axis (%d), disabling calibration.",
++ ds->accel_calib_data[i].abs_code);
++ ds->accel_calib_data[i].bias = 0;
++ ds->accel_calib_data[i].sens_numer = DS_ACC_RANGE;
++ ds->accel_calib_data[i].sens_denom = S16_MAX;
++ }
++ }
++
+ err_free:
+ kfree(buf);
+ return ret;
+--
+2.39.0
+
--- /dev/null
+From db4903ecbfda3748f0f4fc08a5b4240c0441ca9b Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 26 Dec 2022 13:34:56 +0100
+Subject: HID: uclogic: Add support for XP-PEN Deco 01 V2
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: José Expósito <jose.exposito89@gmail.com>
+
+[ Upstream commit febb2c0d7c69c0396aa32d5ab425a4163473961a ]
+
+The XP-PEN Deco 01 V2 is a UGEE v2 device with a frame with 8 buttons.
+Its pen has 2 buttons, supports tilt and pressure.
+
+Add its ID in order to support the device.
+
+Link: https://gitlab.freedesktop.org/libinput/libinput/-/issues/839
+Tested-by: Mark Waddoups <mwaddoups@gmail.com>
+Signed-off-by: José Expósito <jose.exposito89@gmail.com>
+Signed-off-by: Jiri Kosina <jkosina@suse.cz>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/hid/hid-ids.h | 1 +
+ drivers/hid/hid-uclogic-core.c | 2 ++
+ drivers/hid/hid-uclogic-params.c | 2 ++
+ 3 files changed, 5 insertions(+)
+
+diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
+index c3735848ed5d..0f8c11842a3a 100644
+--- a/drivers/hid/hid-ids.h
++++ b/drivers/hid/hid-ids.h
+@@ -1294,6 +1294,7 @@
+ #define USB_DEVICE_ID_UGEE_XPPEN_TABLET_G540 0x0075
+ #define USB_DEVICE_ID_UGEE_XPPEN_TABLET_G640 0x0094
+ #define USB_DEVICE_ID_UGEE_XPPEN_TABLET_DECO01 0x0042
++#define USB_DEVICE_ID_UGEE_XPPEN_TABLET_DECO01_V2 0x0905
+ #define USB_DEVICE_ID_UGEE_XPPEN_TABLET_DECO_L 0x0935
+ #define USB_DEVICE_ID_UGEE_XPPEN_TABLET_DECO_PRO_S 0x0909
+ #define USB_DEVICE_ID_UGEE_XPPEN_TABLET_STAR06 0x0078
+diff --git a/drivers/hid/hid-uclogic-core.c b/drivers/hid/hid-uclogic-core.c
+index 7fa6fe04f1b2..cfbbc39807a6 100644
+--- a/drivers/hid/hid-uclogic-core.c
++++ b/drivers/hid/hid-uclogic-core.c
+@@ -525,6 +525,8 @@ static const struct hid_device_id uclogic_devices[] = {
+ USB_DEVICE_ID_UGEE_XPPEN_TABLET_G640) },
+ { HID_USB_DEVICE(USB_VENDOR_ID_UGEE,
+ USB_DEVICE_ID_UGEE_XPPEN_TABLET_DECO01) },
++ { HID_USB_DEVICE(USB_VENDOR_ID_UGEE,
++ USB_DEVICE_ID_UGEE_XPPEN_TABLET_DECO01_V2) },
+ { HID_USB_DEVICE(USB_VENDOR_ID_UGEE,
+ USB_DEVICE_ID_UGEE_XPPEN_TABLET_DECO_L) },
+ { HID_USB_DEVICE(USB_VENDOR_ID_UGEE,
+diff --git a/drivers/hid/hid-uclogic-params.c b/drivers/hid/hid-uclogic-params.c
+index cd1233d7e253..3c5eea3df328 100644
+--- a/drivers/hid/hid-uclogic-params.c
++++ b/drivers/hid/hid-uclogic-params.c
+@@ -1655,6 +1655,8 @@ int uclogic_params_init(struct uclogic_params *params,
+ break;
+ case VID_PID(USB_VENDOR_ID_UGEE,
+ USB_DEVICE_ID_UGEE_PARBLO_A610_PRO):
++ case VID_PID(USB_VENDOR_ID_UGEE,
++ USB_DEVICE_ID_UGEE_XPPEN_TABLET_DECO01_V2):
+ case VID_PID(USB_VENDOR_ID_UGEE,
+ USB_DEVICE_ID_UGEE_XPPEN_TABLET_DECO_L):
+ case VID_PID(USB_VENDOR_ID_UGEE,
+--
+2.39.0
+
--- /dev/null
+From 7b505b9f4a3d29ce87db9031250f8d2dded20235 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Wed, 11 Jan 2023 22:33:07 +0000
+Subject: kselftest: Fix error message for unconfigured LLVM builds
+
+From: Mark Brown <broonie@kernel.org>
+
+[ Upstream commit 9fdaca2c1e157dc0a3c0faecf3a6a68e7d8d0c7b ]
+
+We are missing a ) when we attempt to complain about not having enough
+configuration for clang, resulting in the rather inscrutable error:
+
+../lib.mk:23: *** unterminated call to function 'error': missing ')'. Stop.
+
+Add the required ) so we print the message we were trying to print.
+
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ tools/testing/selftests/lib.mk | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tools/testing/selftests/lib.mk b/tools/testing/selftests/lib.mk
+index 291144c284fb..f7900e75d230 100644
+--- a/tools/testing/selftests/lib.mk
++++ b/tools/testing/selftests/lib.mk
+@@ -20,7 +20,7 @@ CLANG_TARGET_FLAGS := $(CLANG_TARGET_FLAGS_$(ARCH))
+
+ ifeq ($(CROSS_COMPILE),)
+ ifeq ($(CLANG_TARGET_FLAGS),)
+-$(error Specify CROSS_COMPILE or add '--target=' option to lib.mk
++$(error Specify CROSS_COMPILE or add '--target=' option to lib.mk)
+ else
+ CLANG_FLAGS += --target=$(CLANG_TARGET_FLAGS)
+ endif # CLANG_TARGET_FLAGS
+--
+2.39.0
+
--- /dev/null
+From 4d0c27a7175599d5a02d0611f42c0aa72e06ccc3 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Tue, 17 Jan 2023 11:42:16 +0800
+Subject: LoongArch: Get frame info in unwind_start() when regs is not
+ available
+
+From: Jinyang He <hejinyang@loongson.cn>
+
+[ Upstream commit 429a9671f235c94fc4b5d6687308714b74adc820 ]
+
+At unwind_start(), it is better to get its frame info here rather than
+get them outside, even we don't have 'regs'. In this way we can simply
+use unwind_{start, next_frame, done} outside.
+
+Signed-off-by: Jinyang He <hejinyang@loongson.cn>
+Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ arch/loongarch/kernel/process.c | 12 +++---------
+ arch/loongarch/kernel/unwind_guess.c | 6 ++++++
+ arch/loongarch/kernel/unwind_prologue.c | 16 +++++++++++++---
+ 3 files changed, 22 insertions(+), 12 deletions(-)
+
+diff --git a/arch/loongarch/kernel/process.c b/arch/loongarch/kernel/process.c
+index ddb8ba4eb399..90a5de746332 100644
+--- a/arch/loongarch/kernel/process.c
++++ b/arch/loongarch/kernel/process.c
+@@ -185,20 +185,14 @@ int copy_thread(struct task_struct *p, const struct kernel_clone_args *args)
+
+ unsigned long __get_wchan(struct task_struct *task)
+ {
+- unsigned long pc;
++ unsigned long pc = 0;
+ struct unwind_state state;
+
+ if (!try_get_task_stack(task))
+ return 0;
+
+- unwind_start(&state, task, NULL);
+- state.sp = thread_saved_fp(task);
+- get_stack_info(state.sp, state.task, &state.stack_info);
+- state.pc = thread_saved_ra(task);
+-#ifdef CONFIG_UNWINDER_PROLOGUE
+- state.type = UNWINDER_PROLOGUE;
+-#endif
+- for (; !unwind_done(&state); unwind_next_frame(&state)) {
++ for (unwind_start(&state, task, NULL);
++ !unwind_done(&state); unwind_next_frame(&state)) {
+ pc = unwind_get_return_address(&state);
+ if (!pc)
+ break;
+diff --git a/arch/loongarch/kernel/unwind_guess.c b/arch/loongarch/kernel/unwind_guess.c
+index 5afa6064d73e..0c20e5184de6 100644
+--- a/arch/loongarch/kernel/unwind_guess.c
++++ b/arch/loongarch/kernel/unwind_guess.c
+@@ -25,6 +25,12 @@ void unwind_start(struct unwind_state *state, struct task_struct *task,
+ if (regs) {
+ state->sp = regs->regs[3];
+ state->pc = regs->csr_era;
++ } else if (task && task != current) {
++ state->sp = thread_saved_fp(task);
++ state->pc = thread_saved_ra(task);
++ } else {
++ state->sp = (unsigned long)__builtin_frame_address(0);
++ state->pc = (unsigned long)__builtin_return_address(0);
+ }
+
+ state->task = task;
+diff --git a/arch/loongarch/kernel/unwind_prologue.c b/arch/loongarch/kernel/unwind_prologue.c
+index 4571c3c87cd4..1c5b65756144 100644
+--- a/arch/loongarch/kernel/unwind_prologue.c
++++ b/arch/loongarch/kernel/unwind_prologue.c
+@@ -111,12 +111,22 @@ void unwind_start(struct unwind_state *state, struct task_struct *task,
+ struct pt_regs *regs)
+ {
+ memset(state, 0, sizeof(*state));
++ state->type = UNWINDER_PROLOGUE;
+
+- if (regs && __kernel_text_address(regs->csr_era)) {
+- state->pc = regs->csr_era;
++ if (regs) {
+ state->sp = regs->regs[3];
++ state->pc = regs->csr_era;
+ state->ra = regs->regs[1];
+- state->type = UNWINDER_PROLOGUE;
++ if (!__kernel_text_address(state->pc))
++ state->type = UNWINDER_GUESS;
++ } else if (task && task != current) {
++ state->sp = thread_saved_fp(task);
++ state->pc = thread_saved_ra(task);
++ state->ra = 0;
++ } else {
++ state->sp = (unsigned long)__builtin_frame_address(0);
++ state->pc = (unsigned long)__builtin_return_address(0);
++ state->ra = 0;
+ }
+
+ state->task = task;
+--
+2.39.0
+
--- /dev/null
+From 75d2a851e8ff03827b0a72cfdd64003cd6459d18 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Thu, 8 Dec 2022 09:30:50 +0530
+Subject: mac80211: Fix MLO address translation for multiple bss case
+
+From: Sriram R <quic_srirrama@quicinc.com>
+
+[ Upstream commit fa22b51ace8aa106267636f36170e940e676809c ]
+
+When multiple interfaces are present in the local interface
+list, new skb copy is taken before rx processing except for
+the first interface. The address translation happens each
+time only on the original skb since the hdr pointer is not
+updated properly to the newly created skb.
+
+As a result frames start to drop in userspace when address
+based checks or search fails.
+
+Signed-off-by: Sriram R <quic_srirrama@quicinc.com>
+Link: https://lore.kernel.org/r/20221208040050.25922-1-quic_srirrama@quicinc.com
+Signed-off-by: Johannes Berg <johannes.berg@intel.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ net/mac80211/rx.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
+index 3262ebb24092..8f0d7c666df7 100644
+--- a/net/mac80211/rx.c
++++ b/net/mac80211/rx.c
+@@ -4859,6 +4859,9 @@ static bool ieee80211_prepare_and_rx_handle(struct ieee80211_rx_data *rx,
+ */
+ shwt = skb_hwtstamps(rx->skb);
+ shwt->hwtstamp = skb_hwtstamps(skb)->hwtstamp;
++
++ /* Update the hdr pointer to the new skb for translation below */
++ hdr = (struct ieee80211_hdr *)rx->skb->data;
+ }
+
+ if (unlikely(rx->sta && rx->sta->sta.mlo)) {
+--
+2.39.0
+
--- /dev/null
+From f8123bbc8e8d844de122140803678982f6f573fd Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Tue, 17 Jan 2023 19:25:01 +0100
+Subject: nvme-apple: only reset the controller when RTKit is running
+
+From: Janne Grunau <j@jannau.net>
+
+[ Upstream commit c0a4a1eafbd48e02829045bba3e6163c03037276 ]
+
+NVMe controller register access hangs indefinitely when the co-processor
+is not running. A missed reset is preferable over a hanging thread since
+it could be recoverable.
+
+Signed-off-by: Janne Grunau <j@jannau.net>
+Signed-off-by: Christoph Hellwig <hch@lst.de>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/nvme/host/apple.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/drivers/nvme/host/apple.c b/drivers/nvme/host/apple.c
+index ff8b083dc5c6..262d2b60ac6d 100644
+--- a/drivers/nvme/host/apple.c
++++ b/drivers/nvme/host/apple.c
+@@ -987,11 +987,11 @@ static void apple_nvme_reset_work(struct work_struct *work)
+ goto out;
+ }
+
+- if (anv->ctrl.ctrl_config & NVME_CC_ENABLE)
+- apple_nvme_disable(anv, false);
+-
+ /* RTKit must be shut down cleanly for the (soft)-reset to work */
+ if (apple_rtkit_is_running(anv->rtk)) {
++ /* reset the controller if it is enabled */
++ if (anv->ctrl.ctrl_config & NVME_CC_ENABLE)
++ apple_nvme_disable(anv, false);
+ dev_dbg(anv->dev, "Trying to shut down RTKit before reset.");
+ ret = apple_rtkit_shutdown(anv->rtk);
+ if (ret)
+--
+2.39.0
+
--- /dev/null
+From dbddfb7479d5f400288fe93e8c7669ba06d7f40e Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Tue, 17 Jan 2023 19:00:59 +0100
+Subject: s390: workaround invalid gcc-11 out of bounds read warning
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Heiko Carstens <hca@linux.ibm.com>
+
+[ Upstream commit 41e1992665a2701fa025a8b76970c43b4148446f ]
+
+GCC 11.1.0 and 11.2.0 generate a wrong warning when compiling the
+kernel e.g. with allmodconfig:
+
+arch/s390/kernel/setup.c: In function ‘setup_lowcore_dat_on’:
+./include/linux/fortify-string.h:57:33: error: ‘__builtin_memcpy’ reading 128 bytes from a region of size 0 [-Werror=stringop-overread]
+...
+arch/s390/kernel/setup.c:526:9: note: in expansion of macro ‘memcpy’
+ 526 | memcpy(abs_lc->cregs_save_area, S390_lowcore.cregs_save_area,
+ | ^~~~~~
+
+This could be addressed by using absolute_pointer() with the
+S390_lowcore macro, but this is not a good idea since this generates
+worse code for performance critical paths.
+
+Therefore simply use a for loop to copy the array in question and get
+rid of the warning.
+
+Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
+Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ arch/s390/kernel/setup.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/arch/s390/kernel/setup.c b/arch/s390/kernel/setup.c
+index ab19ddb09d65..2ec5f1e0312f 100644
+--- a/arch/s390/kernel/setup.c
++++ b/arch/s390/kernel/setup.c
+@@ -507,6 +507,7 @@ static void __init setup_lowcore_dat_on(void)
+ {
+ struct lowcore *abs_lc;
+ unsigned long flags;
++ int i;
+
+ __ctl_clear_bit(0, 28);
+ S390_lowcore.external_new_psw.mask |= PSW_MASK_DAT;
+@@ -521,8 +522,8 @@ static void __init setup_lowcore_dat_on(void)
+ abs_lc = get_abs_lowcore(&flags);
+ abs_lc->restart_flags = RESTART_FLAG_CTLREGS;
+ abs_lc->program_new_psw = S390_lowcore.program_new_psw;
+- memcpy(abs_lc->cregs_save_area, S390_lowcore.cregs_save_area,
+- sizeof(abs_lc->cregs_save_area));
++ for (i = 0; i < 16; i++)
++ abs_lc->cregs_save_area[i] = S390_lowcore.cregs_save_area[i];
+ put_abs_lowcore(abs_lc, flags);
+ }
+
+--
+2.39.0
+
--- /dev/null
+arm-dts-imx-fix-pca9547-i2c-mux-node-name.patch
+arm-dts-vf610-fix-pca9548-i2c-mux-node-names.patch
+arm64-dts-freescale-fix-pca954x-i2c-mux-node-names.patch
+arm64-dts-imx8mq-thor96-fix-no-mmc-property-for-sdhc.patch
+firmware-arm_scmi-clear-stale-xfer-hdr.status.patch
+bpf-skip-task-with-pid-1-in-send_signal_common.patch
+erofs-zmap.c-fix-incorrect-offset-calculation.patch
+mac80211-fix-mlo-address-translation-for-multiple-bs.patch
+arm64-dts-msm8994-angler-fix-the-memory-map.patch
+arm-omap1-fix-building-gpio15xx.patch
+kselftest-fix-error-message-for-unconfigured-llvm-bu.patch
+erofs-clean-up-parsing-of-fscache-related-options.patch
+blk-cgroup-fix-missing-pd_online_fn-while-activating.patch
+loongarch-get-frame-info-in-unwind_start-when-regs-i.patch
+acpi-video-add-backlight-native-dmi-quirk-for-acer-a.patch
+block-fix-hctx-checks-for-batch-allocation.patch
+s390-workaround-invalid-gcc-11-out-of-bounds-read-wa.patch
+hid-uclogic-add-support-for-xp-pen-deco-01-v2.patch
+hid-playstation-sanity-check-dualsense-calibration-d.patch
+dmaengine-imx-sdma-fix-a-possible-memory-leak-in-sdm.patch
+gpiolib-acpi-allow-ignoring-wake-capability-on-pins-.patch
+cifs-fix-return-of-uninitialized-rc-in-dfs_cache_upd.patch
+nvme-apple-only-reset-the-controller-when-rtkit-is-r.patch