[PATCH] media: camif-core: Drop GPIO handling
From: Linus Walleij <linusw@kernel.org>
Date: 2026-05-22 22:36:34
Also in:
linux-gpio, linux-media
Subsystem:
media input infrastructure (v4l/dvb), samsung s3c24xx/s3c64xx soc series camif driver, the rest · Maintainers:
Mauro Carvalho Chehab, Sylwester Nawrocki, Linus Torvalds
The driver and platform data refers to the legacy GPIO API, doesn't really use it, and also calls some GPIO-related functions passed as platform data. This platform data is not used anywhere in the kernel. I'm not outright deleting the driver, just deleting the bogus GPIO handling. If outoftree developers want to fix up the driver the GPIOs should be defined in some kind of firmware node and be obtained using the gpiod_get*() APIs directly in the driver, but I don't even know what these GPIOs are since they are hidden in platform data that is not in the mainline kernel, so what can I do. Signed-off-by: Linus Walleij <linusw@kernel.org> --- drivers/media/platform/samsung/s3c-camif/camif-core.c | 9 ++------- include/media/drv-intf/s3c_camif.h | 2 -- 2 files changed, 2 insertions(+), 9 deletions(-)
diff --git a/drivers/media/platform/samsung/s3c-camif/camif-core.c b/drivers/media/platform/samsung/s3c-camif/camif-core.c
index 221e3c447f36..1304d4191dd6 100644
--- a/drivers/media/platform/samsung/s3c-camif/camif-core.c
+++ b/drivers/media/platform/samsung/s3c-camif/camif-core.c@@ -12,7 +12,6 @@ #include <linux/delay.h> #include <linux/device.h> #include <linux/errno.h> -#include <linux/gpio.h> #include <linux/i2c.h> #include <linux/interrupt.h> #include <linux/io.h>
@@ -412,7 +411,7 @@ static int s3c_camif_probe(struct platform_device *pdev) camif->dev = dev; - if (!pdata || !pdata->gpio_get || !pdata->gpio_put) { + if (!pdata) { dev_err(dev, "wrong platform data\n"); return -EINVAL; }
@@ -429,9 +428,7 @@ static int s3c_camif_probe(struct platform_device *pdev) if (ret < 0) return ret; - ret = pdata->gpio_get(); - if (ret < 0) - return ret; + /* FIXME: get GPIOs here */ ret = s3c_camif_create_subdev(camif); if (ret < 0)
@@ -504,7 +501,6 @@ static int s3c_camif_probe(struct platform_device *pdev) err_clk: s3c_camif_unregister_subdev(camif); err_sd: - pdata->gpio_put(); return ret; }
@@ -521,7 +517,6 @@ static void s3c_camif_remove(struct platform_device *pdev) pm_runtime_disable(&pdev->dev); camif_clk_put(camif); s3c_camif_unregister_subdev(camif); - pdata->gpio_put(); } static int s3c_camif_runtime_resume(struct device *dev)
diff --git a/include/media/drv-intf/s3c_camif.h b/include/media/drv-intf/s3c_camif.h
index f746851a5ce6..00d83620ea5f 100644
--- a/include/media/drv-intf/s3c_camif.h
+++ b/include/media/drv-intf/s3c_camif.h@@ -31,8 +31,6 @@ struct s3c_camif_sensor_info { struct s3c_camif_plat_data { struct s3c_camif_sensor_info sensor; - int (*gpio_get)(void); - int (*gpio_put)(void); }; #endif /* MEDIA_S3C_CAMIF_ */ ---
base-commit: 254f49634ee16a731174d2ae34bc50bd5f45e731 change-id: 20260523-s3c-camif-descriptors-71624bc03a9d Best regards, -- Linus Walleij [off-list ref]