diff options
author | Nikesh Oswal <noswal@nvidia.com> | 2011-10-19 18:36:26 +0530 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2011-11-30 21:49:33 -0800 |
commit | b77c1336fc29ac5a7066de146100551258a01746 (patch) | |
tree | 4b4df7edec01751ceace3bc977c40d67bcd4d922 /sound | |
parent | 862676d2227eca5539cbe64bbb34ebb7d19fdaa2 (diff) |
asoc: tegra: max98088 machine: report jack status at bootup
Bug: 890385
Bug: 862023
Change-Id: I154ba0c016c058bd7c3ca04b496c3fce9639ea4f
Signed-off-by: Nikesh Oswal <noswal@nvidia.com>
Reviewed-on: http://git-master/r/59104
Reviewed-by: Scott Peterson <speterson@nvidia.com>
Tested-by: Scott Peterson <speterson@nvidia.com>
Rebase-Id: Re63b865dff15841a27d692a078c327fc84b7edfe
Diffstat (limited to 'sound')
-rw-r--r-- | sound/soc/tegra/tegra_max98088.c | 34 |
1 files changed, 18 insertions, 16 deletions
diff --git a/sound/soc/tegra/tegra_max98088.c b/sound/soc/tegra/tegra_max98088.c index 899f5e86f0d8..6d4062019b7f 100644 --- a/sound/soc/tegra/tegra_max98088.c +++ b/sound/soc/tegra/tegra_max98088.c @@ -319,9 +319,6 @@ static int tegra_max98088_init(struct snd_soc_pcm_runtime *rtd) if (ret < 0) return ret; - max98088_headset_detect(codec, &tegra_max98088_hp_jack, - SND_JACK_HEADSET); - #ifdef CONFIG_SWITCH snd_soc_jack_notifier_register(&tegra_max98088_hp_jack, &headset_switch_nb); @@ -331,6 +328,9 @@ static int tegra_max98088_init(struct snd_soc_pcm_runtime *rtd) tegra_max98088_hp_jack_pins); #endif + max98088_headset_detect(codec, &tegra_max98088_hp_jack, + SND_JACK_HEADSET); + snd_soc_dapm_nc_pin(dapm, "INA1"); snd_soc_dapm_nc_pin(dapm, "INA2"); snd_soc_dapm_nc_pin(dapm, "INB1"); @@ -397,27 +397,29 @@ static __devinit int tegra_max98088_driver_probe(struct platform_device *pdev) platform_set_drvdata(pdev, card); snd_soc_card_set_drvdata(card, machine); - ret = snd_soc_register_card(card); - if (ret) { - dev_err(&pdev->dev, "snd_soc_register_card failed (%d)\n", - ret); - goto err_fini_utils; - } - #ifdef CONFIG_SWITCH - /* Add h2w swith class support */ + /* Add h2w switch class support */ ret = switch_dev_register(&wired_switch_dev); if (ret < 0) { - dev_err(&pdev->dev, "not able to register switch device " - "(%d)\n", ret); - goto err_unregister_card; + dev_err(&pdev->dev, "not able to register switch device\n", + ret); + goto err_fini_utils; } #endif + ret = snd_soc_register_card(card); + if (ret) { + dev_err(&pdev->dev, "snd_soc_register_card failed (%d)\n", + ret); + goto err_switch_unregister; + } + return 0; -err_unregister_card: - snd_soc_unregister_card(card); +err_switch_unregister: +#ifdef CONFIG_SWITCH + switch_dev_unregister(&wired_switch_dev); +#endif err_fini_utils: tegra_asoc_utils_fini(&machine->util_data); err_free_machine: |