diff options
author | Marc Gonzalez <mgonzalez@freebox.fr> | 2024-06-18 18:19:59 +0200 |
---|---|---|
committer | Maxime Ripard <mripard@kernel.org> | 2024-06-19 10:50:30 +0200 |
commit | fbda4b254042250d390dc74b058ad1a9a29dacbd (patch) | |
tree | 6dfdfedddabb2cb2106cecaa32930e6fa79891c1 /drivers/gpu/drm/bridge/simple-bridge.c | |
parent | 1ac6ac9ec069ed0cfdb1c207ae23f6c40ac57437 (diff) | |
download | linux-fbda4b254042250d390dc74b058ad1a9a29dacbd.tar.gz linux-fbda4b254042250d390dc74b058ad1a9a29dacbd.tar.bz2 linux-fbda4b254042250d390dc74b058ad1a9a29dacbd.zip |
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
Diffstat (limited to 'drivers/gpu/drm/bridge/simple-bridge.c')
-rw-r--r-- | drivers/gpu/drm/bridge/simple-bridge.c | 13 |
1 files changed, 1 insertions, 12 deletions
diff --git a/drivers/gpu/drm/bridge/simple-bridge.c b/drivers/gpu/drm/bridge/simple-bridge.c index 2ca89f313cd1..ab0b0e36e97a 100644 --- a/drivers/gpu/drm/bridge/simple-bridge.c +++ b/drivers/gpu/drm/bridge/simple-bridge.c @@ -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, |