#
# Gameport configuration
#
config GAMEPORT
	tristate "Gameport support"
	---help---
	  Gameport support is for the standard 15-pin PC gameport. If you
	  have a joystick, gamepad, gameport card, a soundcard with a gameport
	  or anything else that uses the gameport, say Y or M here and also to
	  at least one of the hardware specific drivers.

	  For Ensoniq AudioPCI (ES1370), AudioPCI 97 (ES1371), ESS Solo1,
	  S3 SonicVibes, Trident 4DWave, SiS7018, and ALi 5451 gameport
	  support is provided by the sound drivers, so you won't need any
	  from the below listed modules. You still need to say Y here.

	  If unsure, say Y.

	  To compile this driver as a module, choose M here: the
	  module will be called gameport.

if GAMEPORT

config GAMEPORT_NS558
	tristate "Classic ISA and PnP gameport support"
	help
	  Say Y here if you have an ISA or PnP gameport.

	  If unsure, say Y.

	  To compile this driver as a module, choose M here: the
	  module will be called ns558.

config GAMEPORT_L4
	tristate "PDPI Lightning 4 gamecard support"
	help
	  Say Y here if you have a PDPI Lightning 4 gamecard.

	  To compile this driver as a module, choose M here: the
	  module will be called lightning.

config GAMEPORT_EMU10K1
	tristate "SB Live and Audigy gameport support"
	depends on PCI
	help
	  Say Y here if you have a SoundBlaster Live! or SoundBlaster
	  Audigy card and want to use its gameport.

	  To compile this driver as a module, choose M here: the
	  module will be called emu10k1-gp.

config GAMEPORT_FM801
	tristate "ForteMedia FM801 gameport support"
	depends on PCI
	help
	  Say Y here if you have ForteMedia FM801 PCI audio controller
	  (Abit AU10, Genius Sound Maker, HP Workstation zx2000,
	  and others), and want to use its gameport.

	  To compile this driver as a module, choose M here: the
	  module will be called fm801-gp.

endif
