build nouveau and radeon dri libs

This commit is contained in:
Stephan Raue 2009-04-25 02:27:41 +02:00
parent 1c3b650179
commit c52480a6b7
6 changed files with 1874 additions and 2 deletions

View File

@ -18,10 +18,13 @@ cd $BUILD/$1*
--enable-shared \
--enable-udev \
--enable-largefile \
--enable-nouveau-experimental-api
$MAKE
$STRIP libdrm/.libs/libdrm.so*
$STRIP libdrm/intel/.libs/libdrm_intel.so*
$STRIP libdrm/intel/.libs/*.so*
$STRIP libdrm/nouveau/.libs/*.so*
$STRIP libdrm/radeon/.libs/*.so*
$MAKEINSTALL

View File

@ -4,4 +4,12 @@
mkdir -p $INSTALL/usr/lib
cp -PR $BUILD/$1*/libdrm/.libs/libdrm.so* $INSTALL/usr/lib
cp -PR $BUILD/$1*/libdrm/intel/.libs/libdrm_intel.so* $INSTALL/usr/lib
cp -PR $BUILD/$1*/libdrm/intel/.libs/libdrm_intel*.so* $INSTALL/usr/lib
rm -rf $INSTALL/usr/lib/libdrm_intel*.so*T
cp -PR $BUILD/$1*/libdrm/nouveau/.libs/libdrm_nouveau*.so* $INSTALL/usr/lib
rm -rf $INSTALL/usr/lib/libdrm_nouveau*.so*T
cp -PR $BUILD/$1*/libdrm/radeon/.libs/libdrm_radeon*.so* $INSTALL/usr/lib
rm -rf $INSTALL/usr/lib/libdrm_radeon*.so*T

View File

@ -0,0 +1,54 @@
diff -up libdrm-20080814/libdrm/xf86drm.c.no-bc libdrm-20080814/libdrm/xf86drm.c
--- libdrm-20080814/libdrm/xf86drm.c.no-bc 2008-08-14 15:43:09.000000000 +1000
+++ libdrm-20080814/libdrm/xf86drm.c 2008-08-14 15:45:09.000000000 +1000
@@ -396,11 +396,6 @@ int drmAvailable(void)
int fd;
if ((fd = drmOpenMinor(0, 1, DRM_NODE_RENDER)) < 0) {
-#ifdef __linux__
- /* Try proc for backward Linux compatibility */
- if (!access("/proc/dri/0", R_OK))
- return 1;
-#endif
return 0;
}
@@ -519,38 +514,6 @@ static int drmOpenByName(const char *nam
}
}
-#ifdef __linux__
- /* Backward-compatibility /proc support */
- for (i = 0; i < 8; i++) {
- char proc_name[64], buf[512];
- char *driver, *pt, *devstring;
- int retcode;
-
- sprintf(proc_name, "/proc/dri/%d/name", i);
- if ((fd = open(proc_name, 0, 0)) >= 0) {
- retcode = read(fd, buf, sizeof(buf)-1);
- close(fd);
- if (retcode) {
- buf[retcode-1] = '\0';
- for (driver = pt = buf; *pt && *pt != ' '; ++pt)
- ;
- if (*pt) { /* Device is next */
- *pt = '\0';
- if (!strcmp(driver, name)) { /* Match */
- for (devstring = ++pt; *pt && *pt != ' '; ++pt)
- ;
- if (*pt) { /* Found busid */
- return drmOpenByBusid(++pt);
- } else { /* No busid */
- return drmOpenDevice(strtol(devstring, NULL, 0),i, DRM_NODE_RENDER);
- }
- }
- }
- }
- }
- }
-#endif
-
return -1;
}

View File

@ -0,0 +1,12 @@
diff -up libdrm-20080303/libdrm/xf86drm.h.da libdrm-20080303/libdrm/xf86drm.h
--- libdrm-20080303/libdrm/xf86drm.h.da 2008-03-19 15:26:31.000000000 +1000
+++ libdrm-20080303/libdrm/xf86drm.h 2008-03-19 15:26:46.000000000 +1000
@@ -45,7 +45,7 @@
/* Default /dev/dri directory permissions 0755 */
#define DRM_DEV_DIRMODE \
(S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH)
-#define DRM_DEV_MODE (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP)
+#define DRM_DEV_MODE (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH)
#define DRM_DIR_NAME "/dev/dri"
#define DRM_DEV_NAME "%s/card%d"

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,26 @@
diff --git a/libdrm/nouveau/nouveau_bo.c b/libdrm/nouveau/nouveau_bo.c
index 023c6be..66466e3 100644
--- a/libdrm/nouveau/nouveau_bo.c
+++ b/libdrm/nouveau/nouveau_bo.c
@@ -404,7 +404,8 @@ nouveau_bo_handle_ref(struct nouveau_device *dev, uint32_t handle,
nvbo->size = req.size;
nvbo->handle = req.handle;
}
-
+
+ nvbo->base.handle = nvbo->handle;
return 0;
}
diff --git a/libdrm/nouveau/nouveau_dma.c b/libdrm/nouveau/nouveau_dma.c
index 23da64b..b084f70 100644
--- a/libdrm/nouveau/nouveau_dma.c
+++ b/libdrm/nouveau/nouveau_dma.c
@@ -41,6 +41,7 @@ WRITE_PUT(struct nouveau_channel_priv *nvchan, uint32_t val)
volatile int dum;
NOUVEAU_DMA_BARRIER;
+ dum = nvchan->pushbuf[0];
dum = READ_GET(nvchan);
*nvchan->put = put;