ALSA: hda - Add snd_hda_get_int_hint() helper function
authorTakashi Iwai <tiwai@suse.de>
Fri, 11 Jan 2013 16:40:31 +0000 (17:40 +0100)
committerTakashi Iwai <tiwai@suse.de>
Sat, 12 Jan 2013 07:44:47 +0000 (08:44 +0100)
It'll be used in hda_generic.c, too.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/hda/hda_hwdep.c
sound/pci/hda/hda_local.h
sound/pci/hda/patch_sigmatel.c

index 2dddf7f..ce67608 100644 (file)
@@ -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
index c09440d..9e6353a 100644 (file)
@@ -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
 
 /*
index d3a81f1..9cc4cb9 100644 (file)
@@ -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 */