From: Muli Ben-Yehuda 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 _