Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider: - [High] Returning `-ENODEV` instead of `-EPROBE_DEFER` when the downstream bridge is not found permanently breaks probe deferral. --
--- Patch [10]: [PATCH 10/11] drm/bridge: fsl-ldb: don't create a panel_bridge --- commit cea029e41728150133bf916d81ee3178f44b5540 Author: Luca Ceresoli <[email protected]> drm/bridge: fsl-ldb: don't create a panel_bridge This commit simplifies fsl_ldb_probe() by retrieving an existing bridge via of_drm_find_and_get_bridge() rather than unconditionally creating a second panel_bridge for the same panel. It also ensures the refcounted bridge is properly managed. > diff --git a/drivers/gpu/drm/bridge/fsl-ldb.c > b/drivers/gpu/drm/bridge/fsl-ldb.c > --- a/drivers/gpu/drm/bridge/fsl-ldb.c > +++ b/drivers/gpu/drm/bridge/fsl-ldb.c [ ... ] > @@ -298,7 +297,6 @@ static int fsl_ldb_probe(struct platform_device *pdev) [ ... ] > - panel = of_drm_find_panel(panel_node); > - of_node_put(panel_node); > - if (IS_ERR(panel)) > - return PTR_ERR(panel); > - > if (of_property_present(dev->of_node, > "nxp,enable-termination-resistor")) > fsl_ldb->use_termination_resistor = true; > > - fsl_ldb->panel_bridge = devm_drm_panel_bridge_add(dev, panel); > - drm_panel_put(panel); > - if (IS_ERR(fsl_ldb->panel_bridge)) > - return PTR_ERR(fsl_ldb->panel_bridge); > - > + fsl_ldb->bridge.next_bridge = of_drm_find_and_get_bridge(panel_node); > + of_node_put(panel_node); > + if (!fsl_ldb->bridge.next_bridge) > + return -ENODEV; [Severity: High] Does this change break probe deferral when the downstream driver loads later? Previously, if the downstream panel driver hadn't loaded yet, of_drm_find_panel() returned -EPROBE_DEFER, which was propagated back to allow fsl_ldb_probe() to try again later. With the updated code, if of_drm_find_and_get_bridge() returns NULL because the downstream bridge driver hasn't successfully probed yet, this returns a hard -ENODEV error. Could this permanently fail the display pipeline initialization depending on module load order? Should this return -EPROBE_DEFER instead? > > if (fsl_ldb_is_dual(fsl_ldb)) { > struct device_node *port1, *port2; -- Sashiko AI review ยท https://sashiko.dev/#/patchset/[email protected]?part=10
