clk_set_parent(sys_clkout2_src, func96m_clk);
        clk_set_rate(sys_clkout2, 12000000);
 
-       BUG_ON((gpio_request(N810_HEADSET_AMP_GPIO, "hs_amp") < 0) ||
-              (gpio_request(N810_SPEAKER_AMP_GPIO, "spk_amp") < 0));
+       if (WARN_ON((gpio_request(N810_HEADSET_AMP_GPIO, "hs_amp") < 0) ||
+                   (gpio_request(N810_SPEAKER_AMP_GPIO, "spk_amp") < 0))) {
+               err = -EINVAL;
+               goto err4;
+       }
 
        gpio_direction_output(N810_HEADSET_AMP_GPIO, 0);
        gpio_direction_output(N810_SPEAKER_AMP_GPIO, 0);