config FB_OMAP
	tristate "OMAP frame buffer support (EXPERIMENTAL)"
	depends on FB && ARCH_OMAP
	select FB_CFB_FILLRECT
	select FB_CFB_COPYAREA
	select FB_CFB_IMAGEBLIT
	help
          Frame buffer driver for OMAP based boards.

config FB_OMAP_BOOTLOADER_INIT
	bool "Check bootloader initialization"
	depends on FB_OMAP
	help
	  Say Y here if you want to enable checking if the bootloader has
	  already initialized the display controller. In this case the
	  driver will skip the initialization.

config FB_OMAP_CONSISTENT_DMA_SIZE
	int "Consistent DMA memory size (MB)"
	depends on FB_OMAP
	range 1 14
	default 2
	help
	  Increase the DMA consistent memory size according to your video
	  memory needs, for example if you want to use multiple planes.
	  The size must be 2MB aligned.
	  If unsure say 1.

config FB_OMAP_DMA_TUNE
        bool "Set DMA SDRAM access priority high"
        depends on FB_OMAP && ARCH_OMAP1
        help
          On systems in which video memory is in system memory
          (SDRAM) this will speed up graphics DMA operations.
          If you have such a system and want to use rotation
          answer yes. Answer no if you have a dedicated video
          memory, or don't use any of the accelerated features.

config FB_OMAP_LCDC_EXTERNAL
	bool "External LCD controller support"
	depends on FB_OMAP
	help
	  Say Y here, if you want to have support for boards with an
	  external LCD controller connected to the SoSSI/RFBI interface.

config FB_OMAP_LCDC_HWA742
	bool "Epson HWA742 LCD controller support"
	depends on FB_OMAP && FB_OMAP_LCDC_EXTERNAL
	help
	  Say Y here if you want to have support for the external
	  Epson HWA742 LCD controller.

config FB_OMAP_LCDC_BLIZZARD
	bool "Epson Blizzard LCD controller support"
	depends on FB_OMAP && FB_OMAP_LCDC_EXTERNAL
	help
	  Say Y here if you want to have support for the external
	  Epson Blizzard LCD controller.
