static int map_audio_remove(struct platform_device *pdev) { struct snd_soc_card *card = platform_get_drvdata(pdev); snd_soc_unregister_card(card); return 0; }
static int __devexit poodle_remove(struct platform_device *pdev) { struct snd_soc_card *card = platform_get_drvdata(pdev); snd_soc_unregister_card(card); return 0; }
static int __devexit tegra_alc5623_driver_remove(struct platform_device *pdev) { struct snd_soc_card *card = platform_get_drvdata(pdev); struct tegra_alc5623 *machine = snd_soc_card_get_drvdata(card); struct tegra_alc5623_platform_data *pdata = machine->pdata; if (machine->gpio_requested & GPIO_HP_DET) snd_soc_jack_free_gpios(&machine->tegra_jack, 1, &tegra_alc5623_hp_jack_gpio); if (machine->gpio_requested & GPIO_SPKR_EN) gpio_free(pdata->gpio_spkr_en); if (machine->gpio_requested & GPIO_INT_MIC_EN) gpio_free(pdata->gpio_int_mic_en); machine->gpio_requested = 0; if (machine->spk_reg) regulator_put(machine->spk_reg); /* if (machine->dmic_reg) regulator_put(machine->dmic_reg); */ snd_soc_unregister_card(card); tegra_asoc_utils_fini(&machine->util_data); #ifdef CONFIG_SWITCH switch_dev_unregister(&tegra_alc5623_headset_switch); #endif kfree(machine); return 0; }
static int mt8173_max98090_dev_remove(struct platform_device *pdev) { struct snd_soc_card *card = platform_get_drvdata(pdev); snd_soc_unregister_card(card); return 0; }
static int __devexit tegra_wm8903_driver_remove(struct platform_device *pdev) { struct snd_soc_card *card = platform_get_drvdata(pdev); struct tegra_wm8903 *machine = snd_soc_card_get_drvdata(card); struct tegra_wm8903_platform_data *pdata = &machine->pdata; if (machine->gpio_requested & GPIO_HP_DET) snd_soc_jack_free_gpios(&tegra_wm8903_hp_jack, 1, &tegra_wm8903_hp_jack_gpio); if (machine->gpio_requested & GPIO_EXT_MIC_EN) gpio_free(pdata->gpio_ext_mic_en); if (machine->gpio_requested & GPIO_INT_MIC_EN) gpio_free(pdata->gpio_int_mic_en); if (machine->gpio_requested & GPIO_HP_MUTE) gpio_free(pdata->gpio_hp_mute); if (machine->gpio_requested & GPIO_SPKR_EN) gpio_free(pdata->gpio_spkr_en); machine->gpio_requested = 0; snd_soc_unregister_card(card); tegra_asoc_utils_fini(&machine->util_data); if (!IS_ERR(machine->pcm_dev)) platform_device_unregister(machine->pcm_dev); return 0; }
static int bf5xx_ad1836_driver_remove(struct platform_device *pdev) { struct snd_soc_card *card = platform_get_drvdata(pdev); snd_soc_unregister_card(card); return 0; }
static int __devexit sunxi_sndvir_muti_audio_dev_remove(struct platform_device *pdev) { struct snd_soc_card *card = platform_get_drvdata(pdev); snd_soc_unregister_card(card); return 0; }
static int tegra_wm8753_driver_remove(struct platform_device *pdev) { struct snd_soc_card *card = platform_get_drvdata(pdev); struct tegra_wm8753 *machine = snd_soc_card_get_drvdata(card); struct tegra_asoc_platform_data *pdata = machine->pdata; snd_soc_unregister_card(card); #ifdef CONFIG_SWITCH tegra_asoc_switch_unregister(&wired_switch_dev); #endif tegra_asoc_utils_fini(&machine->util_data); if (machine->gpio_requested & GPIO_EXT_MIC_EN) gpio_free(pdata->gpio_ext_mic_en); if (machine->gpio_requested & GPIO_INT_MIC_EN) gpio_free(pdata->gpio_int_mic_en); if (machine->gpio_requested & GPIO_HP_MUTE) gpio_free(pdata->gpio_hp_mute); if (machine->gpio_requested & GPIO_SPKR_EN) gpio_free(pdata->gpio_spkr_en); if (machine->audio_reg) { regulator_disable(machine->audio_reg); regulator_put(machine->audio_reg); } return 0; }
static int aml_m6_audio_remove(struct platform_device *pdev) { int ret = 0; // struct device_node *np = pdev->dev.of_node; // struct device_node *npc; struct snd_soc_card *card; struct aml_audio_private_data *p_aml_audio; card = platform_get_drvdata(pdev); p_aml_audio = snd_soc_card_get_drvdata(card); #if HP_IRQ snd_soc_jack_free_gpios(&p_aml_audio->jack, 1,// &aml_audio_hp_jack_gpio);// #endif snd_soc_unregister_card(card); #if HP_DET /* stop timer */ mutex_lock(&p_aml_audio->lock); if (p_aml_audio->timer_en) { aml_audio_stop_timer(p_aml_audio); } mutex_unlock(&p_aml_audio->lock); #endif aml_m6_pinmux_deinit(card); kfree(p_aml_audio); return ret; }
static int __devexit tegra_snd_tegra_alc5632_remove(struct platform_device *pdev) { struct snd_soc_card *card = platform_get_drvdata(pdev); struct tegra_alc5632 *alc5632 = snd_soc_card_get_drvdata(card); if (alc5632->gpio_requested & GPIO_HP_DET) snd_soc_jack_free_gpios(&tegra_alc5632_hp_jack, 1, &tegra_alc5632_hp_jack_gpio); snd_soc_unregister_card(card); snd_soc_card_set_drvdata(card, NULL); platform_set_drvdata(pdev, NULL); card->dev = NULL; tegra_asoc_utils_fini(&alc5632->util_data); /* if (alc5632->gpio_requested & GPIO_EXT_MIC_EN) gpio_free(pdata->gpio_ext_mic_en); if (alc5632->gpio_requested & GPIO_INT_MIC_EN) gpio_free(pdata->gpio_int_mic_en); if (alc5632->gpio_requested & GPIO_SPKR_EN) gpio_free(pdata->gpio_spkr_en); */ kfree(alc5632); return 0; }
static int __devexit tegra_snd_seaboard_remove(struct platform_device *pdev) { struct snd_soc_card *card = platform_get_drvdata(pdev); struct tegra_seaboard *seaboard = snd_soc_card_get_drvdata(card); struct seaboard_audio_platform_data *pdata = seaboard->pdata; snd_soc_unregister_card(card); snd_soc_card_set_drvdata(card, NULL); platform_set_drvdata(pdev, NULL); card->dev = NULL; regulator_put(seaboard->vdd_dmic); tegra_asoc_utils_fini(&seaboard->util_data); if (seaboard->gpio_requested & GPIO_HP_MUTE) gpio_free(pdata->gpio_hp_mute); if (seaboard->gpio_requested & GPIO_SPKR_EN) gpio_free(pdata->gpio_spkr_en); kfree(seaboard); return 0; }
static int __devexit tegra_aic326x_driver_remove(struct platform_device *pdev) { struct snd_soc_card *card = platform_get_drvdata(pdev); struct tegra_aic326x *machine = snd_soc_card_get_drvdata(card); struct tegra_aic326x_platform_data *pdata = machine->pdata; snd_soc_unregister_card(card); #ifdef CONFIG_SWITCH switch_dev_unregister(&aic326x_wired_switch_dev); #endif tegra_asoc_utils_fini(&machine->util_data); if (machine->gpio_requested & GPIO_EXT_MIC_EN) gpio_free(pdata->gpio_ext_mic_en); if (machine->gpio_requested & GPIO_INT_MIC_EN) gpio_free(pdata->gpio_int_mic_en); if (machine->gpio_requested & GPIO_HP_MUTE) gpio_free(pdata->gpio_hp_mute); if (machine->gpio_requested & GPIO_SPKR_EN) gpio_free(pdata->gpio_spkr_en); kfree(machine); return 0; }
static int __devinit omap3pandora_soc_probe(struct platform_device *pdev) { struct snd_soc_card *card = &snd_soc_card_omap3pandora; int ret; pr_info("OMAP3 Pandora SoC init\n"); card->dev = &pdev->dev; ret = gpio_request(OMAP3_PANDORA_DAC_POWER_GPIO, "dac_power"); if (ret) { pr_err(PREFIX "Failed to get DAC power GPIO\n"); return ret; } ret = gpio_direction_output(OMAP3_PANDORA_DAC_POWER_GPIO, 0); if (ret) { pr_err(PREFIX "Failed to set DAC power GPIO direction\n"); goto fail0; } ret = gpio_request(OMAP3_PANDORA_AMP_POWER_GPIO, "amp_power"); if (ret) { pr_err(PREFIX "Failed to get amp power GPIO\n"); goto fail0; } ret = gpio_direction_output(OMAP3_PANDORA_AMP_POWER_GPIO, 0); if (ret) { pr_err(PREFIX "Failed to set amp power GPIO direction\n"); goto fail1; } ret = snd_soc_register_card(card); if (ret) { dev_err(&pdev->dev, "snd_soc_register_card() failed: %d\n", ret); goto fail1; } omap3pandora_dac_reg = regulator_get(card->dev, "vcc"); if (IS_ERR(omap3pandora_dac_reg)) { pr_err(PREFIX "Failed to get DAC regulator from %s: %ld\n", dev_name(card->dev), PTR_ERR(omap3pandora_dac_reg)); ret = PTR_ERR(omap3pandora_dac_reg); goto fail2; } return 0; fail2: snd_soc_unregister_card(card); fail1: gpio_free(OMAP3_PANDORA_AMP_POWER_GPIO); fail0: gpio_free(OMAP3_PANDORA_DAC_POWER_GPIO); return ret; }
static int msm8x16_asoc_machine_remove(struct platform_device *pdev) { struct snd_soc_card *card = platform_get_drvdata(pdev); snd_soc_unregister_card(card); mutex_destroy(&cdc_mclk_mutex); return 0; }
static int imx_si476x_remove(struct platform_device *pdev) { struct snd_soc_card *card = &snd_soc_card_imx_3stack; snd_soc_unregister_card(card); return 0; }
static int __devexit dfl61wl1273_remove(struct platform_device *pdev) { struct snd_soc_card *card = &dfl61wl1273_sound_card; snd_soc_unregister_card(card); return 0; }
static int snd_merr_dpcm_remove(struct platform_device *pdev) { struct snd_soc_card *soc_card = platform_get_drvdata(pdev); pr_err("snd_merr_dpcm_remove"); snd_soc_unregister_card(soc_card); platform_set_drvdata(pdev, NULL); return 0; }
static int e750_remove(struct platform_device *pdev) { struct snd_soc_card *card = platform_get_drvdata(pdev); gpio_free_array(e750_audio_gpios, ARRAY_SIZE(e750_audio_gpios)); snd_soc_unregister_card(card); return 0; }
static int __devexit omap_hdmi_remove(struct platform_device *pdev) { struct snd_soc_card *card = platform_get_drvdata(pdev); snd_soc_unregister_card(card); card->dev = NULL; return 0; }
static int omap_hdmi_audio_remove(struct platform_device *pdev) { struct hdmi_audio_data *ad = platform_get_drvdata(pdev); snd_soc_unregister_card(ad->card); snd_soc_unregister_component(ad->dssdev); return 0; }
static int bfin_eval_adav80x_remove(struct platform_device *pdev) { struct snd_soc_card *card = platform_get_drvdata(pdev); snd_soc_unregister_card(card); return 0; }
static int __devexit snappercl15_remove(struct platform_device *pdev) { struct snd_soc_card *card = platform_get_drvdata(pdev); snd_soc_unregister_card(card); ep93xx_i2s_release(); return 0; }
static int __devexit sunxi_snddaudio0_dev_remove(struct platform_device *pdev) { struct snd_soc_card *card = platform_get_drvdata(pdev); if (daudio_used) { snd_soc_unregister_card(card); } return 0; }
static int __devexit omap4_hdmi_remove(struct platform_device *pdev) { struct snd_soc_card *card = platform_get_drvdata(pdev); HDMI_AUDIO("ENTER \n"); snd_soc_unregister_card(card); card->dev = NULL; HDMI_AUDIO("LEAVE \n"); return 0; }
static int at91sam9g20ek_audio_remove(struct platform_device *pdev) { struct snd_soc_card *card = platform_get_drvdata(pdev); snd_soc_unregister_card(card); atmel_ssc_put_audio(0); return 0; }
static __devinit int tegra_rt5640_driver_probe(struct platform_device *pdev) { struct snd_soc_card *card = &snd_soc_tegra_rt5640; struct tegra_rt5640 *machine; struct tegra_rt5640_platform_data *pdata; int ret; pdata = pdev->dev.platform_data; if (!pdata) { dev_err(&pdev->dev, "No platform data supplied\n"); return -EINVAL; } machine = kzalloc(sizeof(struct tegra_rt5640), GFP_KERNEL); if (!machine) { dev_err(&pdev->dev, "Can't allocate tegra_rt5640 struct\n"); return -ENOMEM; } machine->pdata = pdata; ret = tegra_asoc_utils_init(&machine->util_data, &pdev->dev, card); if (ret) goto err_free_machine; /* Addd h2w swith class support */ card->dev = &pdev->dev; platform_set_drvdata(pdev, card); snd_soc_card_set_drvdata(card, machine); card->dapm.idle_bias_off = 1; ret = snd_soc_register_card(card); if (ret) { dev_err(&pdev->dev, "snd_soc_register_card failed (%d)\n", ret); goto err_fini_utils; } if (!card->instantiated) { ret = -ENODEV; dev_err(&pdev->dev, "snd_soc_register_card failed (%d)\n", ret); goto err_unregister_card; } return 0; err_unregister_card: snd_soc_unregister_card(card); err_fini_utils: tegra_asoc_utils_fini(&machine->util_data); err_free_machine: kfree(machine); return ret; }
static int __devexit simone_remove(struct platform_device *pdev) { struct snd_soc_card *card = platform_get_drvdata(pdev); snd_soc_unregister_card(card); platform_device_unregister(simone_snd_ac97_device); return 0; }
static __devinit int tegra_rt5631_driver_probe(struct platform_device *pdev) { struct snd_soc_card *card = &snd_soc_tegra_rt5631; struct tegra_rt5631 *machine; struct tegra_asoc_platform_data *pdata; int ret; printk("%s+\n", __func__); pdata = pdev->dev.platform_data; if (!pdata) { dev_err(&pdev->dev, "No platform data supplied\n"); return -EINVAL; } machine = kzalloc(sizeof(struct tegra_rt5631), GFP_KERNEL); if (!machine) { dev_err(&pdev->dev, "Can't allocate tegra_rt5631 struct\n"); return -ENOMEM; } ret = tegra_asoc_utils_init(&machine->util_data, &pdev->dev, card); if (ret) goto err_free_machine; card->dev = &pdev->dev; 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; } #ifndef CONFIG_ARCH_TEGRA_2x_SOC ret = tegra_asoc_utils_set_parent(&machine->util_data, pdata->i2s_param[HIFI_CODEC].is_i2s_master); if (ret) { dev_err(&pdev->dev, "tegra_asoc_utils_set_parent failed (%d)\n", ret); goto err_unregister_card; } #endif printk("%s-\n", __func__); return 0; err_unregister_card: snd_soc_unregister_card(card); err_fini_utils: tegra_asoc_utils_fini(&machine->util_data); err_free_machine: kfree(machine); return ret; }
static int es8316_remove(struct platform_device *pdev) { struct snd_soc_card *card = platform_get_drvdata(pdev); snd_soc_unregister_card(card); #if defined (CFG_IO_AUDIO_AMP_POWER) gpio_set_value(AUDIO_AMP_POWER, 0); gpio_free(AUDIO_AMP_POWER); #endif return 0; }
static int hx4700_audio_remove(struct platform_device *pdev) { snd_soc_unregister_card(&snd_soc_card_hx4700); gpio_set_value(GPIO92_HX4700_HP_DRIVER, 0); gpio_set_value(GPIO107_HX4700_SPK_nSD, 0); gpio_free_array(hx4700_audio_gpios, ARRAY_SIZE(hx4700_audio_gpios)); return 0; }