Message ID | 20220317175852.799432-1-jose.exposito89@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2] drm/bridge: nwl-dsi: switch to devm_drm_of_get_bridge | expand |
On Thu, 2022-03-17 at 18:58 +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 <jose.exposito89@gmail.com> > > --- > > v2: (Thanks to Liu Ying) > > - Rebase on top of drm-misc-next > - Remove drm_of_panel_bridge_remove > --- > drivers/gpu/drm/bridge/nwl-dsi.c | 23 ++++------------------- > 1 file changed, 4 insertions(+), 19 deletions(-) > > diff --git a/drivers/gpu/drm/bridge/nwl-dsi.c > b/drivers/gpu/drm/bridge/nwl-dsi.c > index e34fb09b90b9..de62e3fc6a59 100644 > --- a/drivers/gpu/drm/bridge/nwl-dsi.c > +++ b/drivers/gpu/drm/bridge/nwl-dsi.c > @@ -912,19 +912,11 @@ 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; > > - if (panel) { > - panel_bridge = drm_panel_bridge_add(panel); > - if (IS_ERR(panel_bridge)) > - return PTR_ERR(panel_bridge); > - } > + 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_bridge) > return -EPROBE_DEFER; I don't think panel_bridge can be NULL here, so this check can be removed. However, even if this patch is not applied, the check is not necessary. I think it can be removed with a separate patch. For this patch: Reviewed-by: Liu Ying <victor.liu@oss.nxp.com> > @@ -932,12 +924,6 @@ static int nwl_dsi_bridge_attach(struct > drm_bridge *bridge, > return drm_bridge_attach(bridge->encoder, panel_bridge, bridge, > flags); > } > > -static void nwl_dsi_bridge_detach(struct drm_bridge *bridge) > -{ struct nwl_dsi *dsi = bridge_to_dsi(bridge); > - > - drm_of_panel_bridge_remove(dsi->dev->of_node, 1, 0); > -} > - > static u32 *nwl_bridge_atomic_get_input_bus_fmts(struct drm_bridge > *bridge, > struct > drm_bridge_state *bridge_state, > struct drm_crtc_state > *crtc_state, > @@ -983,7 +969,6 @@ static const struct drm_bridge_funcs > nwl_dsi_bridge_funcs = { > .mode_set = nwl_dsi_bridge_mode_set, > .mode_valid = nwl_dsi_bridge_mode_valid, > .attach = nwl_dsi_bridge_attach, > - .detach = nwl_dsi_bridge_detach, > }; > > static int nwl_dsi_parse_dt(struct nwl_dsi *dsi)
On Fri, 18 Mar 2022 at 10:25, Liu Ying <victor.liu@oss.nxp.com> wrote: > > On Thu, 2022-03-17 at 18:58 +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 <jose.exposito89@gmail.com> > > > > --- > > > > v2: (Thanks to Liu Ying) > > > > - Rebase on top of drm-misc-next > > - Remove drm_of_panel_bridge_remove > > --- > > drivers/gpu/drm/bridge/nwl-dsi.c | 23 ++++------------------- > > 1 file changed, 4 insertions(+), 19 deletions(-) > > > > diff --git a/drivers/gpu/drm/bridge/nwl-dsi.c > > b/drivers/gpu/drm/bridge/nwl-dsi.c > > index e34fb09b90b9..de62e3fc6a59 100644 > > --- a/drivers/gpu/drm/bridge/nwl-dsi.c > > +++ b/drivers/gpu/drm/bridge/nwl-dsi.c > > @@ -912,19 +912,11 @@ 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; > > > > - if (panel) { > > - panel_bridge = drm_panel_bridge_add(panel); > > - if (IS_ERR(panel_bridge)) > > - return PTR_ERR(panel_bridge); > > - } > > + 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_bridge) > > return -EPROBE_DEFER; > > I don't think panel_bridge can be NULL here, so this check can be > removed. However, even if this patch is not applied, the check is not > necessary. I think it can be removed with a separate patch. José, do you mind clearing up if this check is needed, and then spinning a v3 removing this snippet if it is needed? Rob.
On Mon, Mar 28, 2022 at 03:24:05PM +0200, Robert Foss wrote: > On Fri, 18 Mar 2022 at 10:25, Liu Ying <victor.liu@oss.nxp.com> wrote: > > > > On Thu, 2022-03-17 at 18:58 +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 <jose.exposito89@gmail.com> > > > > > > --- > > > > > > v2: (Thanks to Liu Ying) > > > > > > - Rebase on top of drm-misc-next > > > - Remove drm_of_panel_bridge_remove > > > --- > > > drivers/gpu/drm/bridge/nwl-dsi.c | 23 ++++------------------- > > > 1 file changed, 4 insertions(+), 19 deletions(-) > > > > > > diff --git a/drivers/gpu/drm/bridge/nwl-dsi.c > > > b/drivers/gpu/drm/bridge/nwl-dsi.c > > > index e34fb09b90b9..de62e3fc6a59 100644 > > > --- a/drivers/gpu/drm/bridge/nwl-dsi.c > > > +++ b/drivers/gpu/drm/bridge/nwl-dsi.c > > > @@ -912,19 +912,11 @@ 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; > > > > > > - if (panel) { > > > - panel_bridge = drm_panel_bridge_add(panel); > > > - if (IS_ERR(panel_bridge)) > > > - return PTR_ERR(panel_bridge); > > > - } > > > + 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_bridge) > > > return -EPROBE_DEFER; > > > > I don't think panel_bridge can be NULL here, so this check can be > > removed. However, even if this patch is not applied, the check is not > > necessary. I think it can be removed with a separate patch. > > José, do you mind clearing up if this check is needed, and then > spinning a v3 removing this snippet if it is needed? > > Rob. Hi Robert, I think that as Liu pointed out, the "panel_bridge" variable can not be NULL. However, as I don't have access to the required hardware to test it, I'd prefer to keep the patch as it is, i.e., a refactor that does not change the previous behaviour, rather than introducing an untested change. Jose
diff --git a/drivers/gpu/drm/bridge/nwl-dsi.c b/drivers/gpu/drm/bridge/nwl-dsi.c index e34fb09b90b9..de62e3fc6a59 100644 --- a/drivers/gpu/drm/bridge/nwl-dsi.c +++ b/drivers/gpu/drm/bridge/nwl-dsi.c @@ -912,19 +912,11 @@ 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; - if (panel) { - panel_bridge = drm_panel_bridge_add(panel); - if (IS_ERR(panel_bridge)) - return PTR_ERR(panel_bridge); - } + 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_bridge) return -EPROBE_DEFER; @@ -932,12 +924,6 @@ static int nwl_dsi_bridge_attach(struct drm_bridge *bridge, return drm_bridge_attach(bridge->encoder, panel_bridge, bridge, flags); } -static void nwl_dsi_bridge_detach(struct drm_bridge *bridge) -{ struct nwl_dsi *dsi = bridge_to_dsi(bridge); - - drm_of_panel_bridge_remove(dsi->dev->of_node, 1, 0); -} - static u32 *nwl_bridge_atomic_get_input_bus_fmts(struct drm_bridge *bridge, struct drm_bridge_state *bridge_state, struct drm_crtc_state *crtc_state, @@ -983,7 +969,6 @@ static const struct drm_bridge_funcs nwl_dsi_bridge_funcs = { .mode_set = nwl_dsi_bridge_mode_set, .mode_valid = nwl_dsi_bridge_mode_valid, .attach = nwl_dsi_bridge_attach, - .detach = nwl_dsi_bridge_detach, }; static int nwl_dsi_parse_dt(struct nwl_dsi *dsi)
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 <jose.exposito89@gmail.com> --- v2: (Thanks to Liu Ying) - Rebase on top of drm-misc-next - Remove drm_of_panel_bridge_remove --- drivers/gpu/drm/bridge/nwl-dsi.c | 23 ++++------------------- 1 file changed, 4 insertions(+), 19 deletions(-)