Message ID | 20240529065400.461633-1-alexander.stein@ew.tq-group.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2,1/1] drm/bridge: imx93-mipi-dsi: Use dev_err_probe | expand |
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? 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@ew.tq-group.com> > --- > 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))
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. 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@ew.tq-group.com> > > --- > > 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)) > >
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@ew.tq-group.com> >>> --- >>> 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)) >> >> > >
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))
Although very unlike to occur (media_blk_ctrl needs 'syscon' compatible removed), it lines up with the other error paths in probe function. Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com> --- 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(-)