ASoC: tegra: whistler boot failure tegra-10.11.ER2
authornoswal <noswal@nvidia.com>
Tue, 15 Mar 2011 10:56:41 +0000 (16:26 +0530)
committerVarun Colbert <vcolbert@nvidia.com>
Thu, 17 Mar 2011 03:47:50 +0000 (19:47 -0800)
whistler not booting because switch device required
by jack driver not initialised

Change-Id: I447a9fd179f08f38fc9e2444650ce7511d2092ee
Reviewed-on: http://git-master/r/22993
Tested-by: Nikesh Oswal <noswal@nvidia.com>
Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
sound/soc/tegra/tegra_wired_jack.c

index b846fa003c62c82fcf939685020fdca71318712b..9938a019aa514554bda63576b2516eea10e7e1f6 100644 (file)
@@ -207,18 +207,9 @@ static int tegra_wired_jack_probe(struct platform_device *pdev)
        tegra_wired_jack_conf.cdc_irq = cdc_irq;
        tegra_wired_jack_conf.en_spkr = en_spkr;
 
-       /* Addd h2w swith class support */
-       ret = switch_dev_register(&wired_switch_dev);
-       if (ret < 0)
-               goto switch_dev_failed;
-
        snd_soc_jack_notifier_register(tegra_wired_jack,
                                       &wired_switch_nb);
 
-       return 0;
-
-switch_dev_failed:
-       switch_dev_unregister(&wired_switch_dev);
        return ret;
 }
 
@@ -232,8 +223,6 @@ static int tegra_wired_jack_remove(struct platform_device *pdev)
        gpio_free(tegra_wired_jack_conf.en_mic_ext);
        gpio_free(tegra_wired_jack_conf.en_spkr);
 
-       switch_dev_unregister(&wired_switch_dev);
-
        return 0;
 }
 
@@ -272,12 +261,19 @@ int tegra_jack_init(struct snd_soc_codec *codec)
        if (ret < 0)
                goto failed;
 
+       /* Addd h2w swith class support */
+       ret = switch_dev_register(&wired_switch_dev);
+       if (ret < 0)
+               goto switch_dev_failed;
+
        ret = platform_driver_register(&tegra_wired_jack_driver);
        if (ret < 0)
                goto platform_dev_failed;
 
        return 0;
 
+switch_dev_failed:
+       switch_dev_unregister(&wired_switch_dev);
 platform_dev_failed:
        platform_driver_unregister(&tegra_wired_jack_driver);
 failed:
@@ -290,6 +286,7 @@ failed:
 
 void tegra_jack_exit(void)
 {
+       switch_dev_unregister(&wired_switch_dev);
        platform_driver_unregister(&tegra_wired_jack_driver);
 
        if (tegra_wired_jack) {