mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-04-19 12:07:18 +00:00
build nouveau and radeon dri libs
This commit is contained in:
parent
1c3b650179
commit
c52480a6b7
@ -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
|
||||
|
@ -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
|
||||
|
54
packages/graphics/libdrm/patches/libdrm-2.4.0-no-bc.diff
Normal file
54
packages/graphics/libdrm/patches/libdrm-2.4.0-no-bc.diff
Normal 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;
|
||||
}
|
||||
|
@ -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"
|
1769
packages/graphics/libdrm/patches/libdrm-radeon.diff
Normal file
1769
packages/graphics/libdrm/patches/libdrm-radeon.diff
Normal file
File diff suppressed because it is too large
Load Diff
26
packages/graphics/libdrm/patches/nouveau-updates.diff
Normal file
26
packages/graphics/libdrm/patches/nouveau-updates.diff
Normal 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;
|
Loading…
x
Reference in New Issue
Block a user