From ba43cb0c817dfbc2d51e8cda98330941e10876de Mon Sep 17 00:00:00 2001 From: Scott Peterson Date: Fri, 8 Feb 2013 17:14:17 -0800 Subject: asoc: tegra: Protect against invalid gpio writes Protect against calling gpio_direction_output() with an innvalid gpio handle. Bug 1233665 Change-Id: I00dc7a2a254c7f57ba2894328abd52324bcb304d Signed-off-by: Scott Peterson Reviewed-on: http://git-master/r/198978 Reviewed-by: Anshul Jain (SW) Reviewed-by: Matt Wagner GVS: Gerrit_Virtual_Submit --- sound/soc/tegra/tegra_rt5640.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'sound') diff --git a/sound/soc/tegra/tegra_rt5640.c b/sound/soc/tegra/tegra_rt5640.c index a66b4c6a1532..16bfa42dec14 100644 --- a/sound/soc/tegra/tegra_rt5640.c +++ b/sound/soc/tegra/tegra_rt5640.c @@ -354,7 +354,8 @@ static int tegra_rt5640_jack_notifier(struct notifier_block *self, if (jack == &tegra_rt5640_hp_jack) { if (action) { /* Enable ext mic; enable signal is active-low */ - gpio_direction_output(pdata->gpio_ext_mic_en, 0); + if (gpio_is_valid(pdata->gpio_ext_mic_en)) + gpio_direction_output(pdata->gpio_ext_mic_en, 0); if (!strncmp(machine->pdata->codec_name, "rt5639", 6)) status_jack = rt5639_headset_detect(codec, 1); else if (!strncmp(machine->pdata->codec_name, "rt5640", @@ -376,7 +377,8 @@ static int tegra_rt5640_jack_notifier(struct notifier_block *self, } } else { /* Disable ext mic; enable signal is active-low */ - gpio_direction_output(pdata->gpio_ext_mic_en, 1); + if (gpio_is_valid(pdata->gpio_ext_mic_en)) + gpio_direction_output(pdata->gpio_ext_mic_en, 1); if (!strncmp(machine->pdata->codec_name, "rt5639", 6)) rt5639_headset_detect(codec, 0); else if (!strncmp(machine->pdata->codec_name, "rt5640", -- cgit v1.2.3