From: Srinivas Kandagatla <srinivas.kandaga...@linaro.org>

When BAM is remotely controlled it does not sound correct to control
its clk on Linux side. Make it optional, so that its not mandatory
for remote controlled BAM instances.

Signed-off-by: Srinivas Kandagatla <srinivas.kandaga...@linaro.org>
---
 drivers/dma/qcom/bam_dma.c | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/drivers/dma/qcom/bam_dma.c b/drivers/dma/qcom/bam_dma.c
index d076940e0c69..ae4c7b6930b8 100644
--- a/drivers/dma/qcom/bam_dma.c
+++ b/drivers/dma/qcom/bam_dma.c
@@ -1233,13 +1233,14 @@ static int bam_dma_probe(struct platform_device *pdev)
                                                "qcom,controlled-remotely");
 
        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)) {
+               bdev->bamclk = NULL;
+       } else {
+               ret = clk_prepare_enable(bdev->bamclk);
+               if (ret) {
+                       dev_err(bdev->dev, "failed to prepare/enable clock\n");
+                       return ret;
+               }
        }
 
        ret = bam_init(bdev);
-- 
2.15.1

Reply via email to