
config USB_SISUSBVGA
	tristate "USB 2.0 SVGA dongle support (Net2280/SiS315)"
	depends on (USB_MUSB_HDRC || USB_EHCI_HCD)
	select FONT_SUPPORT if USB_SISUSBVGA_CON
        ---help---
	  Say Y here if you intend to attach a USB2VGA dongle based on a
	  Net2280 and a SiS315 chip.

	  Note that this device requires a USB 2.0 host controller. It will not
	  work with USB 1.x controllers.

	  To compile this driver as a module, choose M here; the module will be
	  called sisusbvga. If unsure, say N.

config USB_SISUSBVGA_CON
	bool "Text console and mode switching support" if USB_SISUSBVGA
	depends on VT
	select FONT_8x16
	---help---
	  Say Y here if you want a VGA text console via the USB dongle or
	  want to support userland applications that utilize the driver's
	  display mode switching capabilities.

	  Note that this console supports VGA/EGA text mode only.

	  By default, the console part of the driver will not kick in when
	  the driver is initialized. If you want the driver to take over
	  one or more of the consoles, you need to specify the number of
	  the first and last consoles (starting at 1) as driver parameters.

	  For example, if the driver is compiled as a module:

	     modprobe sisusbvga first=1 last=5

	  If you use hotplug, add this to your modutils config files with
	  the "options" keyword, such as eg.

	     options sisusbvga first=1 last=5

	  If the driver is compiled into the kernel image, the parameters
	  must be given in the kernel command like, such as

	     sisusbvga.first=1 sisusbvga.last=5



