• Eric Miao's avatar
    [ARM] pxafb: add support for overlay1 and overlay2 as framebuffer devices · 198fc108
    Eric Miao authored
    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: default avatarEric Miao <eric.miao@marvell.com>
    Cc: Rodolfo Giometti <giometti@linux.it>
    Signed-off-by: default avatarEric Miao <ycmiao@ycmiao-hp520.(none)>
    198fc108
pxafb.c 59.5 KB