hdlcd->mmio = devm_ioremap_resource(drm->dev, res);
        if (IS_ERR(hdlcd->mmio)) {
                DRM_ERROR("failed to map control registers area\n");
-               ret = PTR_ERR(hdlcd->mmio);
                hdlcd->mmio = NULL;
-               goto fail;
+               return PTR_ERR(hdlcd->mmio);
        }
 
        version = hdlcd_read(hdlcd, HDLCD_REG_VERSION);
        if ((version & HDLCD_PRODUCT_MASK) != HDLCD_PRODUCT_ID) {
                DRM_ERROR("unknown product id: 0x%x\n", version);
-               ret = -EINVAL;
-               goto fail;
+               return -EINVAL;
        }
        DRM_INFO("found ARM HDLCD version r%dp%d\n",
                (version & HDLCD_VERSION_MAJOR_MASK) >> 8,
        /* Get the optional framebuffer memory resource */
        ret = of_reserved_mem_device_init(drm->dev);
        if (ret && ret != -ENODEV)
-               goto fail;
+               return ret;
 
        ret = dma_set_mask_and_coherent(drm->dev, DMA_BIT_MASK(32));
        if (ret)
        drm_crtc_cleanup(&hdlcd->crtc);
 setup_fail:
        of_reserved_mem_device_release(drm->dev);
-fail:
-       devm_clk_put(drm->dev, hdlcd->clk);
 
        return ret;
 }
        pm_runtime_put_sync(drm->dev);
        pm_runtime_disable(drm->dev);
        of_reserved_mem_device_release(drm->dev);
-       devm_clk_put(dev, hdlcd->clk);
 err_free:
        drm_dev_unref(drm);
 
        pm_runtime_put_sync(drm->dev);
        pm_runtime_disable(drm->dev);
        of_reserved_mem_device_release(drm->dev);
-       if (!IS_ERR(hdlcd->clk)) {
-               devm_clk_put(drm->dev, hdlcd->clk);
-               hdlcd->clk = NULL;
-       }
        drm_mode_config_cleanup(drm);
        drm_dev_unregister(drm);
        drm_dev_unref(drm);