diff options
author | Takashi Iwai <tiwai@suse.de> | 2013-01-11 17:40:31 +0100 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2013-01-12 08:44:47 +0100 |
commit | bc759721fb44bc07e4f82445cc378a9d2724651f (patch) | |
tree | 6f096f37647a91f4cb5f6c4ceed9d07e08822682 /sound/pci/hda | |
parent | 09b70e8509862debff5a033052f8adbd7402fa4e (diff) | |
download | linux-stable-bc759721fb44bc07e4f82445cc378a9d2724651f.tar.gz linux-stable-bc759721fb44bc07e4f82445cc378a9d2724651f.tar.bz2 linux-stable-bc759721fb44bc07e4f82445cc378a9d2724651f.zip |
ALSA: hda - Add snd_hda_get_int_hint() helper function
It'll be used in hda_generic.c, too.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci/hda')
-rw-r--r-- | sound/pci/hda/hda_hwdep.c | 20 | ||||
-rw-r--r-- | sound/pci/hda/hda_local.h | 7 | ||||
-rw-r--r-- | sound/pci/hda/patch_sigmatel.c | 22 |
3 files changed, 31 insertions, 18 deletions
diff --git a/sound/pci/hda/hda_hwdep.c b/sound/pci/hda/hda_hwdep.c index 2dddf7fbebcc..ce67608734b5 100644 --- a/sound/pci/hda/hda_hwdep.c +++ b/sound/pci/hda/hda_hwdep.c @@ -644,6 +644,26 @@ int snd_hda_get_bool_hint(struct hda_codec *codec, const char *key) } EXPORT_SYMBOL_HDA(snd_hda_get_bool_hint); +int snd_hda_get_int_hint(struct hda_codec *codec, const char *key, int *valp) +{ + const char *p; + unsigned long val; + int ret; + + mutex_lock(&codec->user_mutex); + p = snd_hda_get_hint(codec, key); + if (!p) + ret = -ENOENT; + else if (strict_strtoul(p, 0, &val)) + ret = -EINVAL; + else { + *valp = val; + ret = 0; + } + mutex_unlock(&codec->user_mutex); + return ret; +} +EXPORT_SYMBOL_HDA(snd_hda_get_int_hint); #endif /* CONFIG_SND_HDA_RECONFIG */ #ifdef CONFIG_SND_HDA_PATCH_LOADER diff --git a/sound/pci/hda/hda_local.h b/sound/pci/hda/hda_local.h index c09440dd5bfa..9e6353aafb1a 100644 --- a/sound/pci/hda/hda_local.h +++ b/sound/pci/hda/hda_local.h @@ -618,6 +618,7 @@ static inline int snd_hda_hwdep_add_sysfs(struct hda_codec *codec) #ifdef CONFIG_SND_HDA_RECONFIG const char *snd_hda_get_hint(struct hda_codec *codec, const char *key); int snd_hda_get_bool_hint(struct hda_codec *codec, const char *key); +int snd_hda_get_int_hint(struct hda_codec *codec, const char *key, int *valp); #else static inline const char *snd_hda_get_hint(struct hda_codec *codec, const char *key) @@ -630,6 +631,12 @@ int snd_hda_get_bool_hint(struct hda_codec *codec, const char *key) { return -ENOENT; } + +static inline +int snd_hda_get_int_hint(struct hda_codec *codec, const char *key, int *valp) +{ + return -ENOENT; +} #endif /* diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index d3a81f10fe5c..9cc4cb9b4bd2 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c @@ -4295,24 +4295,10 @@ static void stac92xx_power_down(struct hda_codec *codec) static void stac_toggle_power_map(struct hda_codec *codec, hda_nid_t nid, int enable); -static inline int get_int_hint(struct hda_codec *codec, const char *key, - int *valp) -{ -#ifdef CONFIG_SND_HDA_RECONFIG - const char *p; - mutex_lock(&codec->user_mutex); - p = snd_hda_get_hint(codec, key); - if (p) { - unsigned long val; - if (!strict_strtoul(p, 0, &val)) { - *valp = val; - mutex_unlock(&codec->user_mutex); - return 1; - } - } - mutex_unlock(&codec->user_mutex); -#endif - return 0; +static inline bool get_int_hint(struct hda_codec *codec, const char *key, + int *valp) +{ + return !snd_hda_get_int_hint(codec, key, valp); } /* override some hints from the hwdep entry */ |