|
@@ -329,12 +329,14 @@ static int __init n810_soc_init(void)
|
|
|
sys_clkout2_src = clk_get(dev, "sys_clkout2_src");
|
|
|
if (IS_ERR(sys_clkout2_src)) {
|
|
|
dev_err(dev, "Could not get sys_clkout2_src clock\n");
|
|
|
- return -ENODEV;
|
|
|
+ err = PTR_ERR(sys_clkout2_src);
|
|
|
+ goto err2;
|
|
|
}
|
|
|
sys_clkout2 = clk_get(dev, "sys_clkout2");
|
|
|
if (IS_ERR(sys_clkout2)) {
|
|
|
dev_err(dev, "Could not get sys_clkout2\n");
|
|
|
- goto err1;
|
|
|
+ err = PTR_ERR(sys_clkout2);
|
|
|
+ goto err3;
|
|
|
}
|
|
|
/*
|
|
|
* Configure 12 MHz output on SYS_CLKOUT2. Therefore we must use
|
|
@@ -343,7 +345,8 @@ static int __init n810_soc_init(void)
|
|
|
func96m_clk = clk_get(dev, "func_96m_ck");
|
|
|
if (IS_ERR(func96m_clk)) {
|
|
|
dev_err(dev, "Could not get func 96M clock\n");
|
|
|
- goto err2;
|
|
|
+ err = PTR_ERR(func96m_clk);
|
|
|
+ goto err4;
|
|
|
}
|
|
|
clk_set_parent(sys_clkout2_src, func96m_clk);
|
|
|
clk_set_rate(sys_clkout2, 12000000);
|
|
@@ -356,20 +359,25 @@ static int __init n810_soc_init(void)
|
|
|
gpio_direction_output(N810_SPEAKER_AMP_GPIO, 0);
|
|
|
|
|
|
return 0;
|
|
|
-err2:
|
|
|
+err4:
|
|
|
clk_put(sys_clkout2);
|
|
|
+err3:
|
|
|
+ clk_put(sys_clkout2_src);
|
|
|
+err2:
|
|
|
platform_device_del(n810_snd_device);
|
|
|
err1:
|
|
|
platform_device_put(n810_snd_device);
|
|
|
|
|
|
return err;
|
|
|
-
|
|
|
}
|
|
|
|
|
|
static void __exit n810_soc_exit(void)
|
|
|
{
|
|
|
gpio_free(N810_SPEAKER_AMP_GPIO);
|
|
|
gpio_free(N810_HEADSET_AMP_GPIO);
|
|
|
+ clk_put(sys_clkout2_src);
|
|
|
+ clk_put(sys_clkout2);
|
|
|
+ clk_put(func96m_clk);
|
|
|
|
|
|
platform_device_unregister(n810_snd_device);
|
|
|
}
|