arkfb: new framebuffer driver for ARK Logic cards

This patch adds fbdev driver for graphics cards with ARK Logic 2000PV graphics
chip with ICS 5342 ramdac.

[adaplas@gmail.com: build fixes]
Signed-off-by: Ondrej Zajicek <santiago@crfreenet.org>
Signed-off-by: Antonino Daplas <adaplas@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Ondrej Zajicek 2007-05-09 02:35:31 -07:00 committed by Linus Torvalds
parent 558b7bd86c
commit 681e14730c
4 changed files with 1282 additions and 0 deletions

View file

@ -0,0 +1,68 @@
arkfb - fbdev driver for ARK Logic chips
========================================
Supported Hardware
==================
ARK 2000PV chip
ICS 5342 ramdac
- only BIOS initialized VGA devices supported
- probably not working on big endian
Supported Features
==================
* 4 bpp pseudocolor modes (with 18bit palette, two variants)
* 8 bpp pseudocolor mode (with 18bit palette)
* 16 bpp truecolor modes (RGB 555 and RGB 565)
* 24 bpp truecolor mode (RGB 888)
* 32 bpp truecolor mode (RGB 888)
* text mode (activated by bpp = 0)
* doublescan mode variant (not available in text mode)
* panning in both directions
* suspend/resume support
Text mode is supported even in higher resolutions, but there is limitation to
lower pixclocks (i got maximum about 70 MHz, it is dependent on specific
hardware). This limitation is not enforced by driver. Text mode supports 8bit
wide fonts only (hardware limitation) and 16bit tall fonts (driver
limitation). Unfortunately character attributes (like color) in text mode are
broken for unknown reason, so its usefulness is limited.
There are two 4 bpp modes. First mode (selected if nonstd == 0) is mode with
packed pixels, high nibble first. Second mode (selected if nonstd == 1) is mode
with interleaved planes (1 byte interleave), MSB first. Both modes support
8bit wide fonts only (driver limitation).
Suspend/resume works on systems that initialize video card during resume and
if device is active (for example used by fbcon).
Missing Features
================
(alias TODO list)
* secondary (not initialized by BIOS) device support
* big endian support
* DPMS support
* MMIO support
* interlaced mode variant
* support for fontwidths != 8 in 4 bpp modes
* support for fontheight != 16 in text mode
* hardware cursor
* vsync synchronization
* feature connector support
* acceleration support (8514-like 2D)
Known bugs
==========
* character attributes (and cursor) in text mode are broken
--
Ondrej Zajicek <santiago@crfreenet.org>

View file

@ -1415,6 +1415,20 @@ config FB_TRIDENT_ACCEL
This will compile the Trident frame buffer device with
acceleration functions.
config FB_ARK
tristate "ARK 2000PV support"
depends on FB && PCI
select FB_CFB_FILLRECT
select FB_CFB_COPYAREA
select FB_CFB_IMAGEBLIT
select FB_TILEBLITTING
select FB_SVGALIB
select VGASTATE
select FONT_8x16 if FRAMEBUFFER_CONSOLE
---help---
Driver for PCI graphics boards with ARK 2000PV chip
and ICS 5342 RAMDAC.
config FB_PM3
tristate "Permedia3 support"
depends on FB && PCI && BROKEN

View file

@ -59,6 +59,7 @@ obj-$(CONFIG_FB_CYBLA) += cyblafb.o
obj-$(CONFIG_FB_TRIDENT) += tridentfb.o
obj-$(CONFIG_FB_LE80578) += vermilion/
obj-$(CONFIG_FB_S3) += s3fb.o
obj-$(CONFIG_FB_ARK) += arkfb.o
obj-$(CONFIG_FB_STI) += stifb.o
obj-$(CONFIG_FB_FFB) += ffb.o sbuslib.o
obj-$(CONFIG_FB_CG6) += cg6.o sbuslib.o

1199
drivers/video/arkfb.c Normal file

File diff suppressed because it is too large Load diff