Thanks for the Review,

On 14/02/18 15:41, Bjorn Andersson wrote:
bdev->bamclk = devm_clk_get(bdev->dev, "bam_clk");
-       if (IS_ERR(bdev->bamclk))
-               return PTR_ERR(bdev->bamclk);
-
-       ret = clk_prepare_enable(bdev->bamclk);
-       if (ret) {
-               dev_err(bdev->dev, "failed to prepare/enable clock\n");
-               return ret;
+       if (IS_ERR(bdev->bamclk)) {
In the case of !bdev->controlled_remotely I think this should still be
an error.

Yep makes sense,

You mean something like this?

------------------------->cut<------------------------
        bdev->bamclk = devm_clk_get(bdev->dev, "bam_clk");
        if (IS_ERR(bdev->bamclk)) {
                if (!bdev->controlled_remotely);
                        return PTR_ERR(bdev->bamclk);

                bdev->bamclk = NULL;
        }

        ret = clk_prepare_enable(bdev->bamclk);
        if (ret) {
                dev_err(bdev->dev, "failed to prepare/enable clock\n");
                return ret;
        }

------------------------->cut<------------------------


+               bdev->bamclk = NULL;
+       } else {
+               ret = clk_prepare_enable(bdev->bamclk);
+               if (ret) {
+                       dev_err(bdev->dev, "failed to prepare/enable clock\n");
+                       return ret;
+               }
The rest of the driver will keep operating the bamclk (which is okay),
so for symmetry purposes I think you should just keep the
clk_prepare_enable() block unmodified.

Yep, with above change, this block should be unchanged.


--srini
Regards,
Bjorn

Reply via email to