ALSA: hda - Make CONFIG_SND_HDA_RECONFIG for codec reconfiguration
authorTakashi Iwai <tiwai@suse.de>
Fri, 21 Nov 2008 08:26:20 +0000 (09:26 +0100)
committerTakashi Iwai <tiwai@suse.de>
Fri, 21 Nov 2008 08:26:20 +0000 (09:26 +0100)
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>
sound/pci/Kconfig
sound/pci/hda/hda_hwdep.c
sound/pci/hda/hda_local.h

index 157a0a6..cc6cf89 100644 (file)
@@ -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
index 653da1d..5868bbc 100644 (file)
@@ -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 */
index bf7ba8b..6f2fe0f 100644 (file)
@@ -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
  */