Message ID | 20240821214052.6800-6-wahrenst@gmx.net (mailing list archive) |
---|---|
State | Handled Elsewhere, archived |
Headers | show |
Series | ARM: bcm2835: Implement initial S2Idle for Raspberry Pi | expand |
Hi Stefan, On 8/21/24 18:40, Stefan Wahren wrote: > Common pattern of handling deferred probe can be simplified with > dev_err_probe() and devm_clk_get_optional(). This results in much > less code. > > Signed-off-by: Stefan Wahren <wahrenst@gmx.net> > Reviewed-by: Maíra Canal <mcanal@igalia.com> Applied to drm/misc/kernel/drm-misc-next! Best Regards, - Maíra > --- > drivers/gpu/drm/vc4/vc4_v3d.c | 18 +++--------------- > 1 file changed, 3 insertions(+), 15 deletions(-) > > diff --git a/drivers/gpu/drm/vc4/vc4_v3d.c b/drivers/gpu/drm/vc4/vc4_v3d.c > index 6e566584afbf..bf5c4e36c94e 100644 > --- a/drivers/gpu/drm/vc4/vc4_v3d.c > +++ b/drivers/gpu/drm/vc4/vc4_v3d.c > @@ -441,21 +441,9 @@ static int vc4_v3d_bind(struct device *dev, struct device *master, void *data) > vc4->v3d = v3d; > v3d->vc4 = vc4; > > - v3d->clk = devm_clk_get(dev, NULL); > - if (IS_ERR(v3d->clk)) { > - int ret = PTR_ERR(v3d->clk); > - > - if (ret == -ENOENT) { > - /* bcm2835 didn't have a clock reference in the DT. */ > - ret = 0; > - v3d->clk = NULL; > - } else { > - if (ret != -EPROBE_DEFER) > - dev_err(dev, "Failed to get V3D clock: %d\n", > - ret); > - return ret; > - } > - } > + v3d->clk = devm_clk_get_optional(dev, NULL); > + if (IS_ERR(v3d->clk)) > + return dev_err_probe(dev, PTR_ERR(v3d->clk), "Failed to get V3D clock\n"); > > ret = platform_get_irq(pdev, 0); > if (ret < 0) > -- > 2.34.1 >
diff --git a/drivers/gpu/drm/vc4/vc4_v3d.c b/drivers/gpu/drm/vc4/vc4_v3d.c index 6e566584afbf..bf5c4e36c94e 100644 --- a/drivers/gpu/drm/vc4/vc4_v3d.c +++ b/drivers/gpu/drm/vc4/vc4_v3d.c @@ -441,21 +441,9 @@ static int vc4_v3d_bind(struct device *dev, struct device *master, void *data) vc4->v3d = v3d; v3d->vc4 = vc4; - v3d->clk = devm_clk_get(dev, NULL); - if (IS_ERR(v3d->clk)) { - int ret = PTR_ERR(v3d->clk); - - if (ret == -ENOENT) { - /* bcm2835 didn't have a clock reference in the DT. */ - ret = 0; - v3d->clk = NULL; - } else { - if (ret != -EPROBE_DEFER) - dev_err(dev, "Failed to get V3D clock: %d\n", - ret); - return ret; - } - } + v3d->clk = devm_clk_get_optional(dev, NULL); + if (IS_ERR(v3d->clk)) + return dev_err_probe(dev, PTR_ERR(v3d->clk), "Failed to get V3D clock\n"); ret = platform_get_irq(pdev, 0); if (ret < 0)