aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJon Smirl <[email protected]>2005-08-05 03:33:59 +0000
committerJon Smirl <[email protected]>2005-08-05 03:33:59 +0000
commit485528f2acb69940a7c757638127f716c0cb2654 (patch)
tree4adf1397cd482f50a4bcc92776ef36b53599ff72 /src
parentb507bd41607a8025866d125d99c5abbca1931cd7 (diff)
More EGL prep. No impact on anything outside of EGL
Diffstat (limited to 'src')
-rw-r--r--src/egl/drivers/demo/demo.c9
-rw-r--r--src/egl/main/egldriver.c52
-rw-r--r--src/egl/main/egldriver.h5
-rw-r--r--src/mesa/drivers/dri/Makefile.template3
-rw-r--r--src/mesa/drivers/dri/fb/fb_egl.c9
-rw-r--r--src/mesa/drivers/dri/radeon/server/radeon.h15
-rw-r--r--src/mesa/drivers/dri/radeon/server/radeon_dri.c2
7 files changed, 45 insertions, 50 deletions
diff --git a/src/egl/drivers/demo/demo.c b/src/egl/drivers/demo/demo.c
index 9b751959590..4c08ac569f4 100644
--- a/src/egl/drivers/demo/demo.c
+++ b/src/egl/drivers/demo/demo.c
@@ -286,19 +286,12 @@ demoMakeCurrent(_EGLDriver *drv, EGLDisplay dpy, EGLSurface draw, EGLSurface rea
}
-/*
- * Just to silence warning
- */
-extern _EGLDriver *
-_eglMain(NativeDisplayType dpy);
-
-
/**
* The bootstrap function. Return a new DemoDriver object and
* plug in API functions.
*/
_EGLDriver *
-_eglMain(NativeDisplayType dpy)
+_eglMain(_EGLDisplay *dpy)
{
DemoDriver *demo;
diff --git a/src/egl/main/egldriver.c b/src/egl/main/egldriver.c
index 1aeefbbe48f..6e8c9b3b4c8 100644
--- a/src/egl/main/egldriver.c
+++ b/src/egl/main/egldriver.c
@@ -45,7 +45,7 @@ _eglChooseDriver(EGLDisplay display)
else if (name[0] == ':' && (name[1] >= '0' && name[1] <= '9') && !name[2]) {
printf("EGL: Use driver for screen: %s\n", name);
/* XXX probe hardware here to determine which driver to open */
- /* driverName = "something"; */
+ driverName = "libEGLdri";
}
else if (name[0] == '!') {
/* use specified driver name */
@@ -71,44 +71,40 @@ _eglChooseDriver(EGLDisplay display)
_EGLDriver *
_eglOpenDriver(_EGLDisplay *dpy, const char *driverName)
{
+ _EGLDriver *drv;
+ _EGLMain_t mainFunc;
void *lib;
char driverFilename[1000];
/* XXX also prepend a directory path??? */
sprintf(driverFilename, "%s.so", driverName);
-#if 1
lib = dlopen(driverFilename, RTLD_NOW);
- if (lib) {
- _EGLDriver *drv;
- _EGLMain_t mainFunc;
-
- mainFunc = (_EGLMain_t) dlsym(lib, "_eglMain");
- if (!mainFunc) {
- fprintf(stderr, "_eglMain not found in %s", (char *) driverFilename);
- dlclose(lib);
- return NULL;
- }
-
- drv = mainFunc(dpy);
- if (!drv) {
- dlclose(lib);
- return NULL;
- }
+ if (!lib) {
+ fprintf(stderr, "EGLdebug: Error opening %s: %s\n", driverFilename, dlerror());
+ return NULL;
+ }
- drv->LibHandle = lib;
- drv->Display = dpy;
- return drv;
+ mainFunc = (_EGLMain_t) dlsym(lib, "_eglMain");
+ if (!mainFunc) {
+ fprintf(stderr, "_eglMain not found in %s", (char *) driverFilename);
+ dlclose(lib);
+ return NULL;
}
- else {
- fprintf(stderr, "EGLdebug: Error opening %s: %s\n",
- driverFilename, dlerror());
+
+ drv = mainFunc(dpy);
+ if (!drv) {
+ dlclose(lib);
return NULL;
}
-#else
- /* use built-in driver */
- return _eglDefaultMain(d);
-#endif
+ /* with a recurvise open you want the inner most handle */
+ if (!drv->LibHandle)
+ drv->LibHandle = lib;
+ else
+ dlclose(lib);
+
+ drv->Display = dpy;
+ return drv;
}
diff --git a/src/egl/main/egldriver.h b/src/egl/main/egldriver.h
index ecf630cb7d1..7ab62f18272 100644
--- a/src/egl/main/egldriver.h
+++ b/src/egl/main/egldriver.h
@@ -125,10 +125,7 @@ struct _egl_driver
};
-
-
-extern _EGLDriver *
-_eglDefaultMain(NativeDisplayType d);
+extern _EGLDriver *_eglMain(_EGLDisplay *dpy);
extern _EGLDriver *
diff --git a/src/mesa/drivers/dri/Makefile.template b/src/mesa/drivers/dri/Makefile.template
index 0880e73caf9..7c21137ab69 100644
--- a/src/mesa/drivers/dri/Makefile.template
+++ b/src/mesa/drivers/dri/Makefile.template
@@ -53,7 +53,8 @@ SHARED_INCLUDES = \
-I$(TOP)/src/mesa/shader \
-I$(TOP)/src/mesa/swrast \
-I$(TOP)/src/mesa/swrast_setup \
- -I$(TOP)/src/egl/main
+ -I$(TOP)/src/egl/main \
+ -I$(TOP)/src/egl/drivers/dri
##### RULES #####
diff --git a/src/mesa/drivers/dri/fb/fb_egl.c b/src/mesa/drivers/dri/fb/fb_egl.c
index a04ac129fcd..2cea48808fb 100644
--- a/src/mesa/drivers/dri/fb/fb_egl.c
+++ b/src/mesa/drivers/dri/fb/fb_egl.c
@@ -842,19 +842,12 @@ fbSwapBuffers(_EGLDriver *drv, EGLDisplay dpy, EGLSurface draw)
}
-/*
- * Just to silence warning
- */
-extern _EGLDriver *
-_eglMain(NativeDisplayType dpy);
-
-
/**
* The bootstrap function. Return a new fbDriver object and
* plug in API functions.
*/
_EGLDriver *
-_eglMain(NativeDisplayType dpy)
+_eglMain(_EGLDisplay *dpy)
{
fbDriver *fb;
diff --git a/src/mesa/drivers/dri/radeon/server/radeon.h b/src/mesa/drivers/dri/radeon/server/radeon.h
index b83f87cb231..21db825c969 100644
--- a/src/mesa/drivers/dri/radeon/server/radeon.h
+++ b/src/mesa/drivers/dri/radeon/server/radeon.h
@@ -38,6 +38,21 @@
#include "xf86drm.h" /* drm_handle_t, etc */
+# define RADEON_AGP_1X_MODE 0x01
+# define RADEON_AGP_2X_MODE 0x02
+# define RADEON_AGP_4X_MODE 0x04
+# define RADEON_AGP_FW_MODE 0x10
+# define RADEON_AGP_MODE_MASK 0x17
+#define RADEON_CP_CSQ_CNTL 0x0740
+# define RADEON_CSQ_CNT_PRIMARY_MASK (0xff << 0)
+# define RADEON_CSQ_PRIDIS_INDDIS (0 << 28)
+# define RADEON_CSQ_PRIPIO_INDDIS (1 << 28)
+# define RADEON_CSQ_PRIBM_INDDIS (2 << 28)
+# define RADEON_CSQ_PRIPIO_INDBM (3 << 28)
+# define RADEON_CSQ_PRIBM_INDBM (4 << 28)
+# define RADEON_CSQ_PRIPIO_INDPIO (15 << 28)
+
+
#define PCI_CHIP_R200_BB 0x4242
#define PCI_CHIP_RV250_Id 0x4964
#define PCI_CHIP_RV250_Ie 0x4965
diff --git a/src/mesa/drivers/dri/radeon/server/radeon_dri.c b/src/mesa/drivers/dri/radeon/server/radeon_dri.c
index 0373036973e..b07a7797065 100644
--- a/src/mesa/drivers/dri/radeon/server/radeon_dri.c
+++ b/src/mesa/drivers/dri/radeon/server/radeon_dri.c
@@ -455,7 +455,7 @@ static int RADEONDRIPciInit(const DRIDriverContext *ctx, RADEONInfoPtr info)
return 0;
}
fprintf(stderr,
- "[pci] %d kB allocated with handle 0x%08x\n",
+ "[pci] %d kB allocated with handle 0x%08lx\n",
info->gartSize*1024, info->gartMemHandle);
info->gartOffset = 0;