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>
diff --git a/sound/pci/Kconfig b/sound/pci/Kconfig
index 157a0a6..cc6cf89 100644
--- a/sound/pci/Kconfig
+++ b/sound/pci/Kconfig
@@ -518,6 +518,15 @@
 	  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
diff --git a/sound/pci/hda/hda_hwdep.c b/sound/pci/hda/hda_hwdep.c
index 653da1d..5868bbc 100644
--- a/sound/pci/hda/hda_hwdep.c
+++ b/sound/pci/hda/hda_hwdep.c
@@ -145,6 +145,8 @@
 	return 0;
 }
 
+#ifdef CONFIG_SND_HDA_RECONFIG
+
 /*
  * sysfs interface
  */
@@ -347,3 +349,5 @@
 					  hwdep->device, &codec_attrs[i]);
 	return 0;
 }
+
+#endif /* CONFIG_SND_HDA_RECONFIG */
diff --git a/sound/pci/hda/hda_local.h b/sound/pci/hda/hda_local.h
index bf7ba8b..6f2fe0f 100644
--- a/sound/pci/hda/hda_local.h
+++ b/sound/pci/hda/hda_local.h
@@ -409,11 +409,19 @@
  */
 #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
  */