config FB_OMAP
	tristate "OMAP frame buffer support (EXPERIMENTAL)"
	depends on FB
	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 initializaion"
	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.
