* [PATCH 28/53] drm/mediatek: Convert to platform remove callback returning void
2023-05-07 16:25 [PATCH 00/53] drm: Convert to platform remove callback returning void Uwe Kleine-König
@ 2023-05-07 16:25 ` Uwe Kleine-König
2023-05-08 8:25 ` Matthias Brugger
2023-05-07 16:25 ` [PATCH 29/53] " Uwe Kleine-König
` (3 subsequent siblings)
4 siblings, 1 reply; 10+ messages in thread
From: Uwe Kleine-König @ 2023-05-07 16:25 UTC (permalink / raw)
To: Chun-Kuang Hu, Philipp Zabel, David Airlie, Daniel Vetter,
Matthias Brugger
Cc: AngeloGioacchino Del Regno, dri-devel, linux-mediatek, kernel,
linux-arm-kernel
The .remove() callback for a platform driver returns an int which makes
many driver authors wrongly assume it's possible to do error handling by
returning an error code. However the value returned is (mostly) ignored
and this typically results in resource leaks. To improve here there is a
quest to make the remove callback return void. In the first step of this
quest all drivers are converted to .remove_new() which already returns
void.
Trivially convert this driver from always returning zero in the remove
callback to the void returning variant.
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
---
drivers/gpu/drm/mediatek/mtk_cec.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/mediatek/mtk_cec.c b/drivers/gpu/drm/mediatek/mtk_cec.c
index b640bc0559e7..f47f417d8ba6 100644
--- a/drivers/gpu/drm/mediatek/mtk_cec.c
+++ b/drivers/gpu/drm/mediatek/mtk_cec.c
@@ -235,13 +235,12 @@ static int mtk_cec_probe(struct platform_device *pdev)
return 0;
}
-static int mtk_cec_remove(struct platform_device *pdev)
+static void mtk_cec_remove(struct platform_device *pdev)
{
struct mtk_cec *cec = platform_get_drvdata(pdev);
mtk_cec_htplg_irq_disable(cec);
clk_disable_unprepare(cec->clk);
- return 0;
}
static const struct of_device_id mtk_cec_of_ids[] = {
@@ -252,7 +251,7 @@ MODULE_DEVICE_TABLE(of, mtk_cec_of_ids);
struct platform_driver mtk_cec_driver = {
.probe = mtk_cec_probe,
- .remove = mtk_cec_remove,
+ .remove_new = mtk_cec_remove,
.driver = {
.name = "mediatek-cec",
.of_match_table = mtk_cec_of_ids,
--
2.39.2
^ permalink raw reply related [flat|nested] 10+ messages in thread* Re: [PATCH 28/53] drm/mediatek: Convert to platform remove callback returning void
2023-05-07 16:25 ` [PATCH 28/53] drm/mediatek: " Uwe Kleine-König
@ 2023-05-08 8:25 ` Matthias Brugger
0 siblings, 0 replies; 10+ messages in thread
From: Matthias Brugger @ 2023-05-08 8:25 UTC (permalink / raw)
To: Uwe Kleine-König, Chun-Kuang Hu, Philipp Zabel, David Airlie,
Daniel Vetter
Cc: AngeloGioacchino Del Regno, dri-devel, linux-mediatek, kernel,
linux-arm-kernel
On 07/05/2023 18:25, Uwe Kleine-König wrote:
> The .remove() callback for a platform driver returns an int which makes
> many driver authors wrongly assume it's possible to do error handling by
> returning an error code. However the value returned is (mostly) ignored
> and this typically results in resource leaks. To improve here there is a
> quest to make the remove callback return void. In the first step of this
> quest all drivers are converted to .remove_new() which already returns
> void.
>
> Trivially convert this driver from always returning zero in the remove
> callback to the void returning variant.
>
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Reviewed-by: Matthias Brugger <matthias.bgg@gmail.com>
> ---
> drivers/gpu/drm/mediatek/mtk_cec.c | 5 ++---
> 1 file changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/mediatek/mtk_cec.c b/drivers/gpu/drm/mediatek/mtk_cec.c
> index b640bc0559e7..f47f417d8ba6 100644
> --- a/drivers/gpu/drm/mediatek/mtk_cec.c
> +++ b/drivers/gpu/drm/mediatek/mtk_cec.c
> @@ -235,13 +235,12 @@ static int mtk_cec_probe(struct platform_device *pdev)
> return 0;
> }
>
> -static int mtk_cec_remove(struct platform_device *pdev)
> +static void mtk_cec_remove(struct platform_device *pdev)
> {
> struct mtk_cec *cec = platform_get_drvdata(pdev);
>
> mtk_cec_htplg_irq_disable(cec);
> clk_disable_unprepare(cec->clk);
> - return 0;
> }
>
> static const struct of_device_id mtk_cec_of_ids[] = {
> @@ -252,7 +251,7 @@ MODULE_DEVICE_TABLE(of, mtk_cec_of_ids);
>
> struct platform_driver mtk_cec_driver = {
> .probe = mtk_cec_probe,
> - .remove = mtk_cec_remove,
> + .remove_new = mtk_cec_remove,
> .driver = {
> .name = "mediatek-cec",
> .of_match_table = mtk_cec_of_ids,
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 29/53] drm/mediatek: Convert to platform remove callback returning void
2023-05-07 16:25 [PATCH 00/53] drm: Convert to platform remove callback returning void Uwe Kleine-König
2023-05-07 16:25 ` [PATCH 28/53] drm/mediatek: " Uwe Kleine-König
@ 2023-05-07 16:25 ` Uwe Kleine-König
2023-05-08 8:26 ` Matthias Brugger
2023-05-08 7:06 ` [PATCH 00/53] drm: " Thomas Zimmermann
` (2 subsequent siblings)
4 siblings, 1 reply; 10+ messages in thread
From: Uwe Kleine-König @ 2023-05-07 16:25 UTC (permalink / raw)
To: Chun-Kuang Hu, Philipp Zabel, David Airlie, Daniel Vetter,
Matthias Brugger
Cc: AngeloGioacchino Del Regno, dri-devel, linux-mediatek, kernel,
linux-arm-kernel
The .remove() callback for a platform driver returns an int which makes
many driver authors wrongly assume it's possible to do error handling by
returning an error code. However the value returned is (mostly) ignored
and this typically results in resource leaks. To improve here there is a
quest to make the remove callback return void. In the first step of this
quest all drivers are converted to .remove_new() which already returns
void.
Trivially convert the mediatek drm drivers from always returning zero in
the remove callback to the void returning variant.
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
---
drivers/gpu/drm/mediatek/mtk_disp_aal.c | 6 ++----
drivers/gpu/drm/mediatek/mtk_disp_ccorr.c | 6 ++----
drivers/gpu/drm/mediatek/mtk_disp_color.c | 6 ++----
drivers/gpu/drm/mediatek/mtk_disp_gamma.c | 6 ++----
drivers/gpu/drm/mediatek/mtk_disp_merge.c | 6 ++----
drivers/gpu/drm/mediatek/mtk_disp_ovl.c | 6 ++----
drivers/gpu/drm/mediatek/mtk_disp_rdma.c | 6 ++----
drivers/gpu/drm/mediatek/mtk_dp.c | 6 ++----
drivers/gpu/drm/mediatek/mtk_dpi.c | 6 ++----
drivers/gpu/drm/mediatek/mtk_drm_drv.c | 6 ++----
drivers/gpu/drm/mediatek/mtk_dsi.c | 6 ++----
drivers/gpu/drm/mediatek/mtk_hdmi.c | 5 ++---
drivers/gpu/drm/mediatek/mtk_hdmi_ddc.c | 6 ++----
drivers/gpu/drm/mediatek/mtk_mdp_rdma.c | 5 ++---
14 files changed, 28 insertions(+), 54 deletions(-)
diff --git a/drivers/gpu/drm/mediatek/mtk_disp_aal.c b/drivers/gpu/drm/mediatek/mtk_disp_aal.c
index 434e8a9ce8ab..cbd9b4becc43 100644
--- a/drivers/gpu/drm/mediatek/mtk_disp_aal.c
+++ b/drivers/gpu/drm/mediatek/mtk_disp_aal.c
@@ -140,11 +140,9 @@ static int mtk_disp_aal_probe(struct platform_device *pdev)
return ret;
}
-static int mtk_disp_aal_remove(struct platform_device *pdev)
+static void mtk_disp_aal_remove(struct platform_device *pdev)
{
component_del(&pdev->dev, &mtk_disp_aal_component_ops);
-
- return 0;
}
static const struct mtk_disp_aal_data mt8173_aal_driver_data = {
@@ -161,7 +159,7 @@ MODULE_DEVICE_TABLE(of, mtk_disp_aal_driver_dt_match);
struct platform_driver mtk_disp_aal_driver = {
.probe = mtk_disp_aal_probe,
- .remove = mtk_disp_aal_remove,
+ .remove_new = mtk_disp_aal_remove,
.driver = {
.name = "mediatek-disp-aal",
.owner = THIS_MODULE,
diff --git a/drivers/gpu/drm/mediatek/mtk_disp_ccorr.c b/drivers/gpu/drm/mediatek/mtk_disp_ccorr.c
index 1773379b2439..fa6dbc4e9c35 100644
--- a/drivers/gpu/drm/mediatek/mtk_disp_ccorr.c
+++ b/drivers/gpu/drm/mediatek/mtk_disp_ccorr.c
@@ -195,11 +195,9 @@ static int mtk_disp_ccorr_probe(struct platform_device *pdev)
return ret;
}
-static int mtk_disp_ccorr_remove(struct platform_device *pdev)
+static void mtk_disp_ccorr_remove(struct platform_device *pdev)
{
component_del(&pdev->dev, &mtk_disp_ccorr_component_ops);
-
- return 0;
}
static const struct mtk_disp_ccorr_data mt8183_ccorr_driver_data = {
@@ -221,7 +219,7 @@ MODULE_DEVICE_TABLE(of, mtk_disp_ccorr_driver_dt_match);
struct platform_driver mtk_disp_ccorr_driver = {
.probe = mtk_disp_ccorr_probe,
- .remove = mtk_disp_ccorr_remove,
+ .remove_new = mtk_disp_ccorr_remove,
.driver = {
.name = "mediatek-disp-ccorr",
.owner = THIS_MODULE,
diff --git a/drivers/gpu/drm/mediatek/mtk_disp_color.c b/drivers/gpu/drm/mediatek/mtk_disp_color.c
index cac9206079e7..78e44e6befd6 100644
--- a/drivers/gpu/drm/mediatek/mtk_disp_color.c
+++ b/drivers/gpu/drm/mediatek/mtk_disp_color.c
@@ -132,11 +132,9 @@ static int mtk_disp_color_probe(struct platform_device *pdev)
return ret;
}
-static int mtk_disp_color_remove(struct platform_device *pdev)
+static void mtk_disp_color_remove(struct platform_device *pdev)
{
component_del(&pdev->dev, &mtk_disp_color_component_ops);
-
- return 0;
}
static const struct mtk_disp_color_data mt2701_color_driver_data = {
@@ -164,7 +162,7 @@ MODULE_DEVICE_TABLE(of, mtk_disp_color_driver_dt_match);
struct platform_driver mtk_disp_color_driver = {
.probe = mtk_disp_color_probe,
- .remove = mtk_disp_color_remove,
+ .remove_new = mtk_disp_color_remove,
.driver = {
.name = "mediatek-disp-color",
.owner = THIS_MODULE,
diff --git a/drivers/gpu/drm/mediatek/mtk_disp_gamma.c b/drivers/gpu/drm/mediatek/mtk_disp_gamma.c
index c844942603f7..c5237f4eb7fe 100644
--- a/drivers/gpu/drm/mediatek/mtk_disp_gamma.c
+++ b/drivers/gpu/drm/mediatek/mtk_disp_gamma.c
@@ -183,11 +183,9 @@ static int mtk_disp_gamma_probe(struct platform_device *pdev)
return ret;
}
-static int mtk_disp_gamma_remove(struct platform_device *pdev)
+static void mtk_disp_gamma_remove(struct platform_device *pdev)
{
component_del(&pdev->dev, &mtk_disp_gamma_component_ops);
-
- return 0;
}
static const struct mtk_disp_gamma_data mt8173_gamma_driver_data = {
@@ -209,7 +207,7 @@ MODULE_DEVICE_TABLE(of, mtk_disp_gamma_driver_dt_match);
struct platform_driver mtk_disp_gamma_driver = {
.probe = mtk_disp_gamma_probe,
- .remove = mtk_disp_gamma_remove,
+ .remove_new = mtk_disp_gamma_remove,
.driver = {
.name = "mediatek-disp-gamma",
.owner = THIS_MODULE,
diff --git a/drivers/gpu/drm/mediatek/mtk_disp_merge.c b/drivers/gpu/drm/mediatek/mtk_disp_merge.c
index 6428b6203ffe..fd14a59bc951 100644
--- a/drivers/gpu/drm/mediatek/mtk_disp_merge.c
+++ b/drivers/gpu/drm/mediatek/mtk_disp_merge.c
@@ -295,11 +295,9 @@ static int mtk_disp_merge_probe(struct platform_device *pdev)
return ret;
}
-static int mtk_disp_merge_remove(struct platform_device *pdev)
+static void mtk_disp_merge_remove(struct platform_device *pdev)
{
component_del(&pdev->dev, &mtk_disp_merge_component_ops);
-
- return 0;
}
static const struct of_device_id mtk_disp_merge_driver_dt_match[] = {
@@ -311,7 +309,7 @@ MODULE_DEVICE_TABLE(of, mtk_disp_merge_driver_dt_match);
struct platform_driver mtk_disp_merge_driver = {
.probe = mtk_disp_merge_probe,
- .remove = mtk_disp_merge_remove,
+ .remove_new = mtk_disp_merge_remove,
.driver = {
.name = "mediatek-disp-merge",
.owner = THIS_MODULE,
diff --git a/drivers/gpu/drm/mediatek/mtk_disp_ovl.c b/drivers/gpu/drm/mediatek/mtk_disp_ovl.c
index 9d8c986700ee..f90ad9bce028 100644
--- a/drivers/gpu/drm/mediatek/mtk_disp_ovl.c
+++ b/drivers/gpu/drm/mediatek/mtk_disp_ovl.c
@@ -483,12 +483,10 @@ static int mtk_disp_ovl_probe(struct platform_device *pdev)
return ret;
}
-static int mtk_disp_ovl_remove(struct platform_device *pdev)
+static void mtk_disp_ovl_remove(struct platform_device *pdev)
{
component_del(&pdev->dev, &mtk_disp_ovl_component_ops);
pm_runtime_disable(&pdev->dev);
-
- return 0;
}
static const struct mtk_disp_ovl_data mt2701_ovl_driver_data = {
@@ -565,7 +563,7 @@ MODULE_DEVICE_TABLE(of, mtk_disp_ovl_driver_dt_match);
struct platform_driver mtk_disp_ovl_driver = {
.probe = mtk_disp_ovl_probe,
- .remove = mtk_disp_ovl_remove,
+ .remove_new = mtk_disp_ovl_remove,
.driver = {
.name = "mediatek-disp-ovl",
.owner = THIS_MODULE,
diff --git a/drivers/gpu/drm/mediatek/mtk_disp_rdma.c b/drivers/gpu/drm/mediatek/mtk_disp_rdma.c
index a5a0c3bac35d..49149d67bb0e 100644
--- a/drivers/gpu/drm/mediatek/mtk_disp_rdma.c
+++ b/drivers/gpu/drm/mediatek/mtk_disp_rdma.c
@@ -350,13 +350,11 @@ static int mtk_disp_rdma_probe(struct platform_device *pdev)
return ret;
}
-static int mtk_disp_rdma_remove(struct platform_device *pdev)
+static void mtk_disp_rdma_remove(struct platform_device *pdev)
{
component_del(&pdev->dev, &mtk_disp_rdma_component_ops);
pm_runtime_disable(&pdev->dev);
-
- return 0;
}
static const struct mtk_disp_rdma_data mt2701_rdma_driver_data = {
@@ -390,7 +388,7 @@ MODULE_DEVICE_TABLE(of, mtk_disp_rdma_driver_dt_match);
struct platform_driver mtk_disp_rdma_driver = {
.probe = mtk_disp_rdma_probe,
- .remove = mtk_disp_rdma_remove,
+ .remove_new = mtk_disp_rdma_remove,
.driver = {
.name = "mediatek-disp-rdma",
.owner = THIS_MODULE,
diff --git a/drivers/gpu/drm/mediatek/mtk_dp.c b/drivers/gpu/drm/mediatek/mtk_dp.c
index 1f94fcc144d3..6352ee412045 100644
--- a/drivers/gpu/drm/mediatek/mtk_dp.c
+++ b/drivers/gpu/drm/mediatek/mtk_dp.c
@@ -2575,7 +2575,7 @@ static int mtk_dp_probe(struct platform_device *pdev)
return 0;
}
-static int mtk_dp_remove(struct platform_device *pdev)
+static void mtk_dp_remove(struct platform_device *pdev)
{
struct mtk_dp *mtk_dp = platform_get_drvdata(pdev);
@@ -2586,8 +2586,6 @@ static int mtk_dp_remove(struct platform_device *pdev)
platform_device_unregister(mtk_dp->phy_dev);
if (mtk_dp->audio_pdev)
platform_device_unregister(mtk_dp->audio_pdev);
-
- return 0;
}
#ifdef CONFIG_PM_SLEEP
@@ -2646,7 +2644,7 @@ MODULE_DEVICE_TABLE(of, mtk_dp_of_match);
static struct platform_driver mtk_dp_driver = {
.probe = mtk_dp_probe,
- .remove = mtk_dp_remove,
+ .remove_new = mtk_dp_remove,
.driver = {
.name = "mediatek-drm-dp",
.of_match_table = mtk_dp_of_match,
diff --git a/drivers/gpu/drm/mediatek/mtk_dpi.c b/drivers/gpu/drm/mediatek/mtk_dpi.c
index 948a53f1f4b3..ed3cbb202b7a 100644
--- a/drivers/gpu/drm/mediatek/mtk_dpi.c
+++ b/drivers/gpu/drm/mediatek/mtk_dpi.c
@@ -1102,14 +1102,12 @@ static int mtk_dpi_probe(struct platform_device *pdev)
return 0;
}
-static int mtk_dpi_remove(struct platform_device *pdev)
+static void mtk_dpi_remove(struct platform_device *pdev)
{
struct mtk_dpi *dpi = platform_get_drvdata(pdev);
component_del(&pdev->dev, &mtk_dpi_component_ops);
drm_bridge_remove(&dpi->bridge);
-
- return 0;
}
static const struct of_device_id mtk_dpi_of_ids[] = {
@@ -1140,7 +1138,7 @@ MODULE_DEVICE_TABLE(of, mtk_dpi_of_ids);
struct platform_driver mtk_dpi_driver = {
.probe = mtk_dpi_probe,
- .remove = mtk_dpi_remove,
+ .remove_new = mtk_dpi_remove,
.driver = {
.name = "mediatek-dpi",
.of_match_table = mtk_dpi_of_ids,
diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
index a13b36ac03a1..b951ad494f7d 100644
--- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c
+++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
@@ -826,7 +826,7 @@ static int mtk_drm_probe(struct platform_device *pdev)
return ret;
}
-static int mtk_drm_remove(struct platform_device *pdev)
+static void mtk_drm_remove(struct platform_device *pdev)
{
struct mtk_drm_private *private = platform_get_drvdata(pdev);
int i;
@@ -836,8 +836,6 @@ static int mtk_drm_remove(struct platform_device *pdev)
of_node_put(private->mutex_node);
for (i = 0; i < DDP_COMPONENT_ID_MAX; i++)
of_node_put(private->comp_node[i]);
-
- return 0;
}
static int mtk_drm_sys_prepare(struct device *dev)
@@ -866,7 +864,7 @@ static const struct dev_pm_ops mtk_drm_pm_ops = {
static struct platform_driver mtk_drm_platform_driver = {
.probe = mtk_drm_probe,
- .remove = mtk_drm_remove,
+ .remove_new = mtk_drm_remove,
.driver = {
.name = "mediatek-drm",
.pm = &mtk_drm_pm_ops,
diff --git a/drivers/gpu/drm/mediatek/mtk_dsi.c b/drivers/gpu/drm/mediatek/mtk_dsi.c
index 7d5250351193..d8bfc2cce54d 100644
--- a/drivers/gpu/drm/mediatek/mtk_dsi.c
+++ b/drivers/gpu/drm/mediatek/mtk_dsi.c
@@ -1178,14 +1178,12 @@ static int mtk_dsi_probe(struct platform_device *pdev)
return ret;
}
-static int mtk_dsi_remove(struct platform_device *pdev)
+static void mtk_dsi_remove(struct platform_device *pdev)
{
struct mtk_dsi *dsi = platform_get_drvdata(pdev);
mtk_output_dsi_disable(dsi);
mipi_dsi_host_unregister(&dsi->host);
-
- return 0;
}
static const struct mtk_dsi_driver_data mt8173_dsi_driver_data = {
@@ -1223,7 +1221,7 @@ MODULE_DEVICE_TABLE(of, mtk_dsi_of_match);
struct platform_driver mtk_dsi_driver = {
.probe = mtk_dsi_probe,
- .remove = mtk_dsi_remove,
+ .remove_new = mtk_dsi_remove,
.driver = {
.name = "mtk-dsi",
.of_match_table = mtk_dsi_of_match,
diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi.c b/drivers/gpu/drm/mediatek/mtk_hdmi.c
index 0a8e0a13f516..86133bf16326 100644
--- a/drivers/gpu/drm/mediatek/mtk_hdmi.c
+++ b/drivers/gpu/drm/mediatek/mtk_hdmi.c
@@ -1746,13 +1746,12 @@ static int mtk_drm_hdmi_probe(struct platform_device *pdev)
return ret;
}
-static int mtk_drm_hdmi_remove(struct platform_device *pdev)
+static void mtk_drm_hdmi_remove(struct platform_device *pdev)
{
struct mtk_hdmi *hdmi = platform_get_drvdata(pdev);
drm_bridge_remove(&hdmi->bridge);
mtk_hdmi_clk_disable_audio(hdmi);
- return 0;
}
#ifdef CONFIG_PM_SLEEP
@@ -1806,7 +1805,7 @@ MODULE_DEVICE_TABLE(of, mtk_drm_hdmi_of_ids);
static struct platform_driver mtk_hdmi_driver = {
.probe = mtk_drm_hdmi_probe,
- .remove = mtk_drm_hdmi_remove,
+ .remove_new = mtk_drm_hdmi_remove,
.driver = {
.name = "mediatek-drm-hdmi",
.of_match_table = mtk_drm_hdmi_of_ids,
diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi_ddc.c b/drivers/gpu/drm/mediatek/mtk_hdmi_ddc.c
index 2fc9214ffa82..63d3d5ba31f1 100644
--- a/drivers/gpu/drm/mediatek/mtk_hdmi_ddc.c
+++ b/drivers/gpu/drm/mediatek/mtk_hdmi_ddc.c
@@ -324,14 +324,12 @@ static int mtk_hdmi_ddc_probe(struct platform_device *pdev)
return ret;
}
-static int mtk_hdmi_ddc_remove(struct platform_device *pdev)
+static void mtk_hdmi_ddc_remove(struct platform_device *pdev)
{
struct mtk_hdmi_ddc *ddc = platform_get_drvdata(pdev);
i2c_del_adapter(&ddc->adap);
clk_disable_unprepare(ddc->clk);
-
- return 0;
}
static const struct of_device_id mtk_hdmi_ddc_match[] = {
@@ -342,7 +340,7 @@ MODULE_DEVICE_TABLE(of, mtk_hdmi_ddc_match);
struct platform_driver mtk_hdmi_ddc_driver = {
.probe = mtk_hdmi_ddc_probe,
- .remove = mtk_hdmi_ddc_remove,
+ .remove_new = mtk_hdmi_ddc_remove,
.driver = {
.name = "mediatek-hdmi-ddc",
.of_match_table = mtk_hdmi_ddc_match,
diff --git a/drivers/gpu/drm/mediatek/mtk_mdp_rdma.c b/drivers/gpu/drm/mediatek/mtk_mdp_rdma.c
index eecfa98ff52e..11bb6ca8cc8f 100644
--- a/drivers/gpu/drm/mediatek/mtk_mdp_rdma.c
+++ b/drivers/gpu/drm/mediatek/mtk_mdp_rdma.c
@@ -291,11 +291,10 @@ static int mtk_mdp_rdma_probe(struct platform_device *pdev)
return ret;
}
-static int mtk_mdp_rdma_remove(struct platform_device *pdev)
+static void mtk_mdp_rdma_remove(struct platform_device *pdev)
{
component_del(&pdev->dev, &mtk_mdp_rdma_component_ops);
pm_runtime_disable(&pdev->dev);
- return 0;
}
static const struct of_device_id mtk_mdp_rdma_driver_dt_match[] = {
@@ -306,7 +305,7 @@ MODULE_DEVICE_TABLE(of, mtk_mdp_rdma_driver_dt_match);
struct platform_driver mtk_mdp_rdma_driver = {
.probe = mtk_mdp_rdma_probe,
- .remove = mtk_mdp_rdma_remove,
+ .remove_new = mtk_mdp_rdma_remove,
.driver = {
.name = "mediatek-mdp-rdma",
.owner = THIS_MODULE,
--
2.39.2
^ permalink raw reply related [flat|nested] 10+ messages in thread* Re: [PATCH 29/53] drm/mediatek: Convert to platform remove callback returning void
2023-05-07 16:25 ` [PATCH 29/53] " Uwe Kleine-König
@ 2023-05-08 8:26 ` Matthias Brugger
0 siblings, 0 replies; 10+ messages in thread
From: Matthias Brugger @ 2023-05-08 8:26 UTC (permalink / raw)
To: Uwe Kleine-König, Chun-Kuang Hu, Philipp Zabel, David Airlie,
Daniel Vetter
Cc: AngeloGioacchino Del Regno, dri-devel, linux-mediatek, kernel,
linux-arm-kernel
On 07/05/2023 18:25, Uwe Kleine-König wrote:
> The .remove() callback for a platform driver returns an int which makes
> many driver authors wrongly assume it's possible to do error handling by
> returning an error code. However the value returned is (mostly) ignored
> and this typically results in resource leaks. To improve here there is a
> quest to make the remove callback return void. In the first step of this
> quest all drivers are converted to .remove_new() which already returns
> void.
>
> Trivially convert the mediatek drm drivers from always returning zero in
> the remove callback to the void returning variant.
>
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Reviewed-by: Matthias Brugger <matthias.bgg@gmail.com>
> ---
> drivers/gpu/drm/mediatek/mtk_disp_aal.c | 6 ++----
> drivers/gpu/drm/mediatek/mtk_disp_ccorr.c | 6 ++----
> drivers/gpu/drm/mediatek/mtk_disp_color.c | 6 ++----
> drivers/gpu/drm/mediatek/mtk_disp_gamma.c | 6 ++----
> drivers/gpu/drm/mediatek/mtk_disp_merge.c | 6 ++----
> drivers/gpu/drm/mediatek/mtk_disp_ovl.c | 6 ++----
> drivers/gpu/drm/mediatek/mtk_disp_rdma.c | 6 ++----
> drivers/gpu/drm/mediatek/mtk_dp.c | 6 ++----
> drivers/gpu/drm/mediatek/mtk_dpi.c | 6 ++----
> drivers/gpu/drm/mediatek/mtk_drm_drv.c | 6 ++----
> drivers/gpu/drm/mediatek/mtk_dsi.c | 6 ++----
> drivers/gpu/drm/mediatek/mtk_hdmi.c | 5 ++---
> drivers/gpu/drm/mediatek/mtk_hdmi_ddc.c | 6 ++----
> drivers/gpu/drm/mediatek/mtk_mdp_rdma.c | 5 ++---
> 14 files changed, 28 insertions(+), 54 deletions(-)
>
> diff --git a/drivers/gpu/drm/mediatek/mtk_disp_aal.c b/drivers/gpu/drm/mediatek/mtk_disp_aal.c
> index 434e8a9ce8ab..cbd9b4becc43 100644
> --- a/drivers/gpu/drm/mediatek/mtk_disp_aal.c
> +++ b/drivers/gpu/drm/mediatek/mtk_disp_aal.c
> @@ -140,11 +140,9 @@ static int mtk_disp_aal_probe(struct platform_device *pdev)
> return ret;
> }
>
> -static int mtk_disp_aal_remove(struct platform_device *pdev)
> +static void mtk_disp_aal_remove(struct platform_device *pdev)
> {
> component_del(&pdev->dev, &mtk_disp_aal_component_ops);
> -
> - return 0;
> }
>
> static const struct mtk_disp_aal_data mt8173_aal_driver_data = {
> @@ -161,7 +159,7 @@ MODULE_DEVICE_TABLE(of, mtk_disp_aal_driver_dt_match);
>
> struct platform_driver mtk_disp_aal_driver = {
> .probe = mtk_disp_aal_probe,
> - .remove = mtk_disp_aal_remove,
> + .remove_new = mtk_disp_aal_remove,
> .driver = {
> .name = "mediatek-disp-aal",
> .owner = THIS_MODULE,
> diff --git a/drivers/gpu/drm/mediatek/mtk_disp_ccorr.c b/drivers/gpu/drm/mediatek/mtk_disp_ccorr.c
> index 1773379b2439..fa6dbc4e9c35 100644
> --- a/drivers/gpu/drm/mediatek/mtk_disp_ccorr.c
> +++ b/drivers/gpu/drm/mediatek/mtk_disp_ccorr.c
> @@ -195,11 +195,9 @@ static int mtk_disp_ccorr_probe(struct platform_device *pdev)
> return ret;
> }
>
> -static int mtk_disp_ccorr_remove(struct platform_device *pdev)
> +static void mtk_disp_ccorr_remove(struct platform_device *pdev)
> {
> component_del(&pdev->dev, &mtk_disp_ccorr_component_ops);
> -
> - return 0;
> }
>
> static const struct mtk_disp_ccorr_data mt8183_ccorr_driver_data = {
> @@ -221,7 +219,7 @@ MODULE_DEVICE_TABLE(of, mtk_disp_ccorr_driver_dt_match);
>
> struct platform_driver mtk_disp_ccorr_driver = {
> .probe = mtk_disp_ccorr_probe,
> - .remove = mtk_disp_ccorr_remove,
> + .remove_new = mtk_disp_ccorr_remove,
> .driver = {
> .name = "mediatek-disp-ccorr",
> .owner = THIS_MODULE,
> diff --git a/drivers/gpu/drm/mediatek/mtk_disp_color.c b/drivers/gpu/drm/mediatek/mtk_disp_color.c
> index cac9206079e7..78e44e6befd6 100644
> --- a/drivers/gpu/drm/mediatek/mtk_disp_color.c
> +++ b/drivers/gpu/drm/mediatek/mtk_disp_color.c
> @@ -132,11 +132,9 @@ static int mtk_disp_color_probe(struct platform_device *pdev)
> return ret;
> }
>
> -static int mtk_disp_color_remove(struct platform_device *pdev)
> +static void mtk_disp_color_remove(struct platform_device *pdev)
> {
> component_del(&pdev->dev, &mtk_disp_color_component_ops);
> -
> - return 0;
> }
>
> static const struct mtk_disp_color_data mt2701_color_driver_data = {
> @@ -164,7 +162,7 @@ MODULE_DEVICE_TABLE(of, mtk_disp_color_driver_dt_match);
>
> struct platform_driver mtk_disp_color_driver = {
> .probe = mtk_disp_color_probe,
> - .remove = mtk_disp_color_remove,
> + .remove_new = mtk_disp_color_remove,
> .driver = {
> .name = "mediatek-disp-color",
> .owner = THIS_MODULE,
> diff --git a/drivers/gpu/drm/mediatek/mtk_disp_gamma.c b/drivers/gpu/drm/mediatek/mtk_disp_gamma.c
> index c844942603f7..c5237f4eb7fe 100644
> --- a/drivers/gpu/drm/mediatek/mtk_disp_gamma.c
> +++ b/drivers/gpu/drm/mediatek/mtk_disp_gamma.c
> @@ -183,11 +183,9 @@ static int mtk_disp_gamma_probe(struct platform_device *pdev)
> return ret;
> }
>
> -static int mtk_disp_gamma_remove(struct platform_device *pdev)
> +static void mtk_disp_gamma_remove(struct platform_device *pdev)
> {
> component_del(&pdev->dev, &mtk_disp_gamma_component_ops);
> -
> - return 0;
> }
>
> static const struct mtk_disp_gamma_data mt8173_gamma_driver_data = {
> @@ -209,7 +207,7 @@ MODULE_DEVICE_TABLE(of, mtk_disp_gamma_driver_dt_match);
>
> struct platform_driver mtk_disp_gamma_driver = {
> .probe = mtk_disp_gamma_probe,
> - .remove = mtk_disp_gamma_remove,
> + .remove_new = mtk_disp_gamma_remove,
> .driver = {
> .name = "mediatek-disp-gamma",
> .owner = THIS_MODULE,
> diff --git a/drivers/gpu/drm/mediatek/mtk_disp_merge.c b/drivers/gpu/drm/mediatek/mtk_disp_merge.c
> index 6428b6203ffe..fd14a59bc951 100644
> --- a/drivers/gpu/drm/mediatek/mtk_disp_merge.c
> +++ b/drivers/gpu/drm/mediatek/mtk_disp_merge.c
> @@ -295,11 +295,9 @@ static int mtk_disp_merge_probe(struct platform_device *pdev)
> return ret;
> }
>
> -static int mtk_disp_merge_remove(struct platform_device *pdev)
> +static void mtk_disp_merge_remove(struct platform_device *pdev)
> {
> component_del(&pdev->dev, &mtk_disp_merge_component_ops);
> -
> - return 0;
> }
>
> static const struct of_device_id mtk_disp_merge_driver_dt_match[] = {
> @@ -311,7 +309,7 @@ MODULE_DEVICE_TABLE(of, mtk_disp_merge_driver_dt_match);
>
> struct platform_driver mtk_disp_merge_driver = {
> .probe = mtk_disp_merge_probe,
> - .remove = mtk_disp_merge_remove,
> + .remove_new = mtk_disp_merge_remove,
> .driver = {
> .name = "mediatek-disp-merge",
> .owner = THIS_MODULE,
> diff --git a/drivers/gpu/drm/mediatek/mtk_disp_ovl.c b/drivers/gpu/drm/mediatek/mtk_disp_ovl.c
> index 9d8c986700ee..f90ad9bce028 100644
> --- a/drivers/gpu/drm/mediatek/mtk_disp_ovl.c
> +++ b/drivers/gpu/drm/mediatek/mtk_disp_ovl.c
> @@ -483,12 +483,10 @@ static int mtk_disp_ovl_probe(struct platform_device *pdev)
> return ret;
> }
>
> -static int mtk_disp_ovl_remove(struct platform_device *pdev)
> +static void mtk_disp_ovl_remove(struct platform_device *pdev)
> {
> component_del(&pdev->dev, &mtk_disp_ovl_component_ops);
> pm_runtime_disable(&pdev->dev);
> -
> - return 0;
> }
>
> static const struct mtk_disp_ovl_data mt2701_ovl_driver_data = {
> @@ -565,7 +563,7 @@ MODULE_DEVICE_TABLE(of, mtk_disp_ovl_driver_dt_match);
>
> struct platform_driver mtk_disp_ovl_driver = {
> .probe = mtk_disp_ovl_probe,
> - .remove = mtk_disp_ovl_remove,
> + .remove_new = mtk_disp_ovl_remove,
> .driver = {
> .name = "mediatek-disp-ovl",
> .owner = THIS_MODULE,
> diff --git a/drivers/gpu/drm/mediatek/mtk_disp_rdma.c b/drivers/gpu/drm/mediatek/mtk_disp_rdma.c
> index a5a0c3bac35d..49149d67bb0e 100644
> --- a/drivers/gpu/drm/mediatek/mtk_disp_rdma.c
> +++ b/drivers/gpu/drm/mediatek/mtk_disp_rdma.c
> @@ -350,13 +350,11 @@ static int mtk_disp_rdma_probe(struct platform_device *pdev)
> return ret;
> }
>
> -static int mtk_disp_rdma_remove(struct platform_device *pdev)
> +static void mtk_disp_rdma_remove(struct platform_device *pdev)
> {
> component_del(&pdev->dev, &mtk_disp_rdma_component_ops);
>
> pm_runtime_disable(&pdev->dev);
> -
> - return 0;
> }
>
> static const struct mtk_disp_rdma_data mt2701_rdma_driver_data = {
> @@ -390,7 +388,7 @@ MODULE_DEVICE_TABLE(of, mtk_disp_rdma_driver_dt_match);
>
> struct platform_driver mtk_disp_rdma_driver = {
> .probe = mtk_disp_rdma_probe,
> - .remove = mtk_disp_rdma_remove,
> + .remove_new = mtk_disp_rdma_remove,
> .driver = {
> .name = "mediatek-disp-rdma",
> .owner = THIS_MODULE,
> diff --git a/drivers/gpu/drm/mediatek/mtk_dp.c b/drivers/gpu/drm/mediatek/mtk_dp.c
> index 1f94fcc144d3..6352ee412045 100644
> --- a/drivers/gpu/drm/mediatek/mtk_dp.c
> +++ b/drivers/gpu/drm/mediatek/mtk_dp.c
> @@ -2575,7 +2575,7 @@ static int mtk_dp_probe(struct platform_device *pdev)
> return 0;
> }
>
> -static int mtk_dp_remove(struct platform_device *pdev)
> +static void mtk_dp_remove(struct platform_device *pdev)
> {
> struct mtk_dp *mtk_dp = platform_get_drvdata(pdev);
>
> @@ -2586,8 +2586,6 @@ static int mtk_dp_remove(struct platform_device *pdev)
> platform_device_unregister(mtk_dp->phy_dev);
> if (mtk_dp->audio_pdev)
> platform_device_unregister(mtk_dp->audio_pdev);
> -
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> @@ -2646,7 +2644,7 @@ MODULE_DEVICE_TABLE(of, mtk_dp_of_match);
>
> static struct platform_driver mtk_dp_driver = {
> .probe = mtk_dp_probe,
> - .remove = mtk_dp_remove,
> + .remove_new = mtk_dp_remove,
> .driver = {
> .name = "mediatek-drm-dp",
> .of_match_table = mtk_dp_of_match,
> diff --git a/drivers/gpu/drm/mediatek/mtk_dpi.c b/drivers/gpu/drm/mediatek/mtk_dpi.c
> index 948a53f1f4b3..ed3cbb202b7a 100644
> --- a/drivers/gpu/drm/mediatek/mtk_dpi.c
> +++ b/drivers/gpu/drm/mediatek/mtk_dpi.c
> @@ -1102,14 +1102,12 @@ static int mtk_dpi_probe(struct platform_device *pdev)
> return 0;
> }
>
> -static int mtk_dpi_remove(struct platform_device *pdev)
> +static void mtk_dpi_remove(struct platform_device *pdev)
> {
> struct mtk_dpi *dpi = platform_get_drvdata(pdev);
>
> component_del(&pdev->dev, &mtk_dpi_component_ops);
> drm_bridge_remove(&dpi->bridge);
> -
> - return 0;
> }
>
> static const struct of_device_id mtk_dpi_of_ids[] = {
> @@ -1140,7 +1138,7 @@ MODULE_DEVICE_TABLE(of, mtk_dpi_of_ids);
>
> struct platform_driver mtk_dpi_driver = {
> .probe = mtk_dpi_probe,
> - .remove = mtk_dpi_remove,
> + .remove_new = mtk_dpi_remove,
> .driver = {
> .name = "mediatek-dpi",
> .of_match_table = mtk_dpi_of_ids,
> diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
> index a13b36ac03a1..b951ad494f7d 100644
> --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c
> +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
> @@ -826,7 +826,7 @@ static int mtk_drm_probe(struct platform_device *pdev)
> return ret;
> }
>
> -static int mtk_drm_remove(struct platform_device *pdev)
> +static void mtk_drm_remove(struct platform_device *pdev)
> {
> struct mtk_drm_private *private = platform_get_drvdata(pdev);
> int i;
> @@ -836,8 +836,6 @@ static int mtk_drm_remove(struct platform_device *pdev)
> of_node_put(private->mutex_node);
> for (i = 0; i < DDP_COMPONENT_ID_MAX; i++)
> of_node_put(private->comp_node[i]);
> -
> - return 0;
> }
>
> static int mtk_drm_sys_prepare(struct device *dev)
> @@ -866,7 +864,7 @@ static const struct dev_pm_ops mtk_drm_pm_ops = {
>
> static struct platform_driver mtk_drm_platform_driver = {
> .probe = mtk_drm_probe,
> - .remove = mtk_drm_remove,
> + .remove_new = mtk_drm_remove,
> .driver = {
> .name = "mediatek-drm",
> .pm = &mtk_drm_pm_ops,
> diff --git a/drivers/gpu/drm/mediatek/mtk_dsi.c b/drivers/gpu/drm/mediatek/mtk_dsi.c
> index 7d5250351193..d8bfc2cce54d 100644
> --- a/drivers/gpu/drm/mediatek/mtk_dsi.c
> +++ b/drivers/gpu/drm/mediatek/mtk_dsi.c
> @@ -1178,14 +1178,12 @@ static int mtk_dsi_probe(struct platform_device *pdev)
> return ret;
> }
>
> -static int mtk_dsi_remove(struct platform_device *pdev)
> +static void mtk_dsi_remove(struct platform_device *pdev)
> {
> struct mtk_dsi *dsi = platform_get_drvdata(pdev);
>
> mtk_output_dsi_disable(dsi);
> mipi_dsi_host_unregister(&dsi->host);
> -
> - return 0;
> }
>
> static const struct mtk_dsi_driver_data mt8173_dsi_driver_data = {
> @@ -1223,7 +1221,7 @@ MODULE_DEVICE_TABLE(of, mtk_dsi_of_match);
>
> struct platform_driver mtk_dsi_driver = {
> .probe = mtk_dsi_probe,
> - .remove = mtk_dsi_remove,
> + .remove_new = mtk_dsi_remove,
> .driver = {
> .name = "mtk-dsi",
> .of_match_table = mtk_dsi_of_match,
> diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi.c b/drivers/gpu/drm/mediatek/mtk_hdmi.c
> index 0a8e0a13f516..86133bf16326 100644
> --- a/drivers/gpu/drm/mediatek/mtk_hdmi.c
> +++ b/drivers/gpu/drm/mediatek/mtk_hdmi.c
> @@ -1746,13 +1746,12 @@ static int mtk_drm_hdmi_probe(struct platform_device *pdev)
> return ret;
> }
>
> -static int mtk_drm_hdmi_remove(struct platform_device *pdev)
> +static void mtk_drm_hdmi_remove(struct platform_device *pdev)
> {
> struct mtk_hdmi *hdmi = platform_get_drvdata(pdev);
>
> drm_bridge_remove(&hdmi->bridge);
> mtk_hdmi_clk_disable_audio(hdmi);
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> @@ -1806,7 +1805,7 @@ MODULE_DEVICE_TABLE(of, mtk_drm_hdmi_of_ids);
>
> static struct platform_driver mtk_hdmi_driver = {
> .probe = mtk_drm_hdmi_probe,
> - .remove = mtk_drm_hdmi_remove,
> + .remove_new = mtk_drm_hdmi_remove,
> .driver = {
> .name = "mediatek-drm-hdmi",
> .of_match_table = mtk_drm_hdmi_of_ids,
> diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi_ddc.c b/drivers/gpu/drm/mediatek/mtk_hdmi_ddc.c
> index 2fc9214ffa82..63d3d5ba31f1 100644
> --- a/drivers/gpu/drm/mediatek/mtk_hdmi_ddc.c
> +++ b/drivers/gpu/drm/mediatek/mtk_hdmi_ddc.c
> @@ -324,14 +324,12 @@ static int mtk_hdmi_ddc_probe(struct platform_device *pdev)
> return ret;
> }
>
> -static int mtk_hdmi_ddc_remove(struct platform_device *pdev)
> +static void mtk_hdmi_ddc_remove(struct platform_device *pdev)
> {
> struct mtk_hdmi_ddc *ddc = platform_get_drvdata(pdev);
>
> i2c_del_adapter(&ddc->adap);
> clk_disable_unprepare(ddc->clk);
> -
> - return 0;
> }
>
> static const struct of_device_id mtk_hdmi_ddc_match[] = {
> @@ -342,7 +340,7 @@ MODULE_DEVICE_TABLE(of, mtk_hdmi_ddc_match);
>
> struct platform_driver mtk_hdmi_ddc_driver = {
> .probe = mtk_hdmi_ddc_probe,
> - .remove = mtk_hdmi_ddc_remove,
> + .remove_new = mtk_hdmi_ddc_remove,
> .driver = {
> .name = "mediatek-hdmi-ddc",
> .of_match_table = mtk_hdmi_ddc_match,
> diff --git a/drivers/gpu/drm/mediatek/mtk_mdp_rdma.c b/drivers/gpu/drm/mediatek/mtk_mdp_rdma.c
> index eecfa98ff52e..11bb6ca8cc8f 100644
> --- a/drivers/gpu/drm/mediatek/mtk_mdp_rdma.c
> +++ b/drivers/gpu/drm/mediatek/mtk_mdp_rdma.c
> @@ -291,11 +291,10 @@ static int mtk_mdp_rdma_probe(struct platform_device *pdev)
> return ret;
> }
>
> -static int mtk_mdp_rdma_remove(struct platform_device *pdev)
> +static void mtk_mdp_rdma_remove(struct platform_device *pdev)
> {
> component_del(&pdev->dev, &mtk_mdp_rdma_component_ops);
> pm_runtime_disable(&pdev->dev);
> - return 0;
> }
>
> static const struct of_device_id mtk_mdp_rdma_driver_dt_match[] = {
> @@ -306,7 +305,7 @@ MODULE_DEVICE_TABLE(of, mtk_mdp_rdma_driver_dt_match);
>
> struct platform_driver mtk_mdp_rdma_driver = {
> .probe = mtk_mdp_rdma_probe,
> - .remove = mtk_mdp_rdma_remove,
> + .remove_new = mtk_mdp_rdma_remove,
> .driver = {
> .name = "mediatek-mdp-rdma",
> .owner = THIS_MODULE,
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 00/53] drm: Convert to platform remove callback returning void
2023-05-07 16:25 [PATCH 00/53] drm: Convert to platform remove callback returning void Uwe Kleine-König
2023-05-07 16:25 ` [PATCH 28/53] drm/mediatek: " Uwe Kleine-König
2023-05-07 16:25 ` [PATCH 29/53] " Uwe Kleine-König
@ 2023-05-08 7:06 ` Thomas Zimmermann
2023-05-08 7:50 ` Uwe Kleine-König
2023-05-15 7:50 ` Inki Dae
2023-09-09 14:37 ` Javier Martinez Canillas
4 siblings, 1 reply; 10+ messages in thread
From: Thomas Zimmermann @ 2023-05-08 7:06 UTC (permalink / raw)
To: Uwe Kleine-König, James, Liviu Dudau, Mihail Atanassov,
Brian Starkey, David Airlie, Daniel Vetter, Russell King,
Joel Stanley, Sam Ravnborg, Boris Brezillon, Nicolas Ferre,
Alexandre Belloni, Claudiu Beznea, Andrzej Hajda, Neil Armstrong,
Robert Foss, Tomi Valkeinen, Rahul T R, Jayshri Pawar, Liu Ying,
Shawn Guo, Sascha Hauer, Minghao Chi, Mark Brown,
Kuninori Morimoto, Lucas Stach, Inki Dae, Seung-Woo Kim,
Kyungmin Park, Krzysztof Kozlowski, Jingoo Han, Stefan Agner,
Alison Wang, Xinliang Liu, Tian Tao, Ville Syrjälä,
Jani Nikula, Danilo Krummrich, Laurent Pinchart,
Javier Martinez Canillas, Laurentiu Palcu, Philipp Zabel,
Paul Cercueil, Anitha Chrisanthus, Edmund Dea, Qiang Yu,
Paul Kocialkowski, Linus Walleij, Chun-Kuang Hu, Matthias Brugger,
Kevin Hilman, Rob Clark, Abhinav Kumar, Dmitry Baryshkov,
Akhil P Oommen, Ricardo Ribalda, Konrad Dybcio, Johan Hovold,
Joel, Stephen Boyd, Marijn Suijten, Liu Shixin, Douglas Anderson,
Miaoqian Lin, Kuogee Hsieh, Bjorn Andersson, Marek Vasut,
Ben Skeggs, Karol Herbst, Lyude Paul, Tomi Valkeinen,
Guo Zhengkui, Yuan Can, Arnd Bergmann, Liang He, Thierry Reding,
Rob Herring, Tomeu Vizoso, Kieran Bingham, Sandy Huang,
Heiko Stübner, Orson Zhai, Baolin Wang, Chunyan Zhang,
Deepak R Varma, Alex Deucher, Alain Volmat, Yannick Fertre,
Raphael Gallais-Pou, Philippe Cornu, Maxime Coquelin,
Alexandre Torgue, Maxime Ripard, Chen-Yu Tsai, Jernej Skrabec,
Samuel Holland, Jonathan Hunter, Maxime Ripard, Maíra Canal,
Noralf Trønnes, Jyri Sarha, Alexey Brodkin, Emma Anholt,
Melissa Wen, Hyun Kwon, Michal Simek
Cc: Mali DP Maintainers, dri-devel, kernel, Andrew Jeffery,
linux-aspeed, linux-arm-kernel, Jonas Karlman, Fabio Estevam,
NXP Linux Team, Russell King, Christian Gmeiner, etnaviv,
Alim Akhtar, linux-samsung-soc, Xinwei Kong, Sumit Semwal,
Yongqin Liu, John Stultz, linux-mips, lima,
AngeloGioacchino Del Regno, linux-mediatek, Jerome Brunet,
Martin Blumenstingl, linux-amlogic, Sean Paul, linux-arm-msm,
freedreno, nouveau, Steven Price, Alyssa Rosenzweig,
linux-renesas-soc, linux-rockchip, linux-stm32, linux-sunxi,
linux-tegra
[-- Attachment #1.1: Type: text/plain, Size: 16005 bytes --]
Hi,
for the whole series:
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
Please see my comment on the patches to tiny/.
Let me know if you want me to merge this patchset into drm-misc-next.
Best regards
Thomas
Am 07.05.23 um 18:25 schrieb Uwe Kleine-König:
> Hello,
>
> this patch series adapts the platform drivers below drivers/gpu/drm
> to use the .remove_new() callback. Compared to the traditional .remove()
> callback .remove_new() returns no value. This is a good thing because
> the driver core doesn't (and cannot) cope for errors during remove. The
> only effect of a non-zero return value in .remove() is that the driver
> core emits a warning. The device is removed anyhow and an early return
> from .remove() usually yields a resource leak.
>
> By changing the remove callback to return void driver authors cannot
> reasonably (but wrongly) assume any more that there happens some kind of
> cleanup later.
>
> Best regards
> Uwe
>
> Uwe Kleine-König (53):
> drm/komeda: Convert to platform remove callback returning void
> drm/arm/hdlcd: Convert to platform remove callback returning void
> drm/arm/malidp: Convert to platform remove callback returning void
> drm/armada: Convert to platform remove callback returning void
> drm/aspeed: Convert to platform remove callback returning void
> drm/atmel-hlcdc: Convert to platform remove callback returning void
> drm/bridge: cdns-dsi: Convert to platform remove callback returning
> void
> drm/bridge: display-connector: Convert to platform remove callback
> returning void
> drm/bridge: fsl-ldb: Convert to platform remove callback returning
> void
> drm/imx/imx8*: Convert to platform remove callback returning void
> drm/bridge: lvds-codec: Convert to platform remove callback returning
> void
> drm/bridge: nwl-dsi: Convert to platform remove callback returning
> void
> drm/bridge: simple-bridge: Convert to platform remove callback
> returning void
> drm/bridge: synopsys: Convert to platform remove callback returning
> void
> drm/bridge: thc63lvd1024: Convert to platform remove callback
> returning void
> drm/bridge: tfp410: Convert to platform remove callback returning void
> drm/etnaviv: Convert to platform remove callback returning void
> drm/exynos: Convert to platform remove callback returning void
> drm/fsl-dcu: Convert to platform remove callback returning void
> drm/hisilicon: Convert to platform remove callback returning void
> drm/imx/dcss: Convert to platform remove callback returning void
> drm/imx/ipuv3: Convert to platform remove callback returning void
> drm/ingenic: Convert to platform remove callback returning void
> drm/kmb: Convert to platform remove callback returning void
> drm/lima: Convert to platform remove callback returning void
> drm/logicvc: Convert to platform remove callback returning void
> drm/mcde: Convert to platform remove callback returning void
> drm/mediatek: Convert to platform remove callback returning void
> drm/mediatek: Convert to platform remove callback returning void
> drm/meson: Convert to platform remove callback returning void
> drm/msm: Convert to platform remove callback returning void
> drm/mxsfb: Convert to platform remove callback returning void
> drm/nouveau: Convert to platform remove callback returning void
> drm/omap: Convert to platform remove callback returning void
> drm/panel: Convert to platform remove callback returning void
> drm/panfrost: Convert to platform remove callback returning void
> drm/rcar-du: Convert to platform remove callback returning void
> drm/rockchip: Convert to platform remove callback returning void
> drm/shmobile: Convert to platform remove callback returning void
> drm/sprd: Convert to platform remove callback returning void
> drm/sti: Convert to platform remove callback returning void
> drm/stm: Convert to platform remove callback returning void
> drm/sun4i: Convert to platform remove callback returning void
> drm/tegra: Convert to platform remove callback returning void
> drm/tests: helpers: Convert to platform remove callback returning void
> drm/tidss: Convert to platform remove callback returning void
> drm/tilcdc: Convert to platform remove callback returning void
> drm/tiny: Convert to platform remove callback returning void
> drm/tiny: Convert to platform remove callback returning void
> drm/tve200: Convert to platform remove callback returning void
> drm/v3d: Convert to platform remove callback returning void
> drm/vc4: Convert to platform remove callback returning void
> drm/xlnx/zynqmp_dpsub: Convert to platform remove callback returning
> void
>
> drivers/gpu/drm/arm/display/komeda/komeda_drv.c | 5 ++---
> drivers/gpu/drm/arm/hdlcd_drv.c | 5 ++---
> drivers/gpu/drm/arm/malidp_drv.c | 5 ++---
> drivers/gpu/drm/armada/armada_crtc.c | 5 ++---
> drivers/gpu/drm/armada/armada_drv.c | 5 ++---
> drivers/gpu/drm/aspeed/aspeed_gfx_drv.c | 6 ++----
> drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c | 6 ++----
> drivers/gpu/drm/bridge/cadence/cdns-dsi-core.c | 6 ++----
> drivers/gpu/drm/bridge/display-connector.c | 6 ++----
> drivers/gpu/drm/bridge/fsl-ldb.c | 6 ++----
> drivers/gpu/drm/bridge/imx/imx8qm-ldb-drv.c | 6 ++----
> drivers/gpu/drm/bridge/imx/imx8qxp-ldb-drv.c | 6 ++----
> drivers/gpu/drm/bridge/imx/imx8qxp-pixel-combiner.c | 6 ++----
> drivers/gpu/drm/bridge/imx/imx8qxp-pixel-link.c | 6 ++----
> drivers/gpu/drm/bridge/imx/imx8qxp-pxl2dpi.c | 6 ++----
> drivers/gpu/drm/bridge/lvds-codec.c | 6 ++----
> drivers/gpu/drm/bridge/nwl-dsi.c | 5 ++---
> drivers/gpu/drm/bridge/simple-bridge.c | 6 ++----
> drivers/gpu/drm/bridge/synopsys/dw-hdmi-ahb-audio.c | 6 ++----
> drivers/gpu/drm/bridge/synopsys/dw-hdmi-cec.c | 6 ++----
> drivers/gpu/drm/bridge/synopsys/dw-hdmi-gp-audio.c | 6 ++----
> drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c | 6 ++----
> drivers/gpu/drm/bridge/thc63lvd1024.c | 6 ++----
> drivers/gpu/drm/bridge/ti-tfp410.c | 6 ++----
> drivers/gpu/drm/etnaviv/etnaviv_drv.c | 6 ++----
> drivers/gpu/drm/etnaviv/etnaviv_gpu.c | 5 ++---
> drivers/gpu/drm/exynos/exynos5433_drm_decon.c | 6 ++----
> drivers/gpu/drm/exynos/exynos7_drm_decon.c | 6 ++----
> drivers/gpu/drm/exynos/exynos_dp.c | 6 ++----
> drivers/gpu/drm/exynos/exynos_drm_drv.c | 5 ++---
> drivers/gpu/drm/exynos/exynos_drm_dsi.c | 6 ++----
> drivers/gpu/drm/exynos/exynos_drm_fimc.c | 6 ++----
> drivers/gpu/drm/exynos/exynos_drm_fimd.c | 6 ++----
> drivers/gpu/drm/exynos/exynos_drm_g2d.c | 6 ++----
> drivers/gpu/drm/exynos/exynos_drm_gsc.c | 6 ++----
> drivers/gpu/drm/exynos/exynos_drm_mic.c | 6 ++----
> drivers/gpu/drm/exynos/exynos_drm_rotator.c | 6 ++----
> drivers/gpu/drm/exynos/exynos_drm_scaler.c | 6 ++----
> drivers/gpu/drm/exynos/exynos_hdmi.c | 6 ++----
> drivers/gpu/drm/exynos/exynos_mixer.c | 6 ++----
> drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c | 6 ++----
> drivers/gpu/drm/hisilicon/kirin/dw_drm_dsi.c | 6 ++----
> drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c | 5 ++---
> drivers/gpu/drm/imx/dcss/dcss-drv.c | 6 ++----
> drivers/gpu/drm/imx/ipuv3/dw_hdmi-imx.c | 6 ++----
> drivers/gpu/drm/imx/ipuv3/imx-drm-core.c | 5 ++---
> drivers/gpu/drm/imx/ipuv3/imx-ldb.c | 5 ++---
> drivers/gpu/drm/imx/ipuv3/imx-tve.c | 5 ++---
> drivers/gpu/drm/imx/ipuv3/ipuv3-crtc.c | 5 ++---
> drivers/gpu/drm/imx/ipuv3/parallel-display.c | 6 ++----
> drivers/gpu/drm/ingenic/ingenic-drm-drv.c | 6 ++----
> drivers/gpu/drm/ingenic/ingenic-ipu.c | 5 ++---
> drivers/gpu/drm/kmb/kmb_drv.c | 5 ++---
> drivers/gpu/drm/lima/lima_drv.c | 5 ++---
> drivers/gpu/drm/logicvc/logicvc_drm.c | 6 ++----
> drivers/gpu/drm/mcde/mcde_drv.c | 6 ++----
> drivers/gpu/drm/mcde/mcde_dsi.c | 6 ++----
> drivers/gpu/drm/mediatek/mtk_cec.c | 5 ++---
> drivers/gpu/drm/mediatek/mtk_disp_aal.c | 6 ++----
> drivers/gpu/drm/mediatek/mtk_disp_ccorr.c | 6 ++----
> drivers/gpu/drm/mediatek/mtk_disp_color.c | 6 ++----
> drivers/gpu/drm/mediatek/mtk_disp_gamma.c | 6 ++----
> drivers/gpu/drm/mediatek/mtk_disp_merge.c | 6 ++----
> drivers/gpu/drm/mediatek/mtk_disp_ovl.c | 6 ++----
> drivers/gpu/drm/mediatek/mtk_disp_rdma.c | 6 ++----
> drivers/gpu/drm/mediatek/mtk_dp.c | 6 ++----
> drivers/gpu/drm/mediatek/mtk_dpi.c | 6 ++----
> drivers/gpu/drm/mediatek/mtk_drm_drv.c | 6 ++----
> drivers/gpu/drm/mediatek/mtk_dsi.c | 6 ++----
> drivers/gpu/drm/mediatek/mtk_hdmi.c | 5 ++---
> drivers/gpu/drm/mediatek/mtk_hdmi_ddc.c | 6 ++----
> drivers/gpu/drm/mediatek/mtk_mdp_rdma.c | 5 ++---
> drivers/gpu/drm/meson/meson_drv.c | 6 ++----
> drivers/gpu/drm/meson/meson_dw_hdmi.c | 6 ++----
> drivers/gpu/drm/msm/adreno/adreno_device.c | 5 ++---
> drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 6 ++----
> drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c | 6 ++----
> drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c | 5 ++---
> drivers/gpu/drm/msm/dp/dp_display.c | 6 ++----
> drivers/gpu/drm/msm/dsi/dsi.c | 6 ++----
> drivers/gpu/drm/msm/hdmi/hdmi.c | 6 ++----
> drivers/gpu/drm/msm/hdmi/hdmi_phy.c | 6 ++----
> drivers/gpu/drm/msm/msm_drv.c | 6 ++----
> drivers/gpu/drm/msm/msm_mdss.c | 6 ++----
> drivers/gpu/drm/mxsfb/lcdif_drv.c | 6 ++----
> drivers/gpu/drm/mxsfb/mxsfb_drv.c | 6 ++----
> drivers/gpu/drm/nouveau/nouveau_platform.c | 5 ++---
> drivers/gpu/drm/omapdrm/dss/dispc.c | 5 ++---
> drivers/gpu/drm/omapdrm/dss/dsi.c | 6 ++----
> drivers/gpu/drm/omapdrm/dss/dss.c | 6 ++----
> drivers/gpu/drm/omapdrm/dss/hdmi4.c | 5 ++---
> drivers/gpu/drm/omapdrm/dss/hdmi5.c | 5 ++---
> drivers/gpu/drm/omapdrm/dss/venc.c | 5 ++---
> drivers/gpu/drm/omapdrm/omap_dmm_tiler.c | 9 +++------
> drivers/gpu/drm/omapdrm/omap_drv.c | 6 ++----
> drivers/gpu/drm/panel/panel-lvds.c | 6 ++----
> drivers/gpu/drm/panel/panel-seiko-43wvf1g.c | 6 ++----
> drivers/gpu/drm/panel/panel-sharp-ls037v7dw01.c | 6 ++----
> drivers/gpu/drm/panel/panel-simple.c | 6 ++----
> drivers/gpu/drm/panfrost/panfrost_drv.c | 5 ++---
> drivers/gpu/drm/rcar-du/rcar_cmm.c | 6 ++----
> drivers/gpu/drm/rcar-du/rcar_du_drv.c | 6 ++----
> drivers/gpu/drm/rcar-du/rcar_dw_hdmi.c | 6 ++----
> drivers/gpu/drm/rcar-du/rcar_lvds.c | 6 ++----
> drivers/gpu/drm/rcar-du/rcar_mipi_dsi.c | 6 ++----
> drivers/gpu/drm/rcar-du/rzg2l_mipi_dsi.c | 6 ++----
> drivers/gpu/drm/rockchip/analogix_dp-rockchip.c | 6 ++----
> drivers/gpu/drm/rockchip/cdn-dp-core.c | 6 ++----
> drivers/gpu/drm/rockchip/dw-mipi-dsi-rockchip.c | 6 ++----
> drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c | 6 ++----
> drivers/gpu/drm/rockchip/inno_hdmi.c | 6 ++----
> drivers/gpu/drm/rockchip/rk3066_hdmi.c | 6 ++----
> drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 6 ++----
> drivers/gpu/drm/rockchip/rockchip_lvds.c | 6 ++----
> drivers/gpu/drm/rockchip/rockchip_vop2_reg.c | 6 ++----
> drivers/gpu/drm/rockchip/rockchip_vop_reg.c | 6 ++----
> drivers/gpu/drm/shmobile/shmob_drm_drv.c | 6 ++----
> drivers/gpu/drm/sprd/sprd_dpu.c | 6 ++----
> drivers/gpu/drm/sprd/sprd_drm.c | 5 ++---
> drivers/gpu/drm/sprd/sprd_dsi.c | 6 ++----
> drivers/gpu/drm/sti/sti_compositor.c | 5 ++---
> drivers/gpu/drm/sti/sti_drv.c | 6 ++----
> drivers/gpu/drm/sti/sti_dvo.c | 5 ++---
> drivers/gpu/drm/sti/sti_hda.c | 5 ++---
> drivers/gpu/drm/sti/sti_hdmi.c | 6 ++----
> drivers/gpu/drm/sti/sti_hqvdp.c | 5 ++---
> drivers/gpu/drm/sti/sti_tvout.c | 5 ++---
> drivers/gpu/drm/stm/drv.c | 6 ++----
> drivers/gpu/drm/stm/dw_mipi_dsi-stm.c | 6 ++----
> drivers/gpu/drm/sun4i/sun4i_backend.c | 6 ++----
> drivers/gpu/drm/sun4i/sun4i_drv.c | 6 ++----
> drivers/gpu/drm/sun4i/sun4i_frontend.c | 6 ++----
> drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c | 6 ++----
> drivers/gpu/drm/sun4i/sun4i_tcon.c | 6 ++----
> drivers/gpu/drm/sun4i/sun4i_tv.c | 6 ++----
> drivers/gpu/drm/sun4i/sun6i_drc.c | 6 ++----
> drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c | 6 ++----
> drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c | 6 ++----
> drivers/gpu/drm/sun4i/sun8i_mixer.c | 6 ++----
> drivers/gpu/drm/sun4i/sun8i_tcon_top.c | 6 ++----
> drivers/gpu/drm/tegra/dpaux.c | 6 ++----
> drivers/gpu/drm/tests/drm_kunit_helpers.c | 5 ++---
> drivers/gpu/drm/tidss/tidss_drv.c | 6 ++----
> drivers/gpu/drm/tilcdc/tilcdc_panel.c | 6 ++----
> drivers/gpu/drm/tiny/arcpgu.c | 6 ++----
> drivers/gpu/drm/tiny/ofdrm.c | 6 ++----
> drivers/gpu/drm/tiny/simpledrm.c | 6 ++----
> drivers/gpu/drm/tve200/tve200_drv.c | 6 ++----
> drivers/gpu/drm/v3d/v3d_drv.c | 6 ++----
> drivers/gpu/drm/vc4/vc4_crtc.c | 5 ++---
> drivers/gpu/drm/vc4/vc4_dpi.c | 5 ++---
> drivers/gpu/drm/vc4/vc4_drv.c | 6 ++----
> drivers/gpu/drm/vc4/vc4_dsi.c | 6 ++----
> drivers/gpu/drm/vc4/vc4_hdmi.c | 5 ++---
> drivers/gpu/drm/vc4/vc4_hvs.c | 5 ++---
> drivers/gpu/drm/vc4/vc4_txp.c | 5 ++---
> drivers/gpu/drm/vc4/vc4_v3d.c | 5 ++---
> drivers/gpu/drm/vc4/vc4_vec.c | 5 ++---
> drivers/gpu/drm/xlnx/zynqmp_dpsub.c | 6 ++----
> 159 files changed, 319 insertions(+), 597 deletions(-)
>
>
> base-commit: 457391b0380335d5e9a5babdec90ac53928b23b4
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Frankenstrasse 146, 90461 Nuernberg, Germany
GF: Ivo Totev, Andrew Myers, Andrew McDonald, Boudien Moerman
HRB 36809 (AG Nuernberg)
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 840 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 00/53] drm: Convert to platform remove callback returning void
2023-05-08 7:06 ` [PATCH 00/53] drm: " Thomas Zimmermann
@ 2023-05-08 7:50 ` Uwe Kleine-König
0 siblings, 0 replies; 10+ messages in thread
From: Uwe Kleine-König @ 2023-05-08 7:50 UTC (permalink / raw)
To: Thomas Zimmermann
Cc: James (Qian) Wang, Liviu Dudau, Mihail Atanassov, Brian Starkey,
David Airlie, Daniel Vetter, Russell King, Joel Stanley,
Sam Ravnborg, Boris Brezillon, Nicolas Ferre, Alexandre Belloni,
Claudiu Beznea, Andrzej Hajda, Neil Armstrong, Robert Foss,
Tomi Valkeinen, Rahul T R, Jayshri Pawar, Liu Ying, Shawn Guo,
Sascha Hauer, Minghao Chi, Mark Brown, Kuninori Morimoto,
Lucas Stach, Inki Dae, Seung-Woo Kim, Kyungmin Park,
Krzysztof Kozlowski, Jingoo Han, Stefan Agner, Alison Wang,
Xinliang Liu, Tian Tao, Ville Syrjälä, Jani Nikula,
Danilo Krummrich, Laurent Pinchart, Javier Martinez Canillas,
Laurentiu Palcu, Philipp Zabel, Paul Cercueil, Anitha Chrisanthus,
Qiang Yu, Paul Kocialkowski, Linus Walleij, Chun-Kuang Hu,
Matthias Brugger, Kevin Hilman, Rob Clark, Abhinav Kumar,
Dmitry Baryshkov, Akhil P Oommen, Ricardo Ribalda, Konrad Dybcio,
Johan Hovold, Joel Fernandes, Stephen Boyd, Marijn Suijten,
Liu Shixin, Douglas Anderson, Miaoqian Lin, Kuogee Hsieh,
Bjorn Andersson, Marek Vasut, Ben Skeggs, Karol Herbst,
Lyude Paul, Tomi Valkeinen, Guo Zhengkui, Yuan Can, Arnd Bergmann,
Liang He, Thierry Reding, Rob Herring, Kieran Bingham,
Sandy Huang, Heiko Stübner, Orson Zhai, Baolin Wang,
Chunyan Zhang, Deepak R Varma, Alex Deucher, Alain Volmat,
Yannick Fertre, Raphael Gallais-Pou, Philippe Cornu,
Maxime Coquelin, Alexandre Torgue, Maxime Ripard, Chen-Yu Tsai,
Jernej Skrabec, Samuel Holland, Jonathan Hunter, Maxime Ripard,
Maíra Canal, Noralf Trønnes, Jyri Sarha, Alexey Brodkin,
Emma Anholt, Melissa Wen, Hyun Kwon, Michal Simek, linux-aspeed,
nouveau, dri-devel, John Stultz, Alim Akhtar, Fabio Estevam,
Sumit Semwal, Jerome Brunet, linux-samsung-soc, lima,
Steven Price, linux-rockchip, Xinwei Kong, Mali DP Maintainers,
NXP Linux Team, Russell King, linux-sunxi, Jonas Karlman,
Martin Blumenstingl, linux-arm-msm, etnaviv, Christian Gmeiner,
linux-mediatek, linux-tegra, linux-amlogic, Sean Paul,
linux-arm-kernel, AngeloGioacchino Del Regno, Andrew Jeffery,
linux-stm32, linux-mips, linux-renesas-soc, kernel, Yongqin Liu,
freedreno
[-- Attachment #1: Type: text/plain, Size: 766 bytes --]
[A few addressed bounced and my script to find the recipents for a patch
series broke and invented some addresses. I fixed all the problem I'm
aware of in this mail.]
On Mon, May 08, 2023 at 09:06:27AM +0200, Thomas Zimmermann wrote:
> for the whole series:
>
> Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
>
> Please see my comment on the patches to tiny/.
>
> Let me know if you want me to merge this patchset into drm-misc-next.
Thanks, I'd wait a bit for more acks/reviews to come in and then plan to
resend later, also addressing the feedback you sent.
Best regards
Uwe
--
Pengutronix e.K. | Uwe Kleine-König |
Industrial Linux Solutions | https://www.pengutronix.de/ |
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 00/53] drm: Convert to platform remove callback returning void
2023-05-07 16:25 [PATCH 00/53] drm: Convert to platform remove callback returning void Uwe Kleine-König
` (2 preceding siblings ...)
2023-05-08 7:06 ` [PATCH 00/53] drm: " Thomas Zimmermann
@ 2023-05-15 7:50 ` Inki Dae
2023-05-15 9:20 ` Uwe Kleine-König
2023-09-09 14:37 ` Javier Martinez Canillas
4 siblings, 1 reply; 10+ messages in thread
From: Inki Dae @ 2023-05-15 7:50 UTC (permalink / raw)
To: Uwe Kleine-König
Cc: James, Liviu Dudau, Mihail Atanassov, Brian Starkey, David Airlie,
Daniel Vetter, Russell King, Joel Stanley, Sam Ravnborg,
Boris Brezillon, Nicolas Ferre, Alexandre Belloni, Claudiu Beznea,
Andrzej Hajda, Neil Armstrong, Robert Foss, Tomi Valkeinen,
Rahul T R, Jayshri Pawar, Liu Ying, Shawn Guo, Sascha Hauer,
Minghao Chi, Mark Brown, Kuninori Morimoto, Lucas Stach,
Seung-Woo Kim, Kyungmin Park, Krzysztof Kozlowski, Jingoo Han,
Stefan Agner, Alison Wang, Xinliang Liu, Tian Tao,
Ville Syrjälä, Jani Nikula, Thomas Zimmermann,
Danilo Krummrich, Laurent Pinchart, Javier Martinez Canillas,
Laurentiu Palcu, Philipp Zabel, Paul Cercueil, Anitha Chrisanthus,
Edmund Dea, Qiang Yu, Paul Kocialkowski, Linus Walleij,
Chun-Kuang Hu, Matthias Brugger, Kevin Hilman, Rob Clark,
Abhinav Kumar, Dmitry Baryshkov, Akhil P Oommen, Ricardo Ribalda,
Konrad Dybcio, Johan Hovold, Joel, Stephen Boyd, Marijn Suijten,
Liu Shixin, Douglas Anderson, Miaoqian Lin, Kuogee Hsieh,
Bjorn Andersson, Marek Vasut, Ben Skeggs, Karol Herbst,
Lyude Paul, Tomi Valkeinen, Guo Zhengkui, Yuan Can, Arnd Bergmann,
Liang He, Thierry Reding, Rob Herring, Tomeu Vizoso,
Kieran Bingham, Sandy Huang, Heiko Stübner, Orson Zhai,
Baolin Wang, Chunyan Zhang, Deepak R Varma, Alex Deucher,
Alain Volmat, Yannick Fertre, Raphael Gallais-Pou, Philippe Cornu,
Maxime Coquelin, Alexandre Torgue, Maxime Ripard, Chen-Yu Tsai,
Jernej Skrabec, Samuel Holland, Jonathan Hunter, Maxime Ripard,
Maíra Canal, Noralf Trønnes, Jyri Sarha, Alexey Brodkin,
Emma Anholt, Melissa Wen, Hyun Kwon, Michal Simek,
Mali DP Maintainers, dri-devel, kernel, Andrew Jeffery,
linux-aspeed, linux-arm-kernel, Jonas Karlman, Fabio Estevam,
NXP Linux Team, Russell King, Christian Gmeiner, etnaviv,
Alim Akhtar, linux-samsung-soc, Xinwei Kong, Sumit Semwal,
Yongqin Liu, John Stultz, linux-mips, lima,
AngeloGioacchino Del Regno, linux-mediatek, Jerome Brunet,
Martin Blumenstingl, linux-amlogic, Sean Paul, linux-arm-msm,
freedreno, nouveau, Steven Price, Alyssa Rosenzweig,
linux-renesas-soc, linux-rockchip, linux-stm32, linux-sunxi,
linux-tegra
Hi,
2023년 5월 8일 (월) 오전 1:32, Uwe Kleine-König <u.kleine-koenig@pengutronix.de>님이 작성:
>
> Hello,
>
> this patch series adapts the platform drivers below drivers/gpu/drm
> to use the .remove_new() callback. Compared to the traditional .remove()
> callback .remove_new() returns no value. This is a good thing because
First of all, I apologize for the delay in providing my review comments.
Not related to this patch but seems that the "remove_new" callback
naming implicitly implies that there is no need to return anything
since its return type is void. To help users understand the intended
behavior based on the callback name, how about considering a modified
naming convention like "remove_no_return" or something similar?
The relevant patch has already been merged as outlined below,
author Uwe Kleine-König <u.kleine-koenig@pengutronix.de> 2022-12-09
16:09:14 +0100
committer Greg Kroah-Hartman <gregkh@linuxfoundation.org> 2023-01-17
19:04:17 +0100
commit 5c5a7680e67ba6fbbb5f4d79fa41485450c1985c (patch)
tree 0b6dbc003a6bb4a3f7fb084d31326bbfa3ba3f7c
parent 7bbb89b420d9e290cb34864832de8fcdf2c140dc (diff)
download linux-5c5a7680e67ba6fbbb5f4d79fa41485450c1985c.tar.gz
platform: Provide a remove callback that returns no value
Maybe a trivial thing but how about renaming it? I think the postfix,
'new', is a very generic word. I think you could introduce another
patch for it if you think it's reasonable.
Thanks,
Inki Dae
> the driver core doesn't (and cannot) cope for errors during remove. The
> only effect of a non-zero return value in .remove() is that the driver
> core emits a warning. The device is removed anyhow and an early return
> from .remove() usually yields a resource leak.
>
> By changing the remove callback to return void driver authors cannot
> reasonably (but wrongly) assume any more that there happens some kind of
> cleanup later.
>
> Best regards
> Uwe
>
> Uwe Kleine-König (53):
> drm/komeda: Convert to platform remove callback returning void
> drm/arm/hdlcd: Convert to platform remove callback returning void
> drm/arm/malidp: Convert to platform remove callback returning void
> drm/armada: Convert to platform remove callback returning void
> drm/aspeed: Convert to platform remove callback returning void
> drm/atmel-hlcdc: Convert to platform remove callback returning void
> drm/bridge: cdns-dsi: Convert to platform remove callback returning
> void
> drm/bridge: display-connector: Convert to platform remove callback
> returning void
> drm/bridge: fsl-ldb: Convert to platform remove callback returning
> void
> drm/imx/imx8*: Convert to platform remove callback returning void
> drm/bridge: lvds-codec: Convert to platform remove callback returning
> void
> drm/bridge: nwl-dsi: Convert to platform remove callback returning
> void
> drm/bridge: simple-bridge: Convert to platform remove callback
> returning void
> drm/bridge: synopsys: Convert to platform remove callback returning
> void
> drm/bridge: thc63lvd1024: Convert to platform remove callback
> returning void
> drm/bridge: tfp410: Convert to platform remove callback returning void
> drm/etnaviv: Convert to platform remove callback returning void
> drm/exynos: Convert to platform remove callback returning void
> drm/fsl-dcu: Convert to platform remove callback returning void
> drm/hisilicon: Convert to platform remove callback returning void
> drm/imx/dcss: Convert to platform remove callback returning void
> drm/imx/ipuv3: Convert to platform remove callback returning void
> drm/ingenic: Convert to platform remove callback returning void
> drm/kmb: Convert to platform remove callback returning void
> drm/lima: Convert to platform remove callback returning void
> drm/logicvc: Convert to platform remove callback returning void
> drm/mcde: Convert to platform remove callback returning void
> drm/mediatek: Convert to platform remove callback returning void
> drm/mediatek: Convert to platform remove callback returning void
> drm/meson: Convert to platform remove callback returning void
> drm/msm: Convert to platform remove callback returning void
> drm/mxsfb: Convert to platform remove callback returning void
> drm/nouveau: Convert to platform remove callback returning void
> drm/omap: Convert to platform remove callback returning void
> drm/panel: Convert to platform remove callback returning void
> drm/panfrost: Convert to platform remove callback returning void
> drm/rcar-du: Convert to platform remove callback returning void
> drm/rockchip: Convert to platform remove callback returning void
> drm/shmobile: Convert to platform remove callback returning void
> drm/sprd: Convert to platform remove callback returning void
> drm/sti: Convert to platform remove callback returning void
> drm/stm: Convert to platform remove callback returning void
> drm/sun4i: Convert to platform remove callback returning void
> drm/tegra: Convert to platform remove callback returning void
> drm/tests: helpers: Convert to platform remove callback returning void
> drm/tidss: Convert to platform remove callback returning void
> drm/tilcdc: Convert to platform remove callback returning void
> drm/tiny: Convert to platform remove callback returning void
> drm/tiny: Convert to platform remove callback returning void
> drm/tve200: Convert to platform remove callback returning void
> drm/v3d: Convert to platform remove callback returning void
> drm/vc4: Convert to platform remove callback returning void
> drm/xlnx/zynqmp_dpsub: Convert to platform remove callback returning
> void
>
> drivers/gpu/drm/arm/display/komeda/komeda_drv.c | 5 ++---
> drivers/gpu/drm/arm/hdlcd_drv.c | 5 ++---
> drivers/gpu/drm/arm/malidp_drv.c | 5 ++---
> drivers/gpu/drm/armada/armada_crtc.c | 5 ++---
> drivers/gpu/drm/armada/armada_drv.c | 5 ++---
> drivers/gpu/drm/aspeed/aspeed_gfx_drv.c | 6 ++----
> drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c | 6 ++----
> drivers/gpu/drm/bridge/cadence/cdns-dsi-core.c | 6 ++----
> drivers/gpu/drm/bridge/display-connector.c | 6 ++----
> drivers/gpu/drm/bridge/fsl-ldb.c | 6 ++----
> drivers/gpu/drm/bridge/imx/imx8qm-ldb-drv.c | 6 ++----
> drivers/gpu/drm/bridge/imx/imx8qxp-ldb-drv.c | 6 ++----
> drivers/gpu/drm/bridge/imx/imx8qxp-pixel-combiner.c | 6 ++----
> drivers/gpu/drm/bridge/imx/imx8qxp-pixel-link.c | 6 ++----
> drivers/gpu/drm/bridge/imx/imx8qxp-pxl2dpi.c | 6 ++----
> drivers/gpu/drm/bridge/lvds-codec.c | 6 ++----
> drivers/gpu/drm/bridge/nwl-dsi.c | 5 ++---
> drivers/gpu/drm/bridge/simple-bridge.c | 6 ++----
> drivers/gpu/drm/bridge/synopsys/dw-hdmi-ahb-audio.c | 6 ++----
> drivers/gpu/drm/bridge/synopsys/dw-hdmi-cec.c | 6 ++----
> drivers/gpu/drm/bridge/synopsys/dw-hdmi-gp-audio.c | 6 ++----
> drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c | 6 ++----
> drivers/gpu/drm/bridge/thc63lvd1024.c | 6 ++----
> drivers/gpu/drm/bridge/ti-tfp410.c | 6 ++----
> drivers/gpu/drm/etnaviv/etnaviv_drv.c | 6 ++----
> drivers/gpu/drm/etnaviv/etnaviv_gpu.c | 5 ++---
> drivers/gpu/drm/exynos/exynos5433_drm_decon.c | 6 ++----
> drivers/gpu/drm/exynos/exynos7_drm_decon.c | 6 ++----
> drivers/gpu/drm/exynos/exynos_dp.c | 6 ++----
> drivers/gpu/drm/exynos/exynos_drm_drv.c | 5 ++---
> drivers/gpu/drm/exynos/exynos_drm_dsi.c | 6 ++----
> drivers/gpu/drm/exynos/exynos_drm_fimc.c | 6 ++----
> drivers/gpu/drm/exynos/exynos_drm_fimd.c | 6 ++----
> drivers/gpu/drm/exynos/exynos_drm_g2d.c | 6 ++----
> drivers/gpu/drm/exynos/exynos_drm_gsc.c | 6 ++----
> drivers/gpu/drm/exynos/exynos_drm_mic.c | 6 ++----
> drivers/gpu/drm/exynos/exynos_drm_rotator.c | 6 ++----
> drivers/gpu/drm/exynos/exynos_drm_scaler.c | 6 ++----
> drivers/gpu/drm/exynos/exynos_hdmi.c | 6 ++----
> drivers/gpu/drm/exynos/exynos_mixer.c | 6 ++----
> drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c | 6 ++----
> drivers/gpu/drm/hisilicon/kirin/dw_drm_dsi.c | 6 ++----
> drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c | 5 ++---
> drivers/gpu/drm/imx/dcss/dcss-drv.c | 6 ++----
> drivers/gpu/drm/imx/ipuv3/dw_hdmi-imx.c | 6 ++----
> drivers/gpu/drm/imx/ipuv3/imx-drm-core.c | 5 ++---
> drivers/gpu/drm/imx/ipuv3/imx-ldb.c | 5 ++---
> drivers/gpu/drm/imx/ipuv3/imx-tve.c | 5 ++---
> drivers/gpu/drm/imx/ipuv3/ipuv3-crtc.c | 5 ++---
> drivers/gpu/drm/imx/ipuv3/parallel-display.c | 6 ++----
> drivers/gpu/drm/ingenic/ingenic-drm-drv.c | 6 ++----
> drivers/gpu/drm/ingenic/ingenic-ipu.c | 5 ++---
> drivers/gpu/drm/kmb/kmb_drv.c | 5 ++---
> drivers/gpu/drm/lima/lima_drv.c | 5 ++---
> drivers/gpu/drm/logicvc/logicvc_drm.c | 6 ++----
> drivers/gpu/drm/mcde/mcde_drv.c | 6 ++----
> drivers/gpu/drm/mcde/mcde_dsi.c | 6 ++----
> drivers/gpu/drm/mediatek/mtk_cec.c | 5 ++---
> drivers/gpu/drm/mediatek/mtk_disp_aal.c | 6 ++----
> drivers/gpu/drm/mediatek/mtk_disp_ccorr.c | 6 ++----
> drivers/gpu/drm/mediatek/mtk_disp_color.c | 6 ++----
> drivers/gpu/drm/mediatek/mtk_disp_gamma.c | 6 ++----
> drivers/gpu/drm/mediatek/mtk_disp_merge.c | 6 ++----
> drivers/gpu/drm/mediatek/mtk_disp_ovl.c | 6 ++----
> drivers/gpu/drm/mediatek/mtk_disp_rdma.c | 6 ++----
> drivers/gpu/drm/mediatek/mtk_dp.c | 6 ++----
> drivers/gpu/drm/mediatek/mtk_dpi.c | 6 ++----
> drivers/gpu/drm/mediatek/mtk_drm_drv.c | 6 ++----
> drivers/gpu/drm/mediatek/mtk_dsi.c | 6 ++----
> drivers/gpu/drm/mediatek/mtk_hdmi.c | 5 ++---
> drivers/gpu/drm/mediatek/mtk_hdmi_ddc.c | 6 ++----
> drivers/gpu/drm/mediatek/mtk_mdp_rdma.c | 5 ++---
> drivers/gpu/drm/meson/meson_drv.c | 6 ++----
> drivers/gpu/drm/meson/meson_dw_hdmi.c | 6 ++----
> drivers/gpu/drm/msm/adreno/adreno_device.c | 5 ++---
> drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 6 ++----
> drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c | 6 ++----
> drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c | 5 ++---
> drivers/gpu/drm/msm/dp/dp_display.c | 6 ++----
> drivers/gpu/drm/msm/dsi/dsi.c | 6 ++----
> drivers/gpu/drm/msm/hdmi/hdmi.c | 6 ++----
> drivers/gpu/drm/msm/hdmi/hdmi_phy.c | 6 ++----
> drivers/gpu/drm/msm/msm_drv.c | 6 ++----
> drivers/gpu/drm/msm/msm_mdss.c | 6 ++----
> drivers/gpu/drm/mxsfb/lcdif_drv.c | 6 ++----
> drivers/gpu/drm/mxsfb/mxsfb_drv.c | 6 ++----
> drivers/gpu/drm/nouveau/nouveau_platform.c | 5 ++---
> drivers/gpu/drm/omapdrm/dss/dispc.c | 5 ++---
> drivers/gpu/drm/omapdrm/dss/dsi.c | 6 ++----
> drivers/gpu/drm/omapdrm/dss/dss.c | 6 ++----
> drivers/gpu/drm/omapdrm/dss/hdmi4.c | 5 ++---
> drivers/gpu/drm/omapdrm/dss/hdmi5.c | 5 ++---
> drivers/gpu/drm/omapdrm/dss/venc.c | 5 ++---
> drivers/gpu/drm/omapdrm/omap_dmm_tiler.c | 9 +++------
> drivers/gpu/drm/omapdrm/omap_drv.c | 6 ++----
> drivers/gpu/drm/panel/panel-lvds.c | 6 ++----
> drivers/gpu/drm/panel/panel-seiko-43wvf1g.c | 6 ++----
> drivers/gpu/drm/panel/panel-sharp-ls037v7dw01.c | 6 ++----
> drivers/gpu/drm/panel/panel-simple.c | 6 ++----
> drivers/gpu/drm/panfrost/panfrost_drv.c | 5 ++---
> drivers/gpu/drm/rcar-du/rcar_cmm.c | 6 ++----
> drivers/gpu/drm/rcar-du/rcar_du_drv.c | 6 ++----
> drivers/gpu/drm/rcar-du/rcar_dw_hdmi.c | 6 ++----
> drivers/gpu/drm/rcar-du/rcar_lvds.c | 6 ++----
> drivers/gpu/drm/rcar-du/rcar_mipi_dsi.c | 6 ++----
> drivers/gpu/drm/rcar-du/rzg2l_mipi_dsi.c | 6 ++----
> drivers/gpu/drm/rockchip/analogix_dp-rockchip.c | 6 ++----
> drivers/gpu/drm/rockchip/cdn-dp-core.c | 6 ++----
> drivers/gpu/drm/rockchip/dw-mipi-dsi-rockchip.c | 6 ++----
> drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c | 6 ++----
> drivers/gpu/drm/rockchip/inno_hdmi.c | 6 ++----
> drivers/gpu/drm/rockchip/rk3066_hdmi.c | 6 ++----
> drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 6 ++----
> drivers/gpu/drm/rockchip/rockchip_lvds.c | 6 ++----
> drivers/gpu/drm/rockchip/rockchip_vop2_reg.c | 6 ++----
> drivers/gpu/drm/rockchip/rockchip_vop_reg.c | 6 ++----
> drivers/gpu/drm/shmobile/shmob_drm_drv.c | 6 ++----
> drivers/gpu/drm/sprd/sprd_dpu.c | 6 ++----
> drivers/gpu/drm/sprd/sprd_drm.c | 5 ++---
> drivers/gpu/drm/sprd/sprd_dsi.c | 6 ++----
> drivers/gpu/drm/sti/sti_compositor.c | 5 ++---
> drivers/gpu/drm/sti/sti_drv.c | 6 ++----
> drivers/gpu/drm/sti/sti_dvo.c | 5 ++---
> drivers/gpu/drm/sti/sti_hda.c | 5 ++---
> drivers/gpu/drm/sti/sti_hdmi.c | 6 ++----
> drivers/gpu/drm/sti/sti_hqvdp.c | 5 ++---
> drivers/gpu/drm/sti/sti_tvout.c | 5 ++---
> drivers/gpu/drm/stm/drv.c | 6 ++----
> drivers/gpu/drm/stm/dw_mipi_dsi-stm.c | 6 ++----
> drivers/gpu/drm/sun4i/sun4i_backend.c | 6 ++----
> drivers/gpu/drm/sun4i/sun4i_drv.c | 6 ++----
> drivers/gpu/drm/sun4i/sun4i_frontend.c | 6 ++----
> drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c | 6 ++----
> drivers/gpu/drm/sun4i/sun4i_tcon.c | 6 ++----
> drivers/gpu/drm/sun4i/sun4i_tv.c | 6 ++----
> drivers/gpu/drm/sun4i/sun6i_drc.c | 6 ++----
> drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c | 6 ++----
> drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c | 6 ++----
> drivers/gpu/drm/sun4i/sun8i_mixer.c | 6 ++----
> drivers/gpu/drm/sun4i/sun8i_tcon_top.c | 6 ++----
> drivers/gpu/drm/tegra/dpaux.c | 6 ++----
> drivers/gpu/drm/tests/drm_kunit_helpers.c | 5 ++---
> drivers/gpu/drm/tidss/tidss_drv.c | 6 ++----
> drivers/gpu/drm/tilcdc/tilcdc_panel.c | 6 ++----
> drivers/gpu/drm/tiny/arcpgu.c | 6 ++----
> drivers/gpu/drm/tiny/ofdrm.c | 6 ++----
> drivers/gpu/drm/tiny/simpledrm.c | 6 ++----
> drivers/gpu/drm/tve200/tve200_drv.c | 6 ++----
> drivers/gpu/drm/v3d/v3d_drv.c | 6 ++----
> drivers/gpu/drm/vc4/vc4_crtc.c | 5 ++---
> drivers/gpu/drm/vc4/vc4_dpi.c | 5 ++---
> drivers/gpu/drm/vc4/vc4_drv.c | 6 ++----
> drivers/gpu/drm/vc4/vc4_dsi.c | 6 ++----
> drivers/gpu/drm/vc4/vc4_hdmi.c | 5 ++---
> drivers/gpu/drm/vc4/vc4_hvs.c | 5 ++---
> drivers/gpu/drm/vc4/vc4_txp.c | 5 ++---
> drivers/gpu/drm/vc4/vc4_v3d.c | 5 ++---
> drivers/gpu/drm/vc4/vc4_vec.c | 5 ++---
> drivers/gpu/drm/xlnx/zynqmp_dpsub.c | 6 ++----
> 159 files changed, 319 insertions(+), 597 deletions(-)
>
>
> base-commit: 457391b0380335d5e9a5babdec90ac53928b23b4
> --
> 2.39.2
>
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: [PATCH 00/53] drm: Convert to platform remove callback returning void
2023-05-15 7:50 ` Inki Dae
@ 2023-05-15 9:20 ` Uwe Kleine-König
0 siblings, 0 replies; 10+ messages in thread
From: Uwe Kleine-König @ 2023-05-15 9:20 UTC (permalink / raw)
To: Inki Dae
Cc: Heiko Stübner, Xinliang Liu, Linus Walleij, dri-devel,
Russell King, Alim Akhtar, Anitha Chrisanthus, Marijn Suijten,
Steven Price, Sumit Semwal, Jerome Brunet, Robert Foss,
Karol Herbst, Samuel Holland, Kevin Hilman, Maíra Canal,
Javier Martinez Canillas, Kuogee Hsieh, Akhil P Oommen,
Danilo Krummrich, NXP Linux Team, Miaoqian Lin, linux-rockchip,
linux-sunxi, Rahul T R, Raphael Gallais-Pou, Jani Nikula,
Sascha Hauer, etnaviv, Stephen Boyd, Sean Paul, Johan Hovold,
Hyun Kwon, Andrew Jeffery, Jingoo Han, Seung-Woo Kim,
Noralf Trønnes, kernel, Alex Deucher, freedreno,
Claudiu Beznea, Alexandre Belloni, linux-aspeed, Tomi Valkeinen,
Thierry Reding, Yongqin Liu, Mihail Atanassov, Liang He,
Ville Syrjälä, lima, Chunyan Zhang, Alexey Brodkin,
Minghao Chi, Jonathan Hunter, Martin Blumenstingl, Ben Skeggs,
Russell King, Alain Volmat, linux-mips, Liu Ying, linux-arm-msm,
Maxime Ripard, linux-samsung-soc, linux-amlogic, linux-arm-kernel,
Neil Armstrong, Boris Brezillon, Douglas Anderson, John Stultz,
Paul Kocialkowski, Kyungmin Park, Maxime Coquelin, Brian Starkey,
Kuninori Morimoto, Yuan Can, Stefan Agner, Michal Simek,
linux-tegra, Laurent Pinchart, Andrzej Hajda, Sam Ravnborg,
Rob Herring, Xinwei Kong, Jernej Skrabec, Chen-Yu Tsai,
Mali DP Maintainers, Joel Stanley, nouveau, Orson Zhai,
Chun-Kuang Hu, Lyude Paul, Arnd Bergmann, Guo Zhengkui,
Konrad Dybcio, Alison Wang, Abhinav Kumar, Christian Gmeiner,
Mark Brown, Maxime Ripard, Baolin Wang, Daniel Vetter, Liu Shixin,
Tomi Valkeinen, Deepak R Varma, Kieran Bingham, Ricardo Ribalda,
Tian Tao, Shawn Guo, Yannick Fertre, linux-stm32, Emma Anholt,
Liviu Dudau, Alexandre Torgue, Sandy Huang, Paul Cercueil,
David Airlie, Marek Vasut, linux-renesas-soc, Jayshri Pawar,
Jonas Karlman, Rob Clark, Philippe Cornu, Thomas Zimmermann,
Melissa Wen, linux-mediatek, Fabio Estevam, Laurentiu Palcu,
Matthias Brugger, AngeloGioacchino Del Regno, Bjorn Andersson,
Nicolas Ferre, Krzysztof Kozlowski, Qiang Yu, Philipp Zabel,
Dmitry Baryshkov, Jyri Sarha, Lucas Stach
[-- Attachment #1: Type: text/plain, Size: 2089 bytes --]
On Mon, May 15, 2023 at 04:50:57PM +0900, Inki Dae wrote:
> Hi,
>
> 2023년 5월 8일 (월) 오전 1:32, Uwe Kleine-König <u.kleine-koenig@pengutronix.de>님이 작성:
> >
> > Hello,
> >
> > this patch series adapts the platform drivers below drivers/gpu/drm
> > to use the .remove_new() callback. Compared to the traditional .remove()
> > callback .remove_new() returns no value. This is a good thing because
>
> First of all, I apologize for the delay in providing my review comments.
>
> Not related to this patch but seems that the "remove_new" callback
> naming implicitly implies that there is no need to return anything
> since its return type is void. To help users understand the intended
> behavior based on the callback name, how about considering a modified
> naming convention like "remove_no_return" or something similar?
>
> The relevant patch has already been merged as outlined below,
> author Uwe Kleine-König <u.kleine-koenig@pengutronix.de> 2022-12-09
> 16:09:14 +0100
> committer Greg Kroah-Hartman <gregkh@linuxfoundation.org> 2023-01-17
> 19:04:17 +0100
> commit 5c5a7680e67ba6fbbb5f4d79fa41485450c1985c (patch)
> tree 0b6dbc003a6bb4a3f7fb084d31326bbfa3ba3f7c
> parent 7bbb89b420d9e290cb34864832de8fcdf2c140dc (diff)
> download linux-5c5a7680e67ba6fbbb5f4d79fa41485450c1985c.tar.gz
> platform: Provide a remove callback that returns no value
>
> Maybe a trivial thing but how about renaming it? I think the postfix,
> 'new', is a very generic word. I think you could introduce another
> patch for it if you think it's reasonable.
.remove_new is only a temporary name. Once all drivers are converted,
.remove is changed to return void and then all drivers are converted
back. While "remove_new" might not be a brilliant name choice, touching
all already converted drivers again just to improve the temporary
measures doesn't sound right.
Best regards
Uwe
--
Pengutronix e.K. | Uwe Kleine-König |
Industrial Linux Solutions | https://www.pengutronix.de/ |
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 00/53] drm: Convert to platform remove callback returning void
2023-05-07 16:25 [PATCH 00/53] drm: Convert to platform remove callback returning void Uwe Kleine-König
` (3 preceding siblings ...)
2023-05-15 7:50 ` Inki Dae
@ 2023-09-09 14:37 ` Javier Martinez Canillas
4 siblings, 0 replies; 10+ messages in thread
From: Javier Martinez Canillas @ 2023-09-09 14:37 UTC (permalink / raw)
To: Uwe Kleine-König
Cc: Mali DP Maintainers, dri-devel, kernel, Andrew Jeffery,
linux-aspeed, linux-arm-kernel, Laurent Pinchart, Jonas Karlman,
Fabio Estevam, NXP Linux Team, Russell King, Christian Gmeiner,
etnaviv, Alim Akhtar, linux-samsung-soc, Xinwei Kong,
Sumit Semwal, Yongqin Liu, John Stultz, linux-mips, lima,
AngeloGioacchino Del Regno, linux-mediatek, Jerome Brunet,
Martin Blumenstingl, linux-amlogic, Sean Paul, linux-arm-msm,
freedreno, nouveau, Steven Price, Alyssa Rosenzweig,
linux-renesas-soc, linux-rockchip, linux-stm32, linux-sunxi,
linux-tegra
Uwe Kleine-König <u.kleine-koenig@pengutronix.de> writes:
Hello Uwe,
> Hello,
>
> this patch series adapts the platform drivers below drivers/gpu/drm
> to use the .remove_new() callback. Compared to the traditional .remove()
> callback .remove_new() returns no value. This is a good thing because
> the driver core doesn't (and cannot) cope for errors during remove. The
> only effect of a non-zero return value in .remove() is that the driver
> core emits a warning. The device is removed anyhow and an early return
> from .remove() usually yields a resource leak.
>
> By changing the remove callback to return void driver authors cannot
> reasonably (but wrongly) assume any more that there happens some kind of
> cleanup later.
>
> Best regards
> Uwe
>
> Uwe Kleine-König (53):
[...]
> drm/imx/ipuv3: Convert to platform remove callback returning void
> drm/ingenic: Convert to platform remove callback returning void
[...]
> drm/mediatek: Convert to platform remove callback returning void
> drm/mediatek: Convert to platform remove callback returning void
[...]
> drm/msm: Convert to platform remove callback returning void
[...]
> drm/shmobile: Convert to platform remove callback returning void
Pushed these to drm-misc (drm-misc-next). Thanks!
--
Best regards,
Javier Martinez Canillas
Core Platforms
Red Hat
^ permalink raw reply [flat|nested] 10+ messages in thread