Subject: linux-next: build failure after merge of the drm tree

From: Mark Brown <[email-masked]>
Date: Fri, 28 Jun 2024 20:46:49 +0100

Hi all,

After merging the drm tree and then some other trees which seem to have
allowed the driver to be built much later in the merge process today's
linux-next build (x86_64 allmodconfig) failed like this:

/tmp/next/build/drivers/gpu/drm/stm/lvds.c:1212:19: error: initialization of 'void (*)(struct platform_device *)' from incompatible pointer type 'int (*)(struct platform_device *)' [-Werror=incompatible-pointer-types]
 1212 |         .remove = lvds_remove,
      |                   ^~~~~~~~~~~
/tmp/next/build/drivers/gpu/drm/stm/lvds.c:1212:19: note: (near initialization for 'lvds_platform_driver.<anonymous>.remove')

Caused by commit

  6597efcfc53585d5 ("drm/stm: Allow build with COMPILE_TEST=y")

interacting with

  aca1cbc1c9860e39 ("drm/stm: lvds: add new STM32 LVDS Display Interface Transmitter driver")
  0edb555a65d1ef04 ("platform: Make platform_driver::remove() return void")

I have applied the below fixup patch.

From 59a5e11f41e93512ca1a5aed36c1c396d175797d Mon Sep 17 00:00:00 2001
From: Mark Brown <[email-masked]>
Date: Fri, 28 Jun 2024 20:45:16 +0100
Subject: [PATCH] drm: Fix up STM LVDS driver for void remove() conversion

Signed-off-by: Mark Brown <[email-masked]>
---
 drivers/gpu/drm/stm/lvds.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/stm/lvds.c b/drivers/gpu/drm/stm/lvds.c
index bfc8cb13fbc5c..2fa2c81784e97 100644
--- a/drivers/gpu/drm/stm/lvds.c
+++ b/drivers/gpu/drm/stm/lvds.c
@@ -1186,15 +1186,13 @@ static int lvds_probe(struct platform_device *pdev)
 	return ret;
 }
 
-static int lvds_remove(struct platform_device *pdev)
+static void lvds_remove(struct platform_device *pdev)
 {
 	struct stm_lvds *lvds = platform_get_drvdata(pdev);
 
 	lvds_pixel_clk_unregister(lvds);
 
 	drm_bridge_remove(&lvds->lvds_bridge);
-
-	return 0;
 }
 
 static const struct of_device_id lvds_dt_ids[] = {
-- 
2.39.2