--- /dev/null
+From: Shiji Yang <yangshiji66@outlook.com>
+Date: Fri, 9 May 2025 00:54:48 +0800
+Subject: [PATCH] convert platform driver .remove to .remove_new
+
+Fix compilation error on 6.12 kernel:
+
+/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/drv_mei_cpe-1.5.17.6/src/drv_mei_cpe_linux.c:2073:23: error: initialization of 'void (*)(struct platform_device *)' from incompatible pointer type 'int (*)(struct platform_device *)' [-Wincompatible-pointer-types]
+ 2073 | .remove = __exit_p(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
+@@ -2048,13 +2048,12 @@ static int MEI_InstallProcEntry(unsigned
+ #endif
+
+ #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0))
+-static int __exit ltq_dsl_cpe_mei_remove(struct platform_device *pdev)
++static void __exit ltq_dsl_cpe_mei_remove(struct platform_device *pdev)
+ {
+ MEI_module_exit();
+
+ /* clear platform */
+ MEI_DEVICE_CFG_VALUE_SET(platform, e_MEI_DEV_PLATFORM_CONFIG_UNKNOWN);
+- return 0;
+ }
+
+ static const struct of_device_id ltq_dsl_cpe_mei_match[] = {
+@@ -2070,7 +2069,7 @@ static struct platform_driver ltq_dsl_cp
+ .owner = THIS_MODULE,
+ .of_match_table = ltq_dsl_cpe_mei_match,
+ },
+- .remove = __exit_p(ltq_dsl_cpe_mei_remove),
++ .remove_new = __exit_p(ltq_dsl_cpe_mei_remove),
+ };
+
+ static int __init ltq_dsl_cpe_mei_probe(struct platform_device *pdev)