Commit bc759721 authored by Takashi Iwai's avatar Takashi Iwai

ALSA: hda - Add snd_hda_get_int_hint() helper function

It'll be used in hda_generic.c, too.
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 09b70e85
...@@ -644,6 +644,26 @@ int snd_hda_get_bool_hint(struct hda_codec *codec, const char *key) ...@@ -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); 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 */ #endif /* CONFIG_SND_HDA_RECONFIG */
#ifdef CONFIG_SND_HDA_PATCH_LOADER #ifdef CONFIG_SND_HDA_PATCH_LOADER
......
...@@ -618,6 +618,7 @@ static inline int snd_hda_hwdep_add_sysfs(struct hda_codec *codec) ...@@ -618,6 +618,7 @@ static inline int snd_hda_hwdep_add_sysfs(struct hda_codec *codec)
#ifdef CONFIG_SND_HDA_RECONFIG #ifdef CONFIG_SND_HDA_RECONFIG
const char *snd_hda_get_hint(struct hda_codec *codec, const char *key); 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_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 #else
static inline static inline
const char *snd_hda_get_hint(struct hda_codec *codec, const char *key) 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) ...@@ -630,6 +631,12 @@ int snd_hda_get_bool_hint(struct hda_codec *codec, const char *key)
{ {
return -ENOENT; return -ENOENT;
} }
static inline
int snd_hda_get_int_hint(struct hda_codec *codec, const char *key, int *valp)
{
return -ENOENT;
}
#endif #endif
/* /*
......
...@@ -4295,24 +4295,10 @@ static void stac92xx_power_down(struct hda_codec *codec) ...@@ -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, static void stac_toggle_power_map(struct hda_codec *codec, hda_nid_t nid,
int enable); int enable);
static inline int get_int_hint(struct hda_codec *codec, const char *key, static inline bool get_int_hint(struct hda_codec *codec, const char *key,
int *valp) int *valp)
{ {
#ifdef CONFIG_SND_HDA_RECONFIG return !snd_hda_get_int_hint(codec, key, valp);
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;
} }
/* override some hints from the hwdep entry */ /* override some hints from the hwdep entry */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment