return;
 }
 
+static void at_xdmac_axi_config(struct platform_device *pdev)
+{
+       struct at_xdmac *atxdmac = (struct at_xdmac *)platform_get_drvdata(pdev);
+       bool dev_m2m = false;
+       u32 dma_requests;
+
+       if (!atxdmac->layout->axi_config)
+               return; /* Not supported */
+
+       if (!of_property_read_u32(pdev->dev.of_node, "dma-requests",
+                                 &dma_requests)) {
+               dev_info(&pdev->dev, "controller in mem2mem mode.\n");
+               dev_m2m = true;
+       }
+
+       if (dev_m2m) {
+               at_xdmac_write(atxdmac, AT_XDMAC_GCFG, AT_XDMAC_GCFG_M2M);
+               at_xdmac_write(atxdmac, AT_XDMAC_GWAC, AT_XDMAC_GWAC_M2M);
+       } else {
+               at_xdmac_write(atxdmac, AT_XDMAC_GCFG, AT_XDMAC_GCFG_P2M);
+               at_xdmac_write(atxdmac, AT_XDMAC_GWAC, AT_XDMAC_GWAC_P2M);
+       }
+}
+
 #ifdef CONFIG_PM
 static int atmel_xdmac_prepare(struct device *dev)
 {
        struct at_xdmac         *atxdmac = dev_get_drvdata(dev);
        struct at_xdmac_chan    *atchan;
        struct dma_chan         *chan, *_chan;
+       struct platform_device  *pdev = container_of(dev, struct platform_device, dev);
        int                     i;
        int ret;
 
        if (ret)
                return ret;
 
+       at_xdmac_axi_config(pdev);
+
        /* Clear pending interrupts. */
        for (i = 0; i < atxdmac->dma.chancnt; i++) {
                atchan = &atxdmac->chan[i];
 }
 #endif /* CONFIG_PM_SLEEP */
 
-static void at_xdmac_axi_config(struct platform_device *pdev)
-{
-       struct at_xdmac *atxdmac = (struct at_xdmac *)platform_get_drvdata(pdev);
-       bool dev_m2m = false;
-       u32 dma_requests;
-
-       if (!atxdmac->layout->axi_config)
-               return; /* Not supported */
-
-       if (!of_property_read_u32(pdev->dev.of_node, "dma-requests",
-                                 &dma_requests)) {
-               dev_info(&pdev->dev, "controller in mem2mem mode.\n");
-               dev_m2m = true;
-       }
-
-       if (dev_m2m) {
-               at_xdmac_write(atxdmac, AT_XDMAC_GCFG, AT_XDMAC_GCFG_M2M);
-               at_xdmac_write(atxdmac, AT_XDMAC_GWAC, AT_XDMAC_GWAC_M2M);
-       } else {
-               at_xdmac_write(atxdmac, AT_XDMAC_GCFG, AT_XDMAC_GCFG_P2M);
-               at_xdmac_write(atxdmac, AT_XDMAC_GWAC, AT_XDMAC_GWAC_P2M);
-       }
-}
-
 static int at_xdmac_probe(struct platform_device *pdev)
 {
        struct at_xdmac *atxdmac;