diff options
author | Takashi Iwai <tiwai@suse.de> | 2009-12-27 07:53:24 -0500 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2009-12-27 07:53:24 -0500 |
commit | 014c41fce1bd5cec381e70fc6f58fdfc96cdaf69 (patch) | |
tree | 148d95c1f27acaee25991e6b1cb9e606d91f899d /sound/pci/hda/patch_sigmatel.c | |
parent | b82855a0d76ebda1cc14c00040560d77bfa042ce (diff) |
ALSA: hda - Use strict_strtoul()
Rewrite the codes to use strict_strtoul() instead of simple_strtoul().
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci/hda/patch_sigmatel.c')
-rw-r--r-- | sound/pci/hda/patch_sigmatel.c | 48 |
1 files changed, 26 insertions, 22 deletions
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index dc1d9f124578..e28c810bc00c 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c | |||
@@ -4159,43 +4159,47 @@ static void stac92xx_power_down(struct hda_codec *codec) | |||
4159 | static void stac_toggle_power_map(struct hda_codec *codec, hda_nid_t nid, | 4159 | static void stac_toggle_power_map(struct hda_codec *codec, hda_nid_t nid, |
4160 | int enable); | 4160 | int enable); |
4161 | 4161 | ||
4162 | static inline int get_int_hint(struct hda_codec *codec, const char *key, | ||
4163 | int *valp) | ||
4164 | { | ||
4165 | const char *p; | ||
4166 | p = snd_hda_get_hint(codec, key); | ||
4167 | if (p) { | ||
4168 | unsigned long val; | ||
4169 | if (!strict_strtoul(p, 0, &val)) { | ||
4170 | *valp = val; | ||
4171 | return 1; | ||
4172 | } | ||
4173 | } | ||
4174 | return 0; | ||
4175 | } | ||
4176 | |||
4162 | /* override some hints from the hwdep entry */ | 4177 | /* override some hints from the hwdep entry */ |
4163 | static void stac_store_hints(struct hda_codec *codec) | 4178 | static void stac_store_hints(struct hda_codec *codec) |
4164 | { | 4179 | { |
4165 | struct sigmatel_spec *spec = codec->spec; | 4180 | struct sigmatel_spec *spec = codec->spec; |
4166 | const char *p; | ||
4167 | int val; | 4181 | int val; |
4168 | 4182 | ||
4169 | val = snd_hda_get_bool_hint(codec, "hp_detect"); | 4183 | val = snd_hda_get_bool_hint(codec, "hp_detect"); |
4170 | if (val >= 0) | 4184 | if (val >= 0) |
4171 | spec->hp_detect = val; | 4185 | spec->hp_detect = val; |
4172 | p = snd_hda_get_hint(codec, "gpio_mask"); | 4186 | if (get_int_hint(codec, "gpio_mask", &spec->gpio_mask)) { |
4173 | if (p) { | ||
4174 | spec->gpio_mask = simple_strtoul(p, NULL, 0); | ||
4175 | spec->eapd_mask = spec->gpio_dir = spec->gpio_data = | 4187 | spec->eapd_mask = spec->gpio_dir = spec->gpio_data = |
4176 | spec->gpio_mask; | 4188 | spec->gpio_mask; |
4177 | } | 4189 | } |
4178 | p = snd_hda_get_hint(codec, "gpio_dir"); | 4190 | if (get_int_hint(codec, "gpio_dir", &spec->gpio_dir)) |
4179 | if (p) | 4191 | spec->gpio_mask &= spec->gpio_mask; |
4180 | spec->gpio_dir = simple_strtoul(p, NULL, 0) & spec->gpio_mask; | 4192 | if (get_int_hint(codec, "gpio_data", &spec->gpio_data)) |
4181 | p = snd_hda_get_hint(codec, "gpio_data"); | 4193 | spec->gpio_dir &= spec->gpio_mask; |
4182 | if (p) | 4194 | if (get_int_hint(codec, "eapd_mask", &spec->eapd_mask)) |
4183 | spec->gpio_data = simple_strtoul(p, NULL, 0) & spec->gpio_mask; | 4195 | spec->eapd_mask &= spec->gpio_mask; |
4184 | p = snd_hda_get_hint(codec, "eapd_mask"); | 4196 | if (get_int_hint(codec, "gpio_mute", &spec->gpio_mute)) |
4185 | if (p) | 4197 | spec->gpio_mute &= spec->gpio_mask; |
4186 | spec->eapd_mask = simple_strtoul(p, NULL, 0) & spec->gpio_mask; | ||
4187 | p = snd_hda_get_hint(codec, "gpio_mute"); | ||
4188 | if (p) | ||
4189 | spec->gpio_mute = simple_strtoul(p, NULL, 0) & spec->gpio_mask; | ||
4190 | val = snd_hda_get_bool_hint(codec, "eapd_switch"); | 4198 | val = snd_hda_get_bool_hint(codec, "eapd_switch"); |
4191 | if (val >= 0) | 4199 | if (val >= 0) |
4192 | spec->eapd_switch = val; | 4200 | spec->eapd_switch = val; |
4193 | p = snd_hda_get_hint(codec, "gpio_led_polarity"); | 4201 | get_int_hint(codec, "gpio_led_polarity", &spec->gpio_led_polarity); |
4194 | if (p) | 4202 | if (get_int_hint(codec, "gpio_led", &spec->gpio_led)) { |
4195 | spec->gpio_led_polarity = simple_strtoul(p, NULL, 0); | ||
4196 | p = snd_hda_get_hint(codec, "gpio_led"); | ||
4197 | if (p) { | ||
4198 | spec->gpio_led = simple_strtoul(p, NULL, 0); | ||
4199 | spec->gpio_mask |= spec->gpio_led; | 4203 | spec->gpio_mask |= spec->gpio_led; |
4200 | spec->gpio_dir |= spec->gpio_led; | 4204 | spec->gpio_dir |= spec->gpio_led; |
4201 | if (spec->gpio_led_polarity) | 4205 | if (spec->gpio_led_polarity) |