--- /dev/null
+From: Shiji Yang <yangshiji66@outlook.com>
+Date: Wed, 7 May 2025 22:07:16 +0800
+Subject: [PATCH] convert platform driver .remove to .remove_new
+
+Fix build error on 6.12 kernel:
+
+/home/db/owrt/build_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/linux-ipq40xx_generic/dsl_cpe_mei-ugw_8.5.2.10/src/drv_mei_cpe_linux.c:2270:14: error: initialization of 'void (*)(struct platform_device *)' from incompatible pointer type 'int (*)(struct platform_device *)' [-Wincompatible-pointer-types]
+ 2270 | .remove = ltq_dsl_cpe_mei_remove,
+ | ^~~~~~~~~~~~~~~~~~~~~~
+
+Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
+---
+ src/drv_mei_cpe_linux.c | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+--- a/src/drv_mei_cpe_linux.c
++++ b/src/drv_mei_cpe_linux.c
+@@ -2234,7 +2234,7 @@ static int dev_found = 0;
+ /* containt the number of devices registered in module_init */
+ static int dev_registered = 0;
+
+-static int ltq_dsl_cpe_mei_remove(struct platform_device *pdev)
++static void ltq_dsl_cpe_mei_remove(struct platform_device *pdev)
+ {
+ /* clear platform */
+ MEI_DEVICE_CFG_VALUE_SET(platform, e_MEI_DEV_PLATFORM_CONFIG_UNKNOWN);
+@@ -2244,7 +2244,6 @@ static int ltq_dsl_cpe_mei_remove(struct
+ dev_registered--;
+ }
+ #endif
+- return 0;
+ }
+
+ static const struct of_device_id ltq_dsl_cpe_mei_match[] = {
+@@ -2267,7 +2266,7 @@ static struct platform_driver ltq_dsl_cp
+ .owner = THIS_MODULE,
+ .of_match_table = ltq_dsl_cpe_mei_match,
+ },
+- .remove = ltq_dsl_cpe_mei_remove,
++ .remove_new = ltq_dsl_cpe_mei_remove,
+ };
+
+ static int ltq_dsl_cpe_mei_reboot_notifier(struct notifier_block *nb,