2022-02-28 19:30:03

by José Expósito

[permalink] [raw]
Subject: [PATCH] drm/bridge: nwl-dsi: switch to devm_drm_of_get_bridge

The function "drm_of_find_panel_or_bridge" has been deprecated in
favor of "devm_drm_of_get_bridge".

Switch to the new function and reduce boilerplate.

Signed-off-by: José Expósito <[email protected]>
---
drivers/gpu/drm/bridge/nwl-dsi.c | 15 ++++-----------
1 file changed, 4 insertions(+), 11 deletions(-)

diff --git a/drivers/gpu/drm/bridge/nwl-dsi.c b/drivers/gpu/drm/bridge/nwl-dsi.c
index af07eeb47ca0..df3be9dd24fb 100644
--- a/drivers/gpu/drm/bridge/nwl-dsi.c
+++ b/drivers/gpu/drm/bridge/nwl-dsi.c
@@ -909,19 +909,12 @@ static int nwl_dsi_bridge_attach(struct drm_bridge *bridge,
{
struct nwl_dsi *dsi = bridge_to_dsi(bridge);
struct drm_bridge *panel_bridge;
- struct drm_panel *panel;
- int ret;

- ret = drm_of_find_panel_or_bridge(dsi->dev->of_node, 1, 0, &panel,
- &panel_bridge);
- if (ret)
- return ret;
+ panel_bridge = devm_drm_of_get_bridge(dsi->dev, dsi->dev->of_node,
+ 1, 0);
+ if (IS_ERR(panel_bridge))
+ return PTR_ERR(panel_bridge);

- if (panel) {
- panel_bridge = drm_panel_bridge_add(panel);
- if (IS_ERR(panel_bridge))
- return PTR_ERR(panel_bridge);
- }
dsi->panel_bridge = panel_bridge;

if (!dsi->panel_bridge)
--
2.25.1


2022-03-01 18:58:32

by Liu Ying

[permalink] [raw]
Subject: Re: [PATCH] drm/bridge: nwl-dsi: switch to devm_drm_of_get_bridge

Hi,

On Mon, 2022-02-28 at 19:22 +0100, José Expósito wrote:
> The function "drm_of_find_panel_or_bridge" has been deprecated in
> favor of "devm_drm_of_get_bridge".
>
> Switch to the new function and reduce boilerplate.
>
> Signed-off-by: José Expósito <[email protected]>

This doesn't apply to the latest drm-misc-next due to conflict with
commit 7b1534188c25 ("drm: bridge: nwl-dsi: Drop panel_bridge from
nwl_dsi").

> ---
> drivers/gpu/drm/bridge/nwl-dsi.c | 15 ++++-----------
> 1 file changed, 4 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/gpu/drm/bridge/nwl-dsi.c b/drivers/gpu/drm/bridge/nwl-dsi.c
> index af07eeb47ca0..df3be9dd24fb 100644
> --- a/drivers/gpu/drm/bridge/nwl-dsi.c
> +++ b/drivers/gpu/drm/bridge/nwl-dsi.c
> @@ -909,19 +909,12 @@ static int nwl_dsi_bridge_attach(struct drm_bridge *bridge,
> {
> struct nwl_dsi *dsi = bridge_to_dsi(bridge);
> struct drm_bridge *panel_bridge;
> - struct drm_panel *panel;
> - int ret;
>
> - ret = drm_of_find_panel_or_bridge(dsi->dev->of_node, 1, 0, &panel,
> - &panel_bridge);
> - if (ret)
> - return ret;
> + panel_bridge = devm_drm_of_get_bridge(dsi->dev, dsi->dev->of_node,
> + 1, 0);
> + if (IS_ERR(panel_bridge))
> + return PTR_ERR(panel_bridge);

Now that panel_bridge is resource managed, why not remove
drm_of_panel_bridge_remove() and its caller nwl_dsi_bridge_detach()?

Regards,
Liu Ying

>
> - if (panel) {
> - panel_bridge = drm_panel_bridge_add(panel);
> - if (IS_ERR(panel_bridge))
> - return PTR_ERR(panel_bridge);
> - }
> dsi->panel_bridge = panel_bridge;
>
> if (!dsi->panel_bridge)