Re: [PATCH v2 1/5] dmaengine: qcom: bam_dma: make bam clk optional

From: Srinivas Kandagatla
Date: Wed Feb 14 2018 - 13:20:16 EST


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