From: Muli Ben-Yehuda <mulix@mulix.org>

It's messy, and needs describing.


 drivers/input/gameport/Kconfig |   16 ++++++++++++++++
 1 files changed, 16 insertions(+)

diff -puN drivers/input/gameport/Kconfig~CONFIG_GAMEPORT-documentation drivers/input/gameport/Kconfig
--- 25/drivers/input/gameport/Kconfig~CONFIG_GAMEPORT-documentation	2003-12-25 23:30:43.000000000 -0800
+++ 25-akpm/drivers/input/gameport/Kconfig	2003-12-25 23:30:43.000000000 -0800
@@ -19,6 +19,22 @@ config GAMEPORT
 	  To compile this driver as a module, choose M here: the
 	  module will be called gameport.
 
+
+# Yes, SOUND_GAMEPORT looks a bit odd. Yes, it ends up being turned on
+# in every .config. Please don't touch it. It is here to handle an
+# unusual dependency between GAMEPORT and sound drivers.
+#
+# Some sound drivers call gameport functions. If GAMEPORT is
+# not selected, empty stubs are provided for the functions and all is
+# well.
+# If GAMEPORT is built in, everything is fine.
+# If GAMEPORT is a module, however, it would need to be loaded for the
+# sound driver to be able to link properly. Therefore, the sound
+# driver must be a module as well in that case. Since there's no way
+# to express that directly in Kconfig, we use SOUND_GAMEPORT to
+# express it. SOUND_GAMEPORT boils down to "if GAMEPORT is 'm',
+# anything that depends on SOUND_GAMEPORT must be 'm' as well. if
+# GAMEPORT is 'y' or 'n', it can be anything".
 config SOUND_GAMEPORT
 	tristate
 	default y if GAMEPORT!=m

_