Commit e05e981a authored by Sebastian Ramacher's avatar Sebastian Ramacher

Import Upstream version 1.4.3

parent 5caf4d82
This diff is collapsed.
1.4.3
-----
Wrap up all the changes since 1.4.2 in a nice package.
The big changes are the API changes: new pixelformats are added, a synchronisation
mechanism is added so you can sync backbufferless window updates, and batchblit2 is added
whichs supports hardware with double input - single output blitters; even
automatically in conjunction with the window composer of SaWMan.
API changes
- added the following pixelformats: YUV444P, AVYU, VYU, ARGB8565
- add IDirectFBWindow::BeginUpdates() and DSFLIP_ONCE to sync updates without double buffer space
- add DWEF_REPEAT flag to signal key repeat
- font: correct documentation of ret_str_length in GetStringBreak()
- IDirectFBSurface: Added DSBLIT_FLIP_HORIZONTAL and DSBLIT_FLIP_VERTICAL
- added IDirectFBSurface::BatchBlit2 (no software fallback offered).
- names: Added DFBScreenEncoderFrequency names.
modules
- add ShutdownLayer() and ShutdownScreen() functions to allow proper driver clean-up.
core
- add several previously added API functions to voodoo.
- shirmish: for single app, make skirmish a pointer so skirmishes can be copied
- colorhash: Commented out annoying assumptions
- surfaces: allow no windows on surfaceless layers
- for non-flipping fullscreen primary surface, force initial update as no Flip() may come from application.
graphics
- Fix combined blend/xor for drawing and blitting
- generic: Added StretchBlit with DSBLIT_FLIP_HORIZONTAL/VERTICAL.
- generic: fixes for big-endian handling for NV12/NV16/NV21
- generic: fixes for Bop_rgb32_toK_Aop_64 and Bop_PFI_OP_Aop_PFI(StoK)
- gfxcard: don't call gfxcard functions in no-hardware mode
- convert: In dfb_pixel_from_color() for RGB32/24 apply 0xffffff mask to fix color keying
- added gfx driver module unregister to reclaim space of unneeded libraries.
- sh772x: support for the new MS7724
- pxa3xx: rewrite of the kernel - userspace interface
- X11: support 3 layers
build system
- now supports compilation with debian packages
- build fix for systems without dynamic library support
- support recent tslib versions
- configure: support uclinux by treating it similar to linux
test suite
- dfbtest_sync: Added StretchBlit() to random operations.
- dfbscreen: Added resolution and frequency switch.
- dfbtest_mirror: Added test that uses scale/mirror with destination color keing.
- dfbtest_window: Added WarpCursor test.
general fixes
- plugged several static memory leaks
- unused header file clean-up
- bump SDL system driver to 1.4.x
- font: fix an UTF-8 problem in GetStringBreak
- debug: prevent deadlock in stack trace with SaWMan active
- input: fix for event completion when missing key ID
- PNG: Don't use fast path if pixels have to be premultiplied.
1.4.2
-----
Time for DirectFB 1.4.2. This release has three main changes.
The three main changes for this release are a changed font API for colours/outline,
the addition of an application_id to a window, and the new PXA3xxx graphics driver.
The full list of changes is:
API changes
- Add application_id to a window with IDirectFBWindow_Set/GetApplicationID.
This is a free-to-use parameter that, on change, results in a WM callback.
- allow the window config value "color" to colorize the window
- Fonts/Colors: API support for colors and multiple layers in a glyph implementing outlines.
Added DFBColorID and DCID_PRIMARY, DCID_OUTLINE
Added IDirectFBSurface::SetColors() that takes an array of IDs and an array of DFBColor
Added DFFA_OUTLINED for loading a font with support for outlines
Added DFDESC_OUTLINE_WIDTH and DFDESC_OUTLINE_OPACITY
Added outline_width and outline_opacity to DFBFontDescription
Added DSTF_OUTLINE that activates the outline per DrawString()
core
- Simplified font rendering in core using the current state instead of its own
drivers
- fbdev: fixed RGB fields sizes in dfb_fbdev_set_gamma_ramp
- pxa3xx: new driver for the 2D graphics accelerator found on PXA3xx processors.
hardware acceleration supported for line drawing, blending/blitting,
rectangle and triangle filling operations and anti-aliased text.
gfx
- Bugs in pixel format convertion fixed (primarily 16 bit formats)
- converting to RGB32 sets alpha to ff
- buffer unlocking fixes in error paths
- add support for the DESTINATION Porter/Duff rule
1.4.1
-----
......
......@@ -47,6 +47,9 @@
/* Define to 1 if you have the <dlfcn.h> header file. */
#undef HAVE_DLFCN_H
/* Define to 1 if you have the `fork' function. */
#undef HAVE_FORK
/* Define to 1 if inb, outb and iopl are available. */
#undef HAVE_INB_OUTB_IOPL
......
This diff is collapsed.
......@@ -16,9 +16,9 @@ AC_PREREQ(2.52)
#
DIRECTFB_MAJOR_VERSION=1
DIRECTFB_MINOR_VERSION=4
DIRECTFB_MICRO_VERSION=1
DIRECTFB_MICRO_VERSION=3
DIRECTFB_INTERFACE_AGE=0
DIRECTFB_BINARY_AGE=1
DIRECTFB_BINARY_AGE=3
DIRECTFB_VERSION=$DIRECTFB_MAJOR_VERSION.$DIRECTFB_MINOR_VERSION.$DIRECTFB_MICRO_VERSION
AC_SUBST(DIRECTFB_MAJOR_VERSION)
......@@ -94,6 +94,7 @@ AC_C_BIGENDIAN
AC_CHECK_SIZEOF(int)
AC_CHECK_SIZEOF(long)
AC_CHECK_SIZEOF(long long)
AC_CHECK_FUNCS(fork)
## Work around libstuhl during cross build...
......@@ -225,7 +226,7 @@ want_ppcasm=yes
want_armasm=yes
case "$target_or_host" in
*-linux*)
*-*linux*)
have_linux=yes
;;
......@@ -885,6 +886,7 @@ neomagic=no
nsc=no
nvidia=no
omap=no
pxa3xx=no
radeon=no
savage=no
sh772x=no
......@@ -902,7 +904,7 @@ AC_ARG_WITH(gfxdrivers,
[ 'all' builds all drivers (default), 'none' builds none ]
[ Possible gfxdrivers are: ]
[ ati128, cle266, cyber5k, davinci, ep9x, gl, i810, i830, mach64,]
[ matrox, neomagic, nsc, nvidia, omap, radeon, savage, sh772x,]
[ matrox, neomagic, nsc, nvidia, omap, pxa3xx, radeon, savage, sh772x,]
[ sis315, tdfx, unichrome, vmware], gfxdrivers="$withval",[gfxdrivers="all"])
if test "$gfxdrivers" = "all"; then
......@@ -920,6 +922,7 @@ if test "$gfxdrivers" = "all"; then
checkfor_nsc=yes
checkfor_nvidia=yes
checkfor_omap="$have_arm"
checkfor_pxa3xx=yes
checkfor_radeon=yes
checkfor_savage=yes
checkfor_sh772x=yes
......@@ -977,6 +980,9 @@ else
omap)
checkfor_omap=yes
;;
pxa3xx)
checkfor_pxa3xx=yes
;;
radeon)
checkfor_radeon=yes
;;
......@@ -1068,6 +1074,10 @@ if test "$checkfor_omap" = "yes"; then
omap=yes
fi
if test "$checkfor_pxa3xx" = "yes"; then
pxa3xx=yes
fi
if test "$checkfor_radeon" = "yes"; then
radeon=yes
fi
......@@ -1334,8 +1344,11 @@ fi
enable_tslib=no
if test "$checkfor_tslib" = "yes"; then
PKG_CHECK_MODULES([TSLIB], [tslib-0.0], enable_tslib=yes, enable_tslib=no
AC_MSG_WARN([*** no tslib -- tslib driver will not be built.]))
PKG_CHECK_MODULES([TSLIB], [tslib-1.0 >= 1.0.0], [enable_tslib=yes], [enable_tslib=no])
if test "$enable_tslib" = "no"; then
PKG_CHECK_MODULES([TSLIB], [tslib-0.0], [enable_tslib=yes], [enable_tslib=no
AC_MSG_WARN([*** no tslib -- tslib driver will not be built.])])
fi
fi
enable_ucb1x00_ts=no
......@@ -1461,6 +1474,7 @@ AM_CONDITIONAL(GFX_NEOMAGIC, test "$neomagic" = "yes")
AM_CONDITIONAL(GFX_NSC, test "$nsc" = "yes")
AM_CONDITIONAL(GFX_NVIDIA, test "$nvidia" = "yes")
AM_CONDITIONAL(GFX_OMAP, test "$omap" = "yes")
AM_CONDITIONAL(GFX_PXA3XX, test "$pxa3xx" = "yes")
AM_CONDITIONAL(GFX_RADEON, test "$radeon" = "yes")
AM_CONDITIONAL(GFX_SAVAGE, test "$savage" = "yes")
AM_CONDITIONAL(GFX_SH772X, test "$sh772x" = "yes")
......@@ -1628,6 +1642,7 @@ gfxdrivers/nsc/Makefile
gfxdrivers/nsc/include/Makefile
gfxdrivers/nvidia/Makefile
gfxdrivers/omap/Makefile
gfxdrivers/pxa3xx/Makefile
gfxdrivers/radeon/Makefile
gfxdrivers/savage/Makefile
gfxdrivers/sh772x/Makefile
......@@ -1754,6 +1769,7 @@ Building Graphics Drivers:
NeoMagic $neomagic
NSC Geode $nsc
nVidia $nvidia
PXA 3xx $pxa3xx
Renesas SH7722/SH7723 $sh772x
S3 Savage $savage
SiS 315 $sis315
......
%define name directfb
%define version 1.4.1
%define version 1.4.3
%define oname DirectFB
%define libname lib%name
......
......@@ -78,6 +78,12 @@ else
OMAP_DIR =
endif
if GFX_PXA3XX
PXA3XX_DIR = pxa3xx
else
PXA3XX_DIR =
endif
if GFX_RADEON
RADEON_DIR = radeon
else
......@@ -142,6 +148,7 @@ SUBDIRS = \
$(NSC_DIR) \
$(NVIDIA_DIR) \
$(OMAP_DIR) \
$(PXA3XX_DIR) \
$(RADEON_DIR) \
$(SAVAGE_DIR) \
$(SH772X_DIR) \
......
......@@ -56,8 +56,8 @@ RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = ati128 cle266 cyber5k davinci ep9x gl i810 i830 mach64 \
matrox neomagic nsc nvidia omap radeon savage sh772x sis315 \
tdfx unichrome vmware
matrox neomagic nsc nvidia omap pxa3xx radeon savage sh772x \
sis315 tdfx unichrome vmware
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
......@@ -267,6 +267,8 @@ top_srcdir = @top_srcdir@
@GFX_NVIDIA_TRUE@NVIDIA_DIR = nvidia
@GFX_OMAP_FALSE@OMAP_DIR =
@GFX_OMAP_TRUE@OMAP_DIR = omap
@GFX_PXA3XX_FALSE@PXA3XX_DIR =
@GFX_PXA3XX_TRUE@PXA3XX_DIR = pxa3xx
@GFX_RADEON_FALSE@RADEON_DIR =
@GFX_RADEON_TRUE@RADEON_DIR = radeon
@GFX_SAVAGE_FALSE@SAVAGE_DIR =
......@@ -298,6 +300,7 @@ SUBDIRS = \
$(NSC_DIR) \
$(NVIDIA_DIR) \
$(OMAP_DIR) \
$(PXA3XX_DIR) \
$(RADEON_DIR) \
$(SAVAGE_DIR) \
$(SH772X_DIR) \
......
......@@ -32,14 +32,6 @@ davincidir = $(MODULEDIR)/gfxdrivers
includedir = @INCLUDEDIR@
includelinuxdir = @INCLUDEDIR@/linux
include_HEADERS = \
davincifb.h \
davinci_c64x.h \
davinci_gfxdriver.h
includelinux_HEADERS = \
kernel-module/include/linux/c64x.h
libdavinci_c64x_la_SOURCES = \
davinci_c64x.c
......
......@@ -16,7 +16,6 @@
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
......@@ -37,8 +36,7 @@ build_triplet = @build@
host_triplet = @host@
target_triplet = @target@
bin_PROGRAMS = c64xdump$(EXEEXT)
DIST_COMMON = $(include_HEADERS) $(includelinux_HEADERS) \
$(srcdir)/Makefile.am $(srcdir)/Makefile.in \
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
$(top_srcdir)/rules/libobject.make
subdir = gfxdrivers/davinci
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
......@@ -56,8 +54,7 @@ am__vpath_adj = case $$p in \
esac;
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
am__installdirs = "$(DESTDIR)$(davincidir)" "$(DESTDIR)$(libdir)" \
"$(DESTDIR)$(bindir)" "$(DESTDIR)$(davincidir)" \
"$(DESTDIR)$(includedir)" "$(DESTDIR)$(includelinuxdir)"
"$(DESTDIR)$(bindir)" "$(DESTDIR)$(davincidir)"
davinciLTLIBRARIES_INSTALL = $(INSTALL)
libLTLIBRARIES_INSTALL = $(INSTALL)
LTLIBRARIES = $(davinci_LTLIBRARIES) $(lib_LTLIBRARIES)
......@@ -99,9 +96,6 @@ DIST_SOURCES = $(libdavinci_c64x_la_SOURCES) \
$(libdirectfb_davinci_la_SOURCES) $(c64xdump_SOURCES)
davinciDATA_INSTALL = $(INSTALL_DATA)
DATA = $(davinci_DATA)
includeHEADERS_INSTALL = $(INSTALL_HEADER)
includelinuxHEADERS_INSTALL = $(INSTALL_HEADER)
HEADERS = $(include_HEADERS) $(includelinux_HEADERS)
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
......@@ -310,14 +304,6 @@ davinci_LTLIBRARIES = libdirectfb_davinci.la
@BUILD_STATIC_TRUE@davinci_DATA = $(davinci_LTLIBRARIES:.la=.o)
davincidir = $(MODULEDIR)/gfxdrivers
includelinuxdir = @INCLUDEDIR@/linux
include_HEADERS = \
davincifb.h \
davinci_c64x.h \
davinci_gfxdriver.h
includelinux_HEADERS = \
kernel-module/include/linux/c64x.h
libdavinci_c64x_la_SOURCES = \
davinci_c64x.c
......@@ -533,40 +519,6 @@ uninstall-davinciDATA:
echo " rm -f '$(DESTDIR)$(davincidir)/$$f'"; \
rm -f "$(DESTDIR)$(davincidir)/$$f"; \
done
install-includeHEADERS: $(include_HEADERS)
@$(NORMAL_INSTALL)
test -z "$(includedir)" || $(MKDIR_P) "$(DESTDIR)$(includedir)"
@list='$(include_HEADERS)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
f=$(am__strip_dir) \
echo " $(includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(includedir)/$$f'"; \
$(includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(includedir)/$$f"; \
done
uninstall-includeHEADERS:
@$(NORMAL_UNINSTALL)
@list='$(include_HEADERS)'; for p in $$list; do \
f=$(am__strip_dir) \
echo " rm -f '$(DESTDIR)$(includedir)/$$f'"; \
rm -f "$(DESTDIR)$(includedir)/$$f"; \
done
install-includelinuxHEADERS: $(includelinux_HEADERS)
@$(NORMAL_INSTALL)
test -z "$(includelinuxdir)" || $(MKDIR_P) "$(DESTDIR)$(includelinuxdir)"
@list='$(includelinux_HEADERS)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
f=$(am__strip_dir) \
echo " $(includelinuxHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(includelinuxdir)/$$f'"; \
$(includelinuxHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(includelinuxdir)/$$f"; \
done
uninstall-includelinuxHEADERS:
@$(NORMAL_UNINSTALL)
@list='$(includelinux_HEADERS)'; for p in $$list; do \
f=$(am__strip_dir) \
echo " rm -f '$(DESTDIR)$(includelinuxdir)/$$f'"; \
rm -f "$(DESTDIR)$(includelinuxdir)/$$f"; \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
......@@ -643,11 +595,11 @@ distdir: $(DISTFILES)
done
check-am: all-am
check: check-am
all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(DATA) $(HEADERS)
all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(DATA)
install-binPROGRAMS: install-libLTLIBRARIES
installdirs:
for dir in "$(DESTDIR)$(davincidir)" "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(davincidir)" "$(DESTDIR)$(includedir)" "$(DESTDIR)$(includelinuxdir)"; do \
for dir in "$(DESTDIR)$(davincidir)" "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(davincidir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: install-am
......@@ -695,8 +647,7 @@ info: info-am
info-am:
install-data-am: install-davinciDATA install-davinciLTLIBRARIES \
install-includeHEADERS install-includelinuxHEADERS
install-data-am: install-davinciDATA install-davinciLTLIBRARIES
install-dvi: install-dvi-am
......@@ -733,8 +684,7 @@ ps: ps-am
ps-am:
uninstall-am: uninstall-binPROGRAMS uninstall-davinciDATA \
uninstall-davinciLTLIBRARIES uninstall-includeHEADERS \
uninstall-includelinuxHEADERS uninstall-libLTLIBRARIES
uninstall-davinciLTLIBRARIES uninstall-libLTLIBRARIES
.MAKE: install-am install-strip
......@@ -746,8 +696,7 @@ uninstall-am: uninstall-binPROGRAMS uninstall-davinciDATA \
install-binPROGRAMS install-data install-data-am \
install-davinciDATA install-davinciLTLIBRARIES install-dvi \
install-dvi-am install-exec install-exec-am install-html \
install-html-am install-includeHEADERS \
install-includelinuxHEADERS install-info install-info-am \
install-html-am install-info install-info-am \
install-libLTLIBRARIES install-man install-pdf install-pdf-am \
install-ps install-ps-am install-strip installcheck \
installcheck-am installdirs maintainer-clean \
......@@ -755,7 +704,6 @@ uninstall-am: uninstall-binPROGRAMS uninstall-davinciDATA \
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
tags uninstall uninstall-am uninstall-binPROGRAMS \
uninstall-davinciDATA uninstall-davinciLTLIBRARIES \
uninstall-includeHEADERS uninstall-includelinuxHEADERS \
uninstall-libLTLIBRARIES
%.o: .libs/%.a %.la
......
This diff is collapsed.
/*
TI Davinci driver - Graphics Driver
(c) Copyright 2007 Telio AG
Written by Denis Oliver Kropp <dok@directfb.org>
Code is derived from VMWare driver.
(c) Copyright 2001-2009 The world wide DirectFB Open Source Community (directfb.org)
(c) Copyright 2000-2004 Convergence (integrated media) GmbH
All rights reserved.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/
#ifndef __DAVINCI_GFXDRIVER_H__
#define __DAVINCI_GFXDRIVER_H__
#include <sys/ioctl.h>
#include <davincifb.h>
#include <core/surface_buffer.h>
#include "davincifb.h"
#include "davinci_c64x.h"
typedef struct {
/* validation flags */
int v_flags;
/* cached/computed values */
void *dst_addr;
unsigned long dst_phys;
unsigned int dst_size;
unsigned long dst_pitch;
DFBSurfacePixelFormat dst_format;
unsigned long dst_bpp;
void *src_addr;
unsigned long src_phys;
unsigned long src_pitch;
DFBSurfacePixelFormat src_format;
unsigned long src_bpp;
unsigned long source_mult;
unsigned long fillcolor;
int blit_blend_sub_function;
int draw_blend_sub_function;
DFBColor color;
unsigned long color_argb;
unsigned long colorkey;
DFBSurfaceBlittingFlags blitting_flags;
DFBRegion clip;
/** Add shared data here... **/
struct fb_fix_screeninfo fix[4];
CoreSurfacePool *osd_pool;
CoreSurfacePool *video_pool;
bool synced;
} DavinciDeviceData;
typedef struct {
int num;
int fd;
void *mem;
int size;
} DavinciFB;
typedef struct {
DavinciDeviceData *ddev;
CoreDFB *core;
CoreScreen *screen;
CoreLayer *osd;
CoreLayer *video;
DavinciFB fb[4];
DavinciC64x c64x;
bool c64x_present;
DavinciC64xTasks tasks;
} DavinciDriverData;
static inline DFBResult
davincifb_pan_display( const DavinciFB *fb,
struct fb_var_screeninfo *var,
const CoreSurfaceBufferLock *lock,
DFBSurfaceFlipFlags flags,
int x,
int y )
{
int ret;
if (lock) {
#ifdef FBIO_SET_START
CoreSurfaceBuffer *buffer = lock->buffer;
struct fb_set_start set_start;
/* physical mode */
set_start.offset = -1;
set_start.sync = (flags & DSFLIP_ONSYNC) ? 1 : 0;
/* life's so easy */
set_start.physical = lock->phys + DFB_BYTES_PER_LINE( buffer->format, x ) + y * lock->pitch;
ret = ioctl( fb->fd, FBIO_SET_START, &set_start );
if (ret < 0)
D_DEBUG( "FBIO_SET_START (0x%08lx, sync %llu) failed!\n",
set_start.physical, set_start.sync );
if (ret == 0) {
if (flags & DSFLIP_WAIT)
ioctl( fb->fd, FBIO_WAITFORVSYNC );
return DFB_OK;
}
/* fallback */
#endif
var->xoffset = x; /* poor version */
var->yoffset = y + lock->offset / lock->pitch;
}
else {
var->xoffset = x;
var->yoffset = y;
}
var->activate = /*(flags & DSFLIP_ONSYNC) ? FB_ACTIVATE_VBL :*/ FB_ACTIVATE_NOW;
ret = ioctl( fb->fd, FBIOPAN_DISPLAY, var );
if (ret)
D_PERROR( "Davinci/FB: FBIOPAN_DISPLAY (fb%d - %d,%d) failed!\n",
fb->num, var->xoffset, var->yoffset );
if (flags & DSFLIP_WAIT)
ioctl( fb->fd, FBIO_WAITFORVSYNC );
return DFB_OK;
}
#endif
This diff is collapsed.
......@@ -1539,17 +1539,17 @@ driver_init_driver( CoreGraphicsDevice *device,
NVidiaDriverData *nvdrv = (NVidiaDriverData*) driver_data;
NVidiaDeviceData *nvdev = (NVidiaDeviceData*) device_data;
u32 arch = 0;
nvdrv->device = device;
nvdrv->device_data = device_data;
nvdrv->fb_base = (volatile void*) dfb_gfxcard_memory_virtual( device, 0 );
nvdrv->agp_base = (volatile void*) dfb_gfxcard_auxmemory_virtual( device, 0 );
nvdrv->mmio_base = (volatile void*) dfb_gfxcard_map_mmio( device, 0, -1 );
if (!nvdrv->mmio_base)
return DFB_IO;
nvdrv->fb_base = (volatile void*) dfb_gfxcard_memory_virtual( device, 0 );
nvdrv->agp_base = (volatile void*) dfb_gfxcard_auxmemory_virtual( device, 0 );
if (nvdev->use_dma) {
nvdrv->dma_base = nvdev->use_agp ? nvdrv->agp_base : nvdrv->fb_base;
nvdrv->dma_base += nvdev->dma_offset;
......
## Makefile.am for DirectFB/gfxdrivers/pxa3xx
INCLUDES = \
-I$(top_builddir)/include \
-I$(top_srcdir)/include \
-I$(top_builddir)/lib \
-I$(top_srcdir)/lib \
-I$(top_srcdir)/src \
-I$(top_srcdir)/systems
bin_PROGRAMS = pxa3xx_dump
pxa3xx_dump_SOURCES = pxa3xx_dump.c
pxa3xx_dump_LDADD = $(top_builddir)/lib/direct/libdirect.la
pxa3xx_LTLIBRARIES = libdirectfb_pxa3xx.la
if BUILD_STATIC
pxa3xx_DATA = $(pxa3xx_LTLIBRARIES:.la=.o)
endif
pxa3xxdir = $(MODULEDIR)/gfxdrivers
libdirectfb_pxa3xx_la_SOURCES = \
pxa3xx.c \
pxa3xx.h \
pxa3xx_blt.c \
pxa3xx_blt.h \
pxa3xx_regs.h \
pxa3xx_types.h \
pxa3xx-gcu.h
libdirectfb_pxa3xx_la_LDFLAGS = \
-module \
-avoid-version \
$(DFB_LDFLAGS)
libdirectfb_pxa3xx_la_LIBADD = \
$(top_builddir)/src/libdirectfb.la
include $(top_srcdir)/rules/libobject.make
This diff is collapsed.
/*
PXA3xx Graphics Controller
(c) Copyright 2009 The world wide DirectFB Open Source Community (directfb.org)
(c) Copyright 2009 Raumfeld GmbH (raumfeld.com)
All rights reserved.
Written by Denis Oliver Kropp <dok@directfb.org>,
Sven Neumann <s.neumann@raumfeld.com>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of