Browse Source

ALSA: hda - Make CONFIG_SND_HDA_RECONFIG for codec reconfiguration

Make the codec re-configuration feature selectable via Kconfig,
CONFIG_SND_HDA_RECONFIG.
Also mark it as experimental (as it really is).

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai 16 years ago
parent
commit
e7ee058cac
3 changed files with 22 additions and 1 deletions
  1. 9 0
      sound/pci/Kconfig
  2. 4 0
      sound/pci/hda/hda_hwdep.c
  3. 9 1
      sound/pci/hda/hda_local.h

+ 9 - 0
sound/pci/Kconfig

@@ -518,6 +518,15 @@ config SND_HDA_HWDEP
 	  This interface can be used for out-of-band communication
 	  with codecs for debugging purposes.
 
+config SND_HDA_RECONFIG
+	bool "Allow dynamic codec reconfiguration (EXPERIMENTAL)"
+	depends on SND_HDA_HWDEP && EXPERIMENTAL
+	help
+	  Say Y here to enable the HD-audio codec re-configuration feature.
+	  This adds the sysfs interfaces to allow user to clear the whole
+	  codec configuration, change the codec setup, add extra verbs,
+	  and re-configure the codec dynamically.
+
 config SND_HDA_INPUT_BEEP
 	bool "Support digital beep via input layer"
 	depends on SND_HDA_INTEL

+ 4 - 0
sound/pci/hda/hda_hwdep.c

@@ -145,6 +145,8 @@ int __devinit snd_hda_create_hwdep(struct hda_codec *codec)
 	return 0;
 }
 
+#ifdef CONFIG_SND_HDA_RECONFIG
+
 /*
  * sysfs interface
  */
@@ -347,3 +349,5 @@ int snd_hda_hwdep_add_sysfs(struct hda_codec *codec)
 					  hwdep->device, &codec_attrs[i]);
 	return 0;
 }
+
+#endif /* CONFIG_SND_HDA_RECONFIG */

+ 9 - 1
sound/pci/hda/hda_local.h

@@ -409,11 +409,19 @@ void snd_hda_ctls_clear(struct hda_codec *codec);
  */
 #ifdef CONFIG_SND_HDA_HWDEP
 int snd_hda_create_hwdep(struct hda_codec *codec);
-int snd_hda_hwdep_add_sysfs(struct hda_codec *codec);
 #else
 static inline int snd_hda_create_hwdep(struct hda_codec *codec) { return 0; }
 #endif
 
+#ifdef CONFIG_SND_HDA_RECONFIG
+int snd_hda_hwdep_add_sysfs(struct hda_codec *codec);
+#else
+static inline int snd_hda_hwdep_add_sysfs(struct hda_codec *codec)
+{
+	return 0;
+}
+#endif
+
 /*
  * power-management
  */