It looks like lima_clk_init will have the same problem if devm_clk_get returns -EPROBE_DEFER. Regards, Qiang On Wed, Jun 19, 2019 at 2:55 AM Krzysztof Kozlowski <krzk@xxxxxxxxxx> wrote: > > There is no point to print deferred probe (and its failures to get > resources) as an error. For example getting a regulator causes three > unneeded error messages: > > lima 13000000.gpu: failed to get regulator: -517 > lima 13000000.gpu: regulator init fail -517 > lima 13000000.gpu: Fatal error during GPU init > > Also do not print clock rates before the initialization finishes > because they will be duplicated after deferral. Each probe step already > prints error so remove the final error message "Fatal error during GPU > init". > > In case of multiple probe tries this would pollute the dmesg. > > Signed-off-by: Krzysztof Kozlowski <krzk@xxxxxxxxxx> > --- > drivers/gpu/drm/lima/lima_device.c | 17 ++++++----------- > drivers/gpu/drm/lima/lima_drv.c | 4 +--- > 2 files changed, 7 insertions(+), 14 deletions(-) > > diff --git a/drivers/gpu/drm/lima/lima_device.c b/drivers/gpu/drm/lima/lima_device.c > index 570d0e93f9a9..bb2eaa4f370e 100644 > --- a/drivers/gpu/drm/lima/lima_device.c > +++ b/drivers/gpu/drm/lima/lima_device.c > @@ -80,7 +80,6 @@ const char *lima_ip_name(struct lima_ip *ip) > static int lima_clk_init(struct lima_device *dev) > { > int err; > - unsigned long bus_rate, gpu_rate; > > dev->clk_bus = devm_clk_get(dev->dev, "bus"); > if (IS_ERR(dev->clk_bus)) { > @@ -94,12 +93,6 @@ static int lima_clk_init(struct lima_device *dev) > return PTR_ERR(dev->clk_gpu); > } > > - bus_rate = clk_get_rate(dev->clk_bus); > - dev_info(dev->dev, "bus rate = %lu\n", bus_rate); > - > - gpu_rate = clk_get_rate(dev->clk_gpu); > - dev_info(dev->dev, "mod rate = %lu", gpu_rate); > - > err = clk_prepare_enable(dev->clk_bus); > if (err) > return err; > @@ -145,7 +138,8 @@ static int lima_regulator_init(struct lima_device *dev) > dev->regulator = NULL; > if (ret == -ENODEV) > return 0; > - dev_err(dev->dev, "failed to get regulator: %d\n", ret); > + if (ret != -EPROBE_DEFER) > + dev_err(dev->dev, "failed to get regulator: %d\n", ret); > return ret; > } > > @@ -297,10 +291,8 @@ int lima_device_init(struct lima_device *ldev) > } > > err = lima_regulator_init(ldev); > - if (err) { > - dev_err(ldev->dev, "regulator init fail %d\n", err); > + if (err) > goto err_out0; > - } > > ldev->empty_vm = lima_vm_create(ldev); > if (!ldev->empty_vm) { > @@ -343,6 +335,9 @@ int lima_device_init(struct lima_device *ldev) > if (err) > goto err_out5; > > + dev_info(ldev->dev, "bus rate = %lu\n", clk_get_rate(ldev->clk_bus)); > + dev_info(ldev->dev, "mod rate = %lu", clk_get_rate(ldev->clk_gpu)); > + > return 0; > > err_out5: > diff --git a/drivers/gpu/drm/lima/lima_drv.c b/drivers/gpu/drm/lima/lima_drv.c > index b29c26cd13b2..cebc44592e47 100644 > --- a/drivers/gpu/drm/lima/lima_drv.c > +++ b/drivers/gpu/drm/lima/lima_drv.c > @@ -307,10 +307,8 @@ static int lima_pdev_probe(struct platform_device *pdev) > ldev->ddev = ddev; > > err = lima_device_init(ldev); > - if (err) { > - dev_err(&pdev->dev, "Fatal error during GPU init\n"); > + if (err) > goto err_out1; > - } > > /* > * Register the DRM device with the core and the connectors with > -- > 2.17.1 > _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel