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: Marc Gonzalez <mgonzalez@freebox.fr> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org> Signed-off-by: Maxime Ripard <mripard@kernel.org> Link: https://patchwork.freedesktop.org/patch/msgid/20240618-devm-simple-bridge-v1-1-c7ed8a09fcc5@freebox.fr
This commit is contained in:
parent
1ac6ac9ec0
commit
fbda4b2540
@ -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,
|
||||
|
Loading…
x
Reference in New Issue
Block a user