Unverified Commit fbda4b25 authored by Marc Gonzalez's avatar Marc Gonzalez Committed by Maxime Ripard
Browse files

drm: bridge: simple-bridge: use devm_drm_bridge_add in probe



simple_bridge_probe() calls drm_bridge_add()
Thus, drm_bridge_remove() must be called in the remove() callback.

If we call devm_drm_bridge_add() instead, then drm_bridge_remove()
will be called automatically at device release, and the remove()
callback is no longer required.

Signed-off-by: default avatarMarc Gonzalez <mgonzalez@freebox.fr>
Reviewed-by: default avatarDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Reviewed-by: default avatarNeil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: default avatarMaxime Ripard <mripard@kernel.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20240618-devm-simple-bridge-v1-1-c7ed8a09fcc5@freebox.fr
parent 1ac6ac9e
Loading
Loading
Loading
Loading
+1 −12
Original line number Diff line number Diff line
@@ -170,7 +170,6 @@ static int simple_bridge_probe(struct platform_device *pdev)
	sbridge = devm_kzalloc(&pdev->dev, sizeof(*sbridge), GFP_KERNEL);
	if (!sbridge)
		return -ENOMEM;
	platform_set_drvdata(pdev, sbridge);

	sbridge->info = of_device_get_match_data(&pdev->dev);

@@ -208,16 +207,7 @@ static int simple_bridge_probe(struct platform_device *pdev)
	sbridge->bridge.of_node = pdev->dev.of_node;
	sbridge->bridge.timings = sbridge->info->timings;

	drm_bridge_add(&sbridge->bridge);

	return 0;
}

static void simple_bridge_remove(struct platform_device *pdev)
{
	struct simple_bridge *sbridge = platform_get_drvdata(pdev);

	drm_bridge_remove(&sbridge->bridge);
	return devm_drm_bridge_add(&pdev->dev, &sbridge->bridge);
}

/*
@@ -294,7 +284,6 @@ MODULE_DEVICE_TABLE(of, simple_bridge_match);

static struct platform_driver simple_bridge_driver = {
	.probe	= simple_bridge_probe,
	.remove_new = simple_bridge_remove,
	.driver		= {
		.name		= "simple-bridge",
		.of_match_table	= simple_bridge_match,