diff --git a/sound/arm/pxa2xx-ac97-lib.c b/sound/arm/pxa2xx-ac97-lib.c index a2c12d105c9a932e1fd800aaa3704e297d5fc3d1..6fdca97186e769ae485f5b4bdf4332e69aa373f8 100644 --- a/sound/arm/pxa2xx-ac97-lib.c +++ b/sound/arm/pxa2xx-ac97-lib.c @@ -65,7 +65,7 @@ static void set_resetgpio_mode(int resetgpio_action) switch (resetgpio_action) { case RESETGPIO_NORMAL_ALTFUNC: if (reset_gpio == 113) - mode = 113 | GPIO_OUT | GPIO_DFLT_LOW; + mode = 113 | GPIO_ALT_FN_2_OUT; if (reset_gpio == 95) mode = 95 | GPIO_ALT_FN_1_OUT; break; diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c index 6ac68e47b3a64279749fcbf3e6a3d65537f1bf0d..c0e706645ec4c9ba7be7188621735e6cb57de948 100644 --- a/sound/soc/soc-core.c +++ b/sound/soc/soc-core.c @@ -992,6 +992,9 @@ static int soc_remove(struct platform_device *pdev) struct snd_soc_platform *platform = card->platform; struct snd_soc_codec_device *codec_dev = socdev->codec_dev; + if (!card->instantiated) + return 0; + run_delayed_work(&card->delayed_work); if (platform->remove)