On 05/29/2024, Alexander Stein wrote: > Hi, > > Am Mittwoch, 29. Mai 2024, 09:50:24 CEST schrieb Liu Ying: >> On 05/29/2024, Alexander Stein wrote: >>> Although very unlike to occur (media_blk_ctrl needs 'syscon' compatible >>> removed), it lines up with the other error paths in probe function. >> >> Why media_blk_ctrl needs 'syscon' compatible removed? > > No, it does not. As media_blk_ctrl is also used as power-domain the device > will not even be probed if media_blk_ctrl is not available. > I just mentioned it under which conditions this error path could happen. The error path you mentioned returns ERR_PTR(-EINVAL) which doesn't make sense to use dev_err_probe. ERR_PTR(-EPROBE_DEFER) is the one in question. > > Best regards, > Alexander > >> device_node_get_regmap may return error pointer other than >> ERR_PTR(-EPROBE_DEFER), like ERR_PTR(-ENOMEM). >> >> struct regmap *syscon_node_to_regmap(struct device_node *np) >> { >> if (!of_device_is_compatible(np, "syscon")) >> return ERR_PTR(-EINVAL); >> >> return device_node_get_regmap(np, true); >> } >> EXPORT_SYMBOL_GPL(syscon_node_to_regmap); >> >> Regard, >> Liu Ying >> >>> >>> Signed-off-by: Alexander Stein <alexander.stein@xxxxxxxxxxxxxxx> >>> --- >>> Changes in v2: >>> * Removed unused variable >>> * Added missing \n at end of string >>> >>> drivers/gpu/drm/bridge/imx/imx93-mipi-dsi.c | 9 +++------ >>> 1 file changed, 3 insertions(+), 6 deletions(-) >>> >>> diff --git a/drivers/gpu/drm/bridge/imx/imx93-mipi-dsi.c b/drivers/gpu/drm/bridge/imx/imx93-mipi-dsi.c >>> index 2347f8dd632f9..13025f47f3902 100644 >>> --- a/drivers/gpu/drm/bridge/imx/imx93-mipi-dsi.c >>> +++ b/drivers/gpu/drm/bridge/imx/imx93-mipi-dsi.c >>> @@ -834,18 +834,15 @@ static int imx93_dsi_probe(struct platform_device *pdev) >>> struct device *dev = &pdev->dev; >>> struct device_node *np = dev->of_node; >>> struct imx93_dsi *dsi; >>> - int ret; >>> >>> dsi = devm_kzalloc(dev, sizeof(*dsi), GFP_KERNEL); >>> if (!dsi) >>> return -ENOMEM; >>> >>> dsi->regmap = syscon_regmap_lookup_by_phandle(np, "fsl,media-blk-ctrl"); >>> - if (IS_ERR(dsi->regmap)) { >>> - ret = PTR_ERR(dsi->regmap); >>> - dev_err(dev, "failed to get block ctrl regmap: %d\n", ret); >>> - return ret; >>> - } >>> + if (IS_ERR(dsi->regmap)) >>> + return dev_err_probe(dev, PTR_ERR(dsi->regmap), >>> + "failed to get block ctrl regmap\n"); >>> >>> dsi->clk_pixel = devm_clk_get(dev, "pix"); >>> if (IS_ERR(dsi->clk_pixel)) >> >> > > -- Regards, Liu Ying