[ARM] pxafb: add support for overlay1 and overlay2 as framebuffer devices
authorEric Miao <ycmiao@ycmiao-hp520.(none)>
Tue, 23 Dec 2008 09:49:43 +0000 (17:49 +0800)
committerEric Miao <eric.miao@marvell.com>
Mon, 29 Dec 2008 10:00:04 +0000 (18:00 +0800)
commit198fc108ee4c2cd3f08954eae6a819c81c03214b
tree153fdb793142ef5ee8e0ab6198dcde32866b062c
parent3f16ff608a75c8bf28c8cafed12e076d67a3602a
[ARM] pxafb: add support for overlay1 and overlay2 as framebuffer devices

PXA27x and later processors support overlay1 and overlay2 on-top of the
base framebuffer (although under-neath the base is also possible). They
support palette and no-palette RGB formats, as well as YUV formats (only
available on overlay2). These overlays have dedicated DMA channels and
behave in a similar way as a framebuffer.

This heavily simplified and re-structured work is based on the original
pxafb_overlay.c (which is pending for mainline merge for a long time).

The major problems with this pxafb_overlay.c are (if you are interested
in the history):

  1. heavily redundant (the control logics for overlay1 and overlay2 are
     actually identical except for some small operations,  which are now
     abstracted into a 'pxafb_layer_ops' structure)

  2. a lot of useless and un-tested code (two workarounds which are now
     fixed on mature silicons)

  3. cursorfb is actually useless, hardware cursor should not be used
     this way, and the code was actually un-tested for a long time.

The code in this patch should be self-explanatory, I tried to add minimum
comments. As said, this is basically simplified, there are several things
still on the pending list:

  1. palette mode is un-supported and un-tested (although re-using the
     palette code of the base framebuffer is actually very easy now with
     previous clean-up patches)

  2. fb_pan_display for overlay(s) is un-supported

  3. the base framebuffer can actually be abstracted by 'pxafb_layer' as
     well, which will help further re-use of the code and keep a better
     and consistent structure. (This is the reason I named it 'pxafb_layer'
     instead of 'pxafb_overlay' or something alike)

See Documentation/fb/pxafb.txt for additional usage information.

Signed-off-by: Eric Miao <eric.miao@marvell.com>
Cc: Rodolfo Giometti <giometti@linux.it>
Signed-off-by: Eric Miao <ycmiao@ycmiao-hp520.(none)>
Documentation/fb/pxafb.txt
arch/arm/mach-pxa/include/mach/regs-lcd.h
drivers/video/Kconfig
drivers/video/pxafb.c
drivers/video/pxafb.h