diff options
| author | Richard Purdie <rpurdie@linux.intel.com> | 2008-12-30 17:15:49 +0000 |
|---|---|---|
| committer | Richard Purdie <rpurdie@linux.intel.com> | 2008-12-30 17:15:49 +0000 |
| commit | c8a24cd00235a4ccb501e2cdea606730e166c572 (patch) | |
| tree | 02d76961863352ce43bbee08c6779ed825f4e8fd /meta-moblin/packages | |
| parent | 459a7f4a342bd9c74e2bc812cd1e6601a8095264 (diff) | |
| download | openembedded-core-c8a24cd00235a4ccb501e2cdea606730e166c572.tar.gz openembedded-core-c8a24cd00235a4ccb501e2cdea606730e166c572.tar.bz2 openembedded-core-c8a24cd00235a4ccb501e2cdea606730e166c572.zip | |
meta-moblin: Add initial menlow support
Diffstat (limited to 'meta-moblin/packages')
20 files changed, 69346 insertions, 2 deletions
diff --git a/meta-moblin/packages/drm/files/menlow-config b/meta-moblin/packages/drm/files/menlow-config new file mode 100644 index 0000000000..3a699b587b --- /dev/null +++ b/meta-moblin/packages/drm/files/menlow-config @@ -0,0 +1,84 @@ +# Ubuntu config + + +CONFIG_BLK_DEV_GNBD=m + +# Requires some headers from drivers/md +#CONFIG_BLK_DEV_DM_BBR=m + +CONFIG_SND_BTSCO=m + +CONFIG_INPUT_ACERHK=m +CONFIG_AVERATEC_5100P=m +CONFIG_PACKARDBELL_E5=m +CONFIG_LMPCM_USB=m +CONFIG_NOZOMI=m + +CONFIG_NDISWRAPPER=m + CONFIG_NDISWRAPPER_WQ=y + +#CONFIG_MOL=m + +CONFIG_ASFS_FS=m + +# Uses unexported functions from gfs2 +CONFIG_GFS_FS=m + +CONFIG_SQUASHFS=m +# CONFIG_UNION_FS is not set + +CONFIG_USB_APPLEIR=m + +CONFIG_GSPCA=m + +CONFIG_USB_OV511_NEW=m +CONFIG_QUICKCAM=m +CONFIG_USB_UVCCAM=m + +CONFIG_NET_ACX=m +CONFIG_IPW3945=m +CONFIG_IWLWIFI=m +CONFIG_USB_ATMEL=m +CONFIG_PRISM2_USB=m + + +CONFIG_IPW2100_FS_AMILO_M7400=m + + +CONFIG_LIRC_DEV=m +CONFIG_LIRC_ATIUSB=m +CONFIG_LIRC_BT829=m +CONFIG_LIRC_CMDIR=m +#CONFIG_LIRC_GPIO=m +CONFIG_LIRC_I2C=m +CONFIG_LIRC_IGORPLUGUSB=m +CONFIG_LIRC_IMON=m +CONFIG_LIRC_IT87=m +CONFIG_LIRC_MCEUSB=m +CONFIG_LIRC_MCEUSB2=m +#CONFIG_LIRC_PARALLEL=m +CONFIG_LIRC_PVR150=m +CONFIG_LIRC_SASEM=m +CONFIG_LIRC_SERIAL=m +CONFIG_LIRC_SERIAL_IGOR=m +CONFIG_LIRC_SIR=m +CONFIG_LIRC_STREAMZAP=m +CONFIG_LIRC_TTUSBIR=m + + +CONFIG_DRM_PSB=m + + +CONFIG_AMT_HECI=m + + +CONFIG_ET131X=m + + +CONFIG_STK11XX=m + +CONFIG_MMC_SD8686=m +CONFIG_MMC_SD8688=m + +CONFIG_WIMAX_I2400M=m +# CONFIG_DVB_SIANO_SMS1XXX is not set diff --git a/meta-moblin/packages/drm/files/poulsbo_libdrm_update.patch b/meta-moblin/packages/drm/files/poulsbo_libdrm_update.patch new file mode 100644 index 0000000000..5fb84302aa --- /dev/null +++ b/meta-moblin/packages/drm/files/poulsbo_libdrm_update.patch @@ -0,0 +1,63492 @@ +From eea94c0cd2198bd46ae4417b7eb7ab5f45df0c3c Mon Sep 17 00:00:00 2001 +From: Inuka Gunawardana <inuka.gunawardana@intel.com> +Date: Sun, 20 Jan 2008 00:46:32 -0800 +Subject: [PATCH] added changes + +--- + configure.ac | 2 +- + libdrm/Makefile.am | 4 +- + libdrm/xf86drm.c | 1194 ++--- + libdrm/xf86drm.h | 4 +- + libdrm/xf86drmHash.c | 20 +- + libdrm/xf86drmMode.c | 465 ++ + libdrm/xf86drmMode.h | 226 + + libdrm/xf86drmRandom.c | 20 +- + libdrm/xf86drmSL.c | 23 +- + libdrm/xf86mm.h | 120 +- + shared-core/Makefile.am | 7 +- + shared-core/Makefile.in | 5 +- + shared-core/drm.h | 908 ++-- + shared-core/drm_pciids.txt | 744 +++ + shared-core/drm_sarea.h | 30 +- + shared-core/i915_dma.c | 968 ++++ + shared-core/i915_drm.h | 131 +- + shared-core/i915_drv.h | 676 +++ + shared-core/i915_irq.c | 752 +++ + shared-core/i915_mem.c | 386 ++ + shared-core/imagine_drv.h | 43 + + shared-core/mach64_dma.c | 1532 ++++++ + shared-core/mach64_drm.h | 4 +- + shared-core/mach64_drv.h | 1058 ++++ + shared-core/mach64_irq.c | 136 + + shared-core/mach64_state.c | 897 ++++ + shared-core/mga_dma.c | 1164 ++++ + shared-core/mga_drm.h | 22 +- + shared-core/mga_drv.h | 688 +++ + shared-core/mga_irq.c | 150 + + shared-core/mga_state.c | 1143 ++++ + shared-core/mga_ucode.h |11645 ++++++++++++++++++++++++++++++++++++++++ + shared-core/mga_warp.c | 198 + + shared-core/nouveau_drm.h | 164 + + shared-core/nouveau_drv.h | 584 ++ + shared-core/nouveau_fifo.c | 554 ++ + shared-core/nouveau_irq.c | 430 ++ + shared-core/nouveau_mem.c | 608 +++ + shared-core/nouveau_notifier.c | 173 + + shared-core/nouveau_object.c | 1148 ++++ + shared-core/nouveau_reg.h | 550 ++ + shared-core/nouveau_state.c | 566 ++ + shared-core/nv04_fb.c | 24 + + shared-core/nv04_fifo.c | 129 + + shared-core/nv04_graph.c | 474 ++ + shared-core/nv04_mc.c | 23 + + shared-core/nv04_timer.c | 45 + + shared-core/nv10_fb.c | 26 + + shared-core/nv10_fifo.c | 160 + + shared-core/nv10_graph.c | 872 +++ + shared-core/nv20_graph.c | 249 + + shared-core/nv30_graph.c | 2912 ++++++++++ + shared-core/nv40_fb.c | 56 + + shared-core/nv40_fifo.c | 208 + + shared-core/nv40_graph.c | 2055 +++++++ + shared-core/nv40_mc.c | 39 + + shared-core/nv50_fifo.c | 327 ++ + shared-core/nv50_graph.c | 316 ++ + shared-core/nv50_mc.c | 43 + + shared-core/nv_drv.h | 52 + + shared-core/psb_drm.h | 359 ++ + shared-core/psb_drv.h | 786 +++ + shared-core/psb_reg.h | 555 ++ + shared-core/r128_cce.c | 932 ++++ + shared-core/r128_drm.h | 22 +- + shared-core/r128_drv.h | 523 ++ + shared-core/r128_irq.c | 101 + + shared-core/r128_state.c | 1682 ++++++ + shared-core/r300_cmdbuf.c | 954 ++++ + shared-core/r300_reg.h | 1078 +++-- + shared-core/radeon_cp.c | 2316 ++++++++ + shared-core/radeon_drm.h | 29 +- + shared-core/radeon_drv.h | 1269 +++++ + shared-core/radeon_irq.c | 321 ++ + shared-core/radeon_mem.c | 302 ++ + shared-core/radeon_state.c | 3240 +++++++++++ + shared-core/savage_bci.c | 1095 ++++ + shared-core/savage_drm.h | 4 +- + shared-core/savage_drv.h | 575 ++ + shared-core/savage_state.c | 1165 ++++ + shared-core/sis_drv.h | 92 + + shared-core/sis_ds.c | 299 + + shared-core/sis_ds.h | 146 + + shared-core/sis_mm.c | 386 ++ + shared-core/tdfx_drv.h | 47 + + shared-core/via_dma.c | 719 +++ + shared-core/via_drm.h | 40 +- + shared-core/via_drv.c | 161 + + shared-core/via_drv.h | 219 + + shared-core/via_ds.c | 274 + + shared-core/via_ds.h | 104 + + shared-core/via_irq.c | 393 ++ + shared-core/via_map.c | 143 + + shared-core/via_mm.c | 347 ++ + shared-core/via_mm.h | 40 + + shared-core/via_verifier.c | 1121 ++++ + shared-core/via_verifier.h | 64 + + shared-core/via_video.c | 93 + + 98 files changed, 58391 insertions(+), 1757 deletions(-) + create mode 100644 libdrm/xf86drmMode.c + create mode 100644 libdrm/xf86drmMode.h + create mode 100644 shared-core/drm_pciids.txt + create mode 100644 shared-core/i915_dma.c + create mode 100644 shared-core/i915_drv.h + create mode 100644 shared-core/i915_irq.c + create mode 100644 shared-core/i915_mem.c + create mode 100644 shared-core/imagine_drv.h + create mode 100644 shared-core/mach64_dma.c + create mode 100644 shared-core/mach64_drv.h + create mode 100644 shared-core/mach64_irq.c + create mode 100644 shared-core/mach64_state.c + create mode 100644 shared-core/mga_dma.c + create mode 100644 shared-core/mga_drv.h + create mode 100644 shared-core/mga_irq.c + create mode 100644 shared-core/mga_state.c + create mode 100644 shared-core/mga_ucode.h + create mode 100644 shared-core/mga_warp.c + create mode 100644 shared-core/nouveau_drm.h + create mode 100644 shared-core/nouveau_drv.h + create mode 100644 shared-core/nouveau_fifo.c + create mode 100644 shared-core/nouveau_irq.c + create mode 100644 shared-core/nouveau_mem.c + create mode 100644 shared-core/nouveau_notifier.c + create mode 100644 shared-core/nouveau_object.c + create mode 100644 shared-core/nouveau_reg.h + create mode 100644 shared-core/nouveau_state.c + create mode 100644 shared-core/nv04_fb.c + create mode 100644 shared-core/nv04_fifo.c + create mode 100644 shared-core/nv04_graph.c + create mode 100644 shared-core/nv04_mc.c + create mode 100644 shared-core/nv04_timer.c + create mode 100644 shared-core/nv10_fb.c + create mode 100644 shared-core/nv10_fifo.c + create mode 100644 shared-core/nv10_graph.c + create mode 100644 shared-core/nv20_graph.c + create mode 100644 shared-core/nv30_graph.c + create mode 100644 shared-core/nv40_fb.c + create mode 100644 shared-core/nv40_fifo.c + create mode 100644 shared-core/nv40_graph.c + create mode 100644 shared-core/nv40_mc.c + create mode 100644 shared-core/nv50_fifo.c + create mode 100644 shared-core/nv50_graph.c + create mode 100644 shared-core/nv50_mc.c + create mode 100644 shared-core/nv_drv.h + create mode 100644 shared-core/psb_drm.h + create mode 100644 shared-core/psb_drv.h + create mode 100644 shared-core/psb_reg.h + create mode 100644 shared-core/r128_cce.c + create mode 100644 shared-core/r128_drv.h + create mode 100644 shared-core/r128_irq.c + create mode 100644 shared-core/r128_state.c + create mode 100644 shared-core/r300_cmdbuf.c + create mode 100644 shared-core/radeon_cp.c + create mode 100644 shared-core/radeon_drv.h + create mode 100644 shared-core/radeon_irq.c + create mode 100644 shared-core/radeon_mem.c + create mode 100644 shared-core/radeon_state.c + create mode 100644 shared-core/savage_bci.c + create mode 100644 shared-core/savage_drv.h + create mode 100644 shared-core/savage_state.c + create mode 100644 shared-core/sis_drv.h + create mode 100644 shared-core/sis_ds.c + create mode 100644 shared-core/sis_ds.h + create mode 100644 shared-core/sis_mm.c + create mode 100644 shared-core/tdfx_drv.h + create mode 100644 shared-core/via_dma.c + create mode 100644 shared-core/via_drv.c + create mode 100644 shared-core/via_drv.h + create mode 100644 shared-core/via_ds.c + create mode 100644 shared-core/via_ds.h + create mode 100644 shared-core/via_irq.c + create mode 100644 shared-core/via_map.c + create mode 100644 shared-core/via_mm.c + create mode 100644 shared-core/via_mm.h + create mode 100644 shared-core/via_verifier.c + create mode 100644 shared-core/via_verifier.h + create mode 100644 shared-core/via_video.c + +Index: git/configure.ac +=================================================================== +--- git.orig/configure.ac 2008-12-12 17:20:14.000000000 +0000 ++++ git/configure.ac 2008-12-12 17:35:22.000000000 +0000 +@@ -19,7 +19,7 @@ + # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + AC_PREREQ(2.57) +-AC_INIT([libdrm], 2.3.0, [dri-devel@lists.sourceforge.net], libdrm) ++AC_INIT([libdrm], 2.3.1, [dri-devel@lists.sourceforge.net], libdrm) + AC_CONFIG_SRCDIR([Makefile.am]) + AM_INIT_AUTOMAKE([dist-bzip2]) + +Index: git/libdrm/Makefile.am +=================================================================== +--- git.orig/libdrm/Makefile.am 2008-12-12 17:20:14.000000000 +0000 ++++ git/libdrm/Makefile.am 2008-12-12 17:35:22.000000000 +0000 +@@ -23,9 +23,9 @@ + libdrm_la_LDFLAGS = -version-number 2:3:0 -no-undefined + + AM_CFLAGS = -I$(top_srcdir)/shared-core +-libdrm_la_SOURCES = xf86drm.c xf86drmHash.c xf86drmRandom.c xf86drmSL.c ++libdrm_la_SOURCES = xf86drm.c xf86drmHash.c xf86drmRandom.c xf86drmSL.c xf86drmMode.c + + libdrmincludedir = ${includedir} +-libdrminclude_HEADERS = xf86drm.h xf86mm.h ++libdrminclude_HEADERS = xf86drm.h xf86mm.h xf86drmMode.h + + EXTRA_DIST = ChangeLog TODO +Index: git/libdrm/xf86drm.c +=================================================================== +--- git.orig/libdrm/xf86drm.c 2008-12-12 17:20:14.000000000 +0000 ++++ git/libdrm/xf86drm.c 2008-12-12 17:35:22.000000000 +0000 +@@ -31,10 +31,6 @@ + * DEALINGS IN THE SOFTWARE. + */ + +-#ifdef HAVE_XORG_CONFIG_H +-#include <xorg-config.h> +-#endif +- + #ifdef HAVE_CONFIG_H + # include <config.h> + #endif +@@ -53,7 +49,6 @@ + #include <sys/mman.h> + #include <sys/time.h> + #include <stdarg.h> +-#include "drm.h" + + /* Not all systems have MAP_FAILED defined */ + #ifndef MAP_FAILED +@@ -96,7 +91,7 @@ + + void drmSetServerInfo(drmServerInfoPtr info) + { +- drm_server_info = info; ++ drm_server_info = info; + } + + /** +@@ -110,7 +105,7 @@ + + static int drmDebugPrint(const char *format, va_list ap) + { +- return vfprintf(stderr, format, ap); ++ return vfprintf(stderr, format, ap); + } + + static int (*drm_debug_print)(const char *format, va_list ap) = drmDebugPrint; +@@ -135,26 +130,28 @@ + void + drmSetDebugMsgFunction(int (*debug_msg_ptr)(const char *format, va_list ap)) + { +- drm_debug_print = debug_msg_ptr; ++ drm_debug_print = debug_msg_ptr; + } + + static void *drmHashTable = NULL; /* Context switch callbacks */ + + void *drmGetHashTable(void) + { +- return drmHashTable; ++ return drmHashTable; + } + + void *drmMalloc(int size) + { + void *pt; +- if ((pt = malloc(size))) memset(pt, 0, size); ++ if ((pt = malloc(size))) ++ memset(pt, 0, size); + return pt; + } + + void drmFree(void *pt) + { +- if (pt) free(pt); ++ if (pt) ++ free(pt); + } + + /* drmStrdup can't use strdup(3), since it doesn't call _DRM_MALLOC... */ +@@ -190,7 +187,8 @@ + void *value; + drmHashEntry *entry; + +- if (!drmHashTable) drmHashTable = drmHashCreate(); ++ if (!drmHashTable) ++ drmHashTable = drmHashCreate(); + + if (drmHashLookup(drmHashTable, key, &value)) { + entry = drmMalloc(sizeof(*entry)); +@@ -280,14 +278,15 @@ + drmMsg("drmOpenDevice: node name is %s\n", buf); + + if (drm_server_info) { +- drm_server_info->get_perms(&serv_group, &serv_mode); +- devmode = serv_mode ? serv_mode : DRM_DEV_MODE; +- devmode &= ~(S_IXUSR|S_IXGRP|S_IXOTH); +- group = (serv_group >= 0) ? serv_group : DRM_DEV_GID; ++ drm_server_info->get_perms(&serv_group, &serv_mode); ++ devmode = serv_mode ? serv_mode : DRM_DEV_MODE; ++ devmode &= ~(S_IXUSR|S_IXGRP|S_IXOTH); ++ group = (serv_group >= 0) ? serv_group : DRM_DEV_GID; + } + + if (stat(DRM_DIR_NAME, &st)) { +- if (!isroot) return DRM_ERR_NOT_ROOT; ++ if (!isroot) ++ return DRM_ERR_NOT_ROOT; + mkdir(DRM_DIR_NAME, DRM_DEV_DIRMODE); + chown(DRM_DIR_NAME, 0, 0); /* root:root */ + chmod(DRM_DIR_NAME, DRM_DEV_DIRMODE); +@@ -295,37 +294,41 @@ + + /* Check if the device node exists and create it if necessary. */ + if (stat(buf, &st)) { +- if (!isroot) return DRM_ERR_NOT_ROOT; ++ if (!isroot) ++ return DRM_ERR_NOT_ROOT; + remove(buf); + mknod(buf, S_IFCHR | devmode, dev); + } + + if (drm_server_info) { +- chown(buf, user, group); +- chmod(buf, devmode); ++ chown(buf, user, group); ++ chmod(buf, devmode); + } + + fd = open(buf, O_RDWR, 0); + drmMsg("drmOpenDevice: open result is %d, (%s)\n", + fd, fd < 0 ? strerror(errno) : "OK"); +- if (fd >= 0) return fd; ++ if (fd >= 0) ++ return fd; + + /* Check if the device node is not what we expect it to be, and recreate it + * and try again if so. + */ + if (st.st_rdev != dev) { +- if (!isroot) return DRM_ERR_NOT_ROOT; ++ if (!isroot) ++ return DRM_ERR_NOT_ROOT; + remove(buf); + mknod(buf, S_IFCHR | devmode, dev); + if (drm_server_info) { +- chown(buf, user, group); +- chmod(buf, devmode); ++ chown(buf, user, group); ++ chmod(buf, devmode); + } + } + fd = open(buf, O_RDWR, 0); + drmMsg("drmOpenDevice: open result is %d, (%s)\n", + fd, fd < 0 ? strerror(errno) : "OK"); +- if (fd >= 0) return fd; ++ if (fd >= 0) ++ return fd; + + drmMsg("drmOpenDevice: Open failed\n"); + remove(buf); +@@ -350,10 +353,12 @@ + int fd; + char buf[64]; + +- if (create) return drmOpenDevice(makedev(DRM_MAJOR, minor), minor); ++ if (create) ++ return drmOpenDevice(makedev(DRM_MAJOR, minor), minor); + + sprintf(buf, DRM_DEV_NAME, DRM_DIR_NAME, minor); +- if ((fd = open(buf, O_RDWR, 0)) >= 0) return fd; ++ if ((fd = open(buf, O_RDWR, 0)) >= 0) ++ return fd; + return -errno; + } + +@@ -377,7 +382,8 @@ + if ((fd = drmOpenMinor(0, 1)) < 0) { + #ifdef __linux__ + /* Try proc for backward Linux compatibility */ +- if (!access("/proc/dri/0", R_OK)) return 1; ++ if (!access("/proc/dri/0", R_OK)) ++ return 1; + #endif + return 0; + } +@@ -428,7 +434,8 @@ + drmFreeBusid(buf); + return fd; + } +- if (buf) drmFreeBusid(buf); ++ if (buf) ++ drmFreeBusid(buf); + close(fd); + } + } +@@ -458,16 +465,16 @@ + char * id; + + if (!drmAvailable()) { +- if (!drm_server_info) +- return -1; +- else { +- /* try to load the kernel module now */ +- if (!drm_server_info->load_module(name)) { +- drmMsg("[drm] failed to load kernel module \"%s\"\n", +- name); +- return -1; +- } +- } ++ if (!drm_server_info) { ++ return -1; ++ } ++ else { ++ /* try to load the kernel module now */ ++ if (!drm_server_info->load_module(name)) { ++ drmMsg("[drm] failed to load kernel module \"%s\"\n", name); ++ return -1; ++ } ++ } + } + + /* +@@ -552,16 +559,13 @@ + if (!drmAvailable() && name != NULL && drm_server_info) { + /* try to load the kernel */ + if (!drm_server_info->load_module(name)) { +- drmMsg("[drm] failed to load kernel module \"%s\"\n", +- name); ++ drmMsg("[drm] failed to load kernel module \"%s\"\n", name); + return -1; + } + } + + if (busid) { +- int fd; +- +- fd = drmOpenByBusid(busid); ++ int fd = drmOpenByBusid(busid); + if (fd >= 0) + return fd; + } +@@ -584,10 +588,11 @@ + */ + void drmFreeVersion(drmVersionPtr v) + { +- if (!v) return; +- if (v->name) drmFree(v->name); +- if (v->date) drmFree(v->date); +- if (v->desc) drmFree(v->desc); ++ if (!v) ++ return; ++ drmFree(v->name); ++ drmFree(v->date); ++ drmFree(v->desc); + drmFree(v); + } + +@@ -603,10 +608,11 @@ + */ + static void drmFreeKernelVersion(drm_version_t *v) + { +- if (!v) return; +- if (v->name) drmFree(v->name); +- if (v->date) drmFree(v->date); +- if (v->desc) drmFree(v->desc); ++ if (!v) ++ return; ++ drmFree(v->name); ++ drmFree(v->date); ++ drmFree(v->desc); + drmFree(v); + } + +@@ -760,9 +766,11 @@ + u.unique_len = 0; + u.unique = NULL; + +- if (ioctl(fd, DRM_IOCTL_GET_UNIQUE, &u)) return NULL; ++ if (ioctl(fd, DRM_IOCTL_GET_UNIQUE, &u)) ++ return NULL; + u.unique = drmMalloc(u.unique_len + 1); +- if (ioctl(fd, DRM_IOCTL_GET_UNIQUE, &u)) return NULL; ++ if (ioctl(fd, DRM_IOCTL_GET_UNIQUE, &u)) ++ return NULL; + u.unique[u.unique_len] = '\0'; + + return u.unique; +@@ -799,7 +807,8 @@ + drm_auth_t auth; + + *magic = 0; +- if (ioctl(fd, DRM_IOCTL_GET_MAGIC, &auth)) return -errno; ++ if (ioctl(fd, DRM_IOCTL_GET_MAGIC, &auth)) ++ return -errno; + *magic = auth.magic; + return 0; + } +@@ -809,7 +818,8 @@ + drm_auth_t auth; + + auth.magic = magic; +- if (ioctl(fd, DRM_IOCTL_AUTH_MAGIC, &auth)) return -errno; ++ if (ioctl(fd, DRM_IOCTL_AUTH_MAGIC, &auth)) ++ return -errno; + return 0; + } + +@@ -873,8 +883,10 @@ + map.handle = 0; + map.type = type; + map.flags = flags; +- if (ioctl(fd, DRM_IOCTL_ADD_MAP, &map)) return -errno; +- if (handle) *handle = (drm_handle_t)map.handle; ++ if (ioctl(fd, DRM_IOCTL_ADD_MAP, &map)) ++ return -errno; ++ if (handle) ++ *handle = (drm_handle_t)map.handle; + return 0; + } + +@@ -884,7 +896,8 @@ + + map.handle = (void *)handle; + +- if(ioctl(fd, DRM_IOCTL_RM_MAP, &map)) return -errno; ++ if(ioctl(fd, DRM_IOCTL_RM_MAP, &map)) ++ return -errno; + return 0; + } + +@@ -916,7 +929,8 @@ + request.flags = flags; + request.agp_start = agp_offset; + +- if (ioctl(fd, DRM_IOCTL_ADD_BUFS, &request)) return -errno; ++ if (ioctl(fd, DRM_IOCTL_ADD_BUFS, &request)) ++ return -errno; + return request.count; + } + +@@ -928,9 +942,11 @@ + info.count = 0; + info.list = NULL; + +- if (ioctl(fd, DRM_IOCTL_INFO_BUFS, &info)) return -EINVAL; ++ if (ioctl(fd, DRM_IOCTL_INFO_BUFS, &info)) ++ return -EINVAL; + +- if (!info.count) return -EINVAL; ++ if (!info.count) ++ return -EINVAL; + + if (!(info.list = drmMalloc(info.count * sizeof(*info.list)))) + return -ENOMEM; +@@ -976,7 +992,8 @@ + + request.count = count; + request.list = list; +- if (ioctl(fd, DRM_IOCTL_FREE_BUFS, &request)) return -errno; ++ if (ioctl(fd, DRM_IOCTL_FREE_BUFS, &request)) ++ return -errno; + return 0; + } + +@@ -1024,7 +1041,8 @@ + { + static unsigned long pagesize_mask = 0; + +- if (fd < 0) return -EINVAL; ++ if (fd < 0) ++ return -EINVAL; + + if (!pagesize_mask) + pagesize_mask = getpagesize() - 1; +@@ -1032,7 +1050,8 @@ + size = (size + pagesize_mask) & ~pagesize_mask; + + *address = mmap(0, size, PROT_READ|PROT_WRITE, MAP_SHARED, fd, handle); +- if (*address == MAP_FAILED) return -errno; ++ if (*address == MAP_FAILED) ++ return -errno; + return 0; + } + +@@ -1062,7 +1081,8 @@ + info.count = 0; + info.list = NULL; + +- if (ioctl(fd, DRM_IOCTL_INFO_BUFS, &info)) return NULL; ++ if (ioctl(fd, DRM_IOCTL_INFO_BUFS, &info)) ++ return NULL; + + if (info.count) { + if (!(info.list = drmMalloc(info.count * sizeof(*info.list)))) +@@ -1112,9 +1132,11 @@ + bufs.count = 0; + bufs.list = NULL; + bufs.virtual = NULL; +- if (ioctl(fd, DRM_IOCTL_MAP_BUFS, &bufs)) return NULL; ++ if (ioctl(fd, DRM_IOCTL_MAP_BUFS, &bufs)) ++ return NULL; + +- if (!bufs.count) return NULL; ++ if (!bufs.count) ++ return NULL; + + if (!(bufs.list = drmMalloc(bufs.count * sizeof(*bufs.list)))) + return NULL; +@@ -1269,20 +1291,25 @@ + + res.count = 0; + res.contexts = NULL; +- if (ioctl(fd, DRM_IOCTL_RES_CTX, &res)) return NULL; ++ if (ioctl(fd, DRM_IOCTL_RES_CTX, &res)) ++ return NULL; + +- if (!res.count) return NULL; ++ if (!res.count) ++ return NULL; + +- if (!(list = drmMalloc(res.count * sizeof(*list)))) return NULL; ++ if (!(list = drmMalloc(res.count * sizeof(*list)))) ++ return NULL; + if (!(retval = drmMalloc(res.count * sizeof(*retval)))) { + drmFree(list); + return NULL; + } + + res.contexts = list; +- if (ioctl(fd, DRM_IOCTL_RES_CTX, &res)) return NULL; ++ if (ioctl(fd, DRM_IOCTL_RES_CTX, &res)) ++ return NULL; + +- for (i = 0; i < res.count; i++) retval[i] = list[i].handle; ++ for (i = 0; i < res.count; i++) ++ retval[i] = list[i].handle; + drmFree(list); + + *count = res.count; +@@ -1317,7 +1344,8 @@ + drm_ctx_t ctx; + + ctx.flags = 0; /* Modified with functions below */ +- if (ioctl(fd, DRM_IOCTL_ADD_CTX, &ctx)) return -errno; ++ if (ioctl(fd, DRM_IOCTL_ADD_CTX, &ctx)) ++ return -errno; + *handle = ctx.handle; + return 0; + } +@@ -1327,7 +1355,8 @@ + drm_ctx_t ctx; + + ctx.handle = context; +- if (ioctl(fd, DRM_IOCTL_SWITCH_CTX, &ctx)) return -errno; ++ if (ioctl(fd, DRM_IOCTL_SWITCH_CTX, &ctx)) ++ return -errno; + return 0; + } + +@@ -1343,9 +1372,12 @@ + */ + ctx.handle = context; + ctx.flags = 0; +- if (flags & DRM_CONTEXT_PRESERVED) ctx.flags |= _DRM_CONTEXT_PRESERVED; +- if (flags & DRM_CONTEXT_2DONLY) ctx.flags |= _DRM_CONTEXT_2DONLY; +- if (ioctl(fd, DRM_IOCTL_MOD_CTX, &ctx)) return -errno; ++ if (flags & DRM_CONTEXT_PRESERVED) ++ ctx.flags |= _DRM_CONTEXT_PRESERVED; ++ if (flags & DRM_CONTEXT_2DONLY) ++ ctx.flags |= _DRM_CONTEXT_2DONLY; ++ if (ioctl(fd, DRM_IOCTL_MOD_CTX, &ctx)) ++ return -errno; + return 0; + } + +@@ -1355,10 +1387,13 @@ + drm_ctx_t ctx; + + ctx.handle = context; +- if (ioctl(fd, DRM_IOCTL_GET_CTX, &ctx)) return -errno; ++ if (ioctl(fd, DRM_IOCTL_GET_CTX, &ctx)) ++ return -errno; + *flags = 0; +- if (ctx.flags & _DRM_CONTEXT_PRESERVED) *flags |= DRM_CONTEXT_PRESERVED; +- if (ctx.flags & _DRM_CONTEXT_2DONLY) *flags |= DRM_CONTEXT_2DONLY; ++ if (ctx.flags & _DRM_CONTEXT_PRESERVED) ++ *flags |= DRM_CONTEXT_PRESERVED; ++ if (ctx.flags & _DRM_CONTEXT_2DONLY) ++ *flags |= DRM_CONTEXT_2DONLY; + return 0; + } + +@@ -1383,14 +1418,16 @@ + { + drm_ctx_t ctx; + ctx.handle = handle; +- if (ioctl(fd, DRM_IOCTL_RM_CTX, &ctx)) return -errno; ++ if (ioctl(fd, DRM_IOCTL_RM_CTX, &ctx)) ++ return -errno; + return 0; + } + + int drmCreateDrawable(int fd, drm_drawable_t *handle) + { + drm_draw_t draw; +- if (ioctl(fd, DRM_IOCTL_ADD_DRAW, &draw)) return -errno; ++ if (ioctl(fd, DRM_IOCTL_ADD_DRAW, &draw)) ++ return -errno; + *handle = draw.handle; + return 0; + } +@@ -1399,7 +1436,8 @@ + { + drm_draw_t draw; + draw.handle = handle; +- if (ioctl(fd, DRM_IOCTL_RM_DRAW, &draw)) return -errno; ++ if (ioctl(fd, DRM_IOCTL_RM_DRAW, &draw)) ++ return -errno; + return 0; + } + +@@ -1414,7 +1452,8 @@ + update.num = num; + update.data = (unsigned long long)(unsigned long)data; + +- if (ioctl(fd, DRM_IOCTL_UPDATE_DRAW, &update)) return -errno; ++ if (ioctl(fd, DRM_IOCTL_UPDATE_DRAW, &update)) ++ return -errno; + + return 0; + } +@@ -1433,7 +1472,8 @@ + */ + int drmAgpAcquire(int fd) + { +- if (ioctl(fd, DRM_IOCTL_AGP_ACQUIRE, NULL)) return -errno; ++ if (ioctl(fd, DRM_IOCTL_AGP_ACQUIRE, NULL)) ++ return -errno; + return 0; + } + +@@ -1450,7 +1490,8 @@ + */ + int drmAgpRelease(int fd) + { +- if (ioctl(fd, DRM_IOCTL_AGP_RELEASE, NULL)) return -errno; ++ if (ioctl(fd, DRM_IOCTL_AGP_RELEASE, NULL)) ++ return -errno; + return 0; + } + +@@ -1472,7 +1513,8 @@ + drm_agp_mode_t m; + + m.mode = mode; +- if (ioctl(fd, DRM_IOCTL_AGP_ENABLE, &m)) return -errno; ++ if (ioctl(fd, DRM_IOCTL_AGP_ENABLE, &m)) ++ return -errno; + return 0; + } + +@@ -1502,8 +1544,10 @@ + b.size = size; + b.handle = 0; + b.type = type; +- if (ioctl(fd, DRM_IOCTL_AGP_ALLOC, &b)) return -errno; +- if (address != 0UL) *address = b.physical; ++ if (ioctl(fd, DRM_IOCTL_AGP_ALLOC, &b)) ++ return -errno; ++ if (address != 0UL) ++ *address = b.physical; + *handle = b.handle; + return 0; + } +@@ -1527,7 +1571,8 @@ + + b.size = 0; + b.handle = handle; +- if (ioctl(fd, DRM_IOCTL_AGP_FREE, &b)) return -errno; ++ if (ioctl(fd, DRM_IOCTL_AGP_FREE, &b)) ++ return -errno; + return 0; + } + +@@ -1551,7 +1596,8 @@ + + b.handle = handle; + b.offset = offset; +- if (ioctl(fd, DRM_IOCTL_AGP_BIND, &b)) return -errno; ++ if (ioctl(fd, DRM_IOCTL_AGP_BIND, &b)) ++ return -errno; + return 0; + } + +@@ -1574,7 +1620,8 @@ + + b.handle = handle; + b.offset = 0; +- if (ioctl(fd, DRM_IOCTL_AGP_UNBIND, &b)) return -errno; ++ if (ioctl(fd, DRM_IOCTL_AGP_UNBIND, &b)) ++ return -errno; + return 0; + } + +@@ -1594,7 +1641,8 @@ + { + drm_agp_info_t i; + +- if (ioctl(fd, DRM_IOCTL_AGP_INFO, &i)) return -errno; ++ if (ioctl(fd, DRM_IOCTL_AGP_INFO, &i)) ++ return -errno; + return i.agp_version_major; + } + +@@ -1614,7 +1662,8 @@ + { + drm_agp_info_t i; + +- if (ioctl(fd, DRM_IOCTL_AGP_INFO, &i)) return -errno; ++ if (ioctl(fd, DRM_IOCTL_AGP_INFO, &i)) ++ return -errno; + return i.agp_version_minor; + } + +@@ -1634,7 +1683,8 @@ + { + drm_agp_info_t i; + +- if (ioctl(fd, D |
