slim_msm: Initialize controller before clk_get is called.

Controller device name is initialzied in add_numbered_controller.
Make sure that's done before clk_get is called so that clk_get is
called with correct device name.

Change-Id: Ieace43accbb3cf8c37068dbc06067dfb76d67d36
Signed-off-by: Sagar Dharia <sdharia@codeaurora.org>
diff --git a/drivers/slimbus/slim-msm-ctrl.c b/drivers/slimbus/slim-msm-ctrl.c
index 0fed092..02d1c39 100644
--- a/drivers/slimbus/slim-msm-ctrl.c
+++ b/drivers/slimbus/slim-msm-ctrl.c
@@ -1862,11 +1862,6 @@
 	}
 
 
-	dev->rclk = clk_get(dev->dev, "audio_slimbus_clk");
-	if (!dev->rclk) {
-		dev_err(dev->dev, "slimbus clock not found");
-		goto err_clk_get_failed;
-	}
 	dev->framer.rootfreq = SLIM_ROOT_FREQ >> 3;
 	dev->framer.superfreq =
 		dev->framer.rootfreq / SLIM_CL_PER_SUPERFRAME_DIV8;
@@ -1882,6 +1877,20 @@
 	}
 
 	msm_slim_prg_slew(pdev, dev);
+
+	/* Register with framework before enabling frame, clock */
+	ret = slim_add_numbered_controller(&dev->ctrl);
+	if (ret) {
+		dev_err(dev->dev, "error adding controller\n");
+		goto err_ctrl_failed;
+	}
+
+
+	dev->rclk = clk_get(dev->dev, "audio_slimbus_clk");
+	if (!dev->rclk) {
+		dev_err(dev->dev, "slimbus clock not found");
+		goto err_clk_get_failed;
+	}
 	clk_set_rate(dev->rclk, SLIM_ROOT_FREQ);
 	clk_enable(dev->rclk);
 
@@ -1910,13 +1919,6 @@
 	 */
 	wmb();
 
-	/* Register with framework before enabling frame, clock */
-	ret = slim_add_numbered_controller(&dev->ctrl);
-	if (ret) {
-		dev_err(dev->dev, "error adding controller\n");
-		goto err_ctrl_failed;
-	}
-
 	/* Framer register initialization */
 	writel_relaxed((0xA << REF_CLK_GEAR) | (0xA << CLK_GEAR) |
 		(1 << ROOT_FREQ) | (1 << FRM_ACTIVE) | 1,
@@ -1969,11 +1971,9 @@
 
 err_ctrl_failed:
 	writel_relaxed(0, dev->base + COMP_CFG);
+err_clk_get_failed:
 	kfree(dev->satd);
 err_request_irq_failed:
-	clk_disable(dev->rclk);
-	clk_put(dev->rclk);
-err_clk_get_failed:
 	msm_slim_sps_exit(dev);
 err_sps_init_failed:
 	iounmap(dev->bam.base);