#include <linux/dmaengine.h>
 #include <linux/amba/bus.h>
 #include <linux/amba/pl330.h>
-#include <linux/pm_runtime.h>
 #include <linux/scatterlist.h>
 #include <linux/of.h>
 
 
        /* Peripheral channels connected to this DMAC */
        struct dma_pl330_chan *peripherals; /* keep at end */
-
-       struct clk *clk;
 };
 
 struct dma_pl330_desc {
                goto probe_err1;
        }
 
-       pdmac->clk = clk_get(&adev->dev, "dma");
-       if (IS_ERR(pdmac->clk)) {
-               dev_err(&adev->dev, "Cannot get operation clock.\n");
-               ret = -EINVAL;
-               goto probe_err2;
-       }
-
        amba_set_drvdata(adev, pdmac);
 
        irq = adev->irq[0];
        ret = request_irq(irq, pl330_irq_handler, 0,
                        dev_name(&adev->dev), pi);
        if (ret)
-               goto probe_err3;
+               goto probe_err2;
 
        ret = pl330_add(pi);
        if (ret)
-               goto probe_err4;
+               goto probe_err3;
 
        INIT_LIST_HEAD(&pdmac->desc_pool);
        spin_lock_init(&pdmac->pool_lock);
        ret = dma_async_device_register(pd);
        if (ret) {
                dev_err(&adev->dev, "unable to register DMAC\n");
-               goto probe_err5;
+               goto probe_err4;
        }
 
        dev_info(&adev->dev,
 
        return 0;
 
-probe_err5:
-       pl330_del(pi);
 probe_err4:
-       free_irq(irq, pi);
+       pl330_del(pi);
 probe_err3:
-       clk_put(pdmac->clk);
+       free_irq(irq, pi);
 probe_err2:
        iounmap(pi->base);
 probe_err1:
 
 MODULE_DEVICE_TABLE(amba, pl330_ids);
 
-#ifdef CONFIG_PM_RUNTIME
-static int pl330_runtime_suspend(struct device *dev)
-{
-       struct dma_pl330_dmac *pdmac = dev_get_drvdata(dev);
-
-       if (!pdmac) {
-               dev_err(dev, "failed to get dmac\n");
-               return -ENODEV;
-       }
-
-       clk_disable(pdmac->clk);
-
-       return 0;
-}
-
-static int pl330_runtime_resume(struct device *dev)
-{
-       struct dma_pl330_dmac *pdmac = dev_get_drvdata(dev);
-
-       if (!pdmac) {
-               dev_err(dev, "failed to get dmac\n");
-               return -ENODEV;
-       }
-
-       clk_enable(pdmac->clk);
-
-       return 0;
-}
-#else
-#define pl330_runtime_suspend  NULL
-#define pl330_runtime_resume   NULL
-#endif /* CONFIG_PM_RUNTIME */
-
-static const struct dev_pm_ops pl330_pm_ops = {
-       .runtime_suspend = pl330_runtime_suspend,
-       .runtime_resume = pl330_runtime_resume,
-};
-
 static struct amba_driver pl330_driver = {
        .drv = {
                .owner = THIS_MODULE,
                .name = "dma-pl330",
-               .pm = &pl330_pm_ops,
        },
        .id_table = pl330_ids,
        .probe = pl330_probe,