README | 9 configure.ac | 18 debian/changelog | 52 debian/control | 35 debian/copyright | 82 debian/libdrm-nouveau1.install | 1 debian/postrm.modules.in | 8 debian/preinst.modules.in | 8 debian/rules | 17 debian/source.lintian-overrides | 4 libdrm/Makefile.am | 3 libdrm/intel/Makefile.am | 1 libdrm/intel/intel_bufmgr_fake.c | 2 libdrm/intel/intel_bufmgr_gem.c | 82 libdrm/intel/intel_chipset.h | 71 libdrm/nouveau/Makefile.am | 40 libdrm/nouveau/libdrm_nouveau.pc.in | 10 libdrm/nouveau/nouveau_bo.c | 838 +++ libdrm/nouveau/nouveau_bo.h | 97 libdrm/nouveau/nouveau_channel.c | 167 libdrm/nouveau/nouveau_channel.h | 56 libdrm/nouveau/nouveau_class.h | 8006 ++++++++++++++++++++++++++++++++++++ libdrm/nouveau/nouveau_device.c | 185 libdrm/nouveau/nouveau_device.h | 31 libdrm/nouveau/nouveau_dma.c | 215 libdrm/nouveau/nouveau_dma.h | 154 libdrm/nouveau/nouveau_drmif.h | 59 libdrm/nouveau/nouveau_fence.c | 249 + libdrm/nouveau/nouveau_grobj.c | 138 libdrm/nouveau/nouveau_grobj.h | 48 libdrm/nouveau/nouveau_notifier.c | 146 libdrm/nouveau/nouveau_notifier.h | 63 libdrm/nouveau/nouveau_private.h | 203 libdrm/nouveau/nouveau_pushbuf.c | 276 + libdrm/nouveau/nouveau_pushbuf.h | 160 libdrm/nouveau/nouveau_resource.c | 115 libdrm/nouveau/nouveau_resource.h | 48 libdrm/xf86drm.c | 23 libdrm/xf86drmMode.c | 21 libdrm/xf86drmMode.h | 7 linux-core/Makefile | 29 linux-core/Makefile.kernel | 2 linux-core/drm_compat.h | 6 linux-core/drm_fops.c | 2 linux-core/nv_drv.c | 94 linux-core/nv_drv.h | 1 shared-core/i915_drm.h | 2 shared-core/nouveau_drm.h | 123 shared-core/nouveau_drv.h | 2 shared-core/nouveau_irq.c | 24 shared-core/nouveau_mem.c | 11 shared-core/nouveau_object.c | 7 shared-core/nouveau_state.c | 23 shared-core/nv04_instmem.c | 3 shared-core/nv50_graph.c | 2 shared-core/nv_drv.h | 52 tests/modetest/Makefile.am | 6 tests/modetest/modetest.c | 254 - 58 files changed, 12033 insertions(+), 358 deletions(-)
New commits: commit 09c023dba31bd40d2fca6ff3e9aff66611aab4ff Author: Chris Lamb <[email protected]> Date: Thu Feb 5 00:50:51 2009 +0000 Re-order changelog entry to make it easier for ftpmasters. Signed-off-by: Chris Lamb <[email protected]> diff --git a/debian/changelog b/debian/changelog index e309b65..d89e28d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,5 +1,16 @@ drm-snapshot (2.4.4+git+20090205+8b88036-1) experimental; urgency=low + * Build new libdrm-nouveau1 and libdrm-nouveau1-dbg packages. + * Unconditionally add/remove diverts in generated packages' maintainer + scripts to avoid problems when the module package is installed without a + kernel being present. Thanks to Christoph Goehre <[email protected]> + for the patch. (Closes: #513399) + * Replace references to KERNELDIR with LINUXDIR to fix compilation for a + kernel version other than the running one. Thanks to Tormod Volden + <[email protected]> for the patch. (Closes: #511358) + * Don't include (~12MiB) .git/ in the original tarball. (Closes: #513394) + * Replace instances of "(C)" with "©" in debian/copyright to appease + lintian. * New upstream snapshot: - 8b88036... modetest: Add syntax to also specify a crtc when setting a mode. @@ -36,17 +47,6 @@ drm-snapshot (2.4.4+git+20090205+8b88036-1) experimental; urgency=low - badc634... libdrm: add autoconf check for clock_gettime - ca37077... libdrm: only check for vblank timeout if we caught EINTR - f4f76a6... libdrm: add timeout handling to drmWaitVBlank - * Unconditionally add/remove diverts in generated packages' maintainer - scripts to avoid problems when the module package is installed without a - kernel being present. Thanks to Christoph Goehre <[email protected]> - for the patch. (Closes: #513399) - * Replace references to KERNELDIR with LINUXDIR to fix compilation for a - kernel version other than the running one. Thanks to Tormod Volden - <[email protected]> for the patch. (Closes: #511358) - * Don't include (~12MiB) .git/ in the original tarball. (Closes: #513394) - * Replace instances of "(C)" with "©" in debian/copyright to appease - lintian. - * Build new libdrm-nouveau1 and libdrm-nouveau1-dbg packages. -- Chris Lamb <[email protected]> Wed, 04 Feb 2009 23:34:10 +0000 commit 00387de23d6fa0b9012165e6a53485ab59edf891 Author: Chris Lamb <[email protected]> Date: Thu Feb 5 00:14:32 2009 +0000 Don't include (~12MiB) .git/ in the original tarball. (Closes: #513394) Signed-off-by: Chris Lamb <[email protected]> diff --git a/debian/changelog b/debian/changelog index a4fd51e..e309b65 100644 --- a/debian/changelog +++ b/debian/changelog @@ -43,6 +43,7 @@ drm-snapshot (2.4.4+git+20090205+8b88036-1) experimental; urgency=low * Replace references to KERNELDIR with LINUXDIR to fix compilation for a kernel version other than the running one. Thanks to Tormod Volden <[email protected]> for the patch. (Closes: #511358) + * Don't include (~12MiB) .git/ in the original tarball. (Closes: #513394) * Replace instances of "(C)" with "©" in debian/copyright to appease lintian. * Build new libdrm-nouveau1 and libdrm-nouveau1-dbg packages. diff --git a/debian/control b/debian/control index 4abda2a..d7eb7d4 100644 --- a/debian/control +++ b/debian/control @@ -2,7 +2,7 @@ Source: drm-snapshot Priority: optional Maintainer: Debian X Strike Force <[email protected]> Uploaders: Chris Lamb <[email protected]>, Matthew Johnson <[email protected]> -Build-Depends: debhelper (>= 7), libx11-dev, dpkg-dev (>= 1.13.19), quilt, bzip2, git-core, pkg-config, libpthread-stubs0-dev, automake, libtool +Build-Depends: debhelper (>= 7), libx11-dev, dpkg-dev (>= 1.13.19), quilt, bzip2, pkg-config, libpthread-stubs0-dev, automake, libtool Standards-Version: 3.8.0 Section: libs Homepage: http://dri.freedesktop.org/wiki/FrontPage diff --git a/debian/rules b/debian/rules index 139ad9b..f4cdaf3 100755 --- a/debian/rules +++ b/debian/rules @@ -20,7 +20,9 @@ get-orig-source: git clone git://anongit.freedesktop.org/git/mesa/drm drm-snapshot && \ cd drm-snapshot && ./autogen.sh && make distclean && \ REVISION=$$(git show --pretty=format:"%h" HEAD | head -n1) && \ - PREFIX=drm-snapshot_2.4.4+git+$$(date +%Y%m%d)+$$REVISION && cd .. && \ + PREFIX=drm-snapshot_2.4.4+git+$$(date +%Y%m%d)+$$REVISION && \ + git describe --abbrev=17 > .git-revision && cd .. && \ + rm -rf drm-snapshot/.git && \ tar czf $$PREFIX.orig.tar.gz --exclude=autom4te.cache drm-snapshot && \ rm -rf drm-snapshot @@ -92,7 +94,7 @@ install: build debian/$(psource)/usr/src/modules/$(sname)/debian cp debian/rules debian/changelog debian/copyright \ debian/compat debian/$(psource)/usr/src/modules/$(sname)/debian/ - git describe --abbrev=17 > debian/$(psource)/usr/src/modules/$(sname)/debian/git-revision + cp .git-revision debian/$(psource)/usr/src/modules/$(sname)/debian/git-revision cd debian/$(psource)/usr/src && tar c modules | bzip2 -9 > $(sname).tar.bz2 && rm -rf modules # Tell module-assistant about the drm modules, so they show up in the list menu diff --git a/debian/source.lintian-overrides b/debian/source.lintian-overrides deleted file mode 100644 index 92b901b..0000000 --- a/debian/source.lintian-overrides +++ /dev/null @@ -1,4 +0,0 @@ -# The .git directory is used to populate /usr/src/modules/../ such that -# the drm-modules-$(KVER) packages include the git revision number in -# their version number. -drm-snapshot source: source-contains-git-control-dir .git commit 1d9453586fd1712791ac9cae6e1c27cff6815d2a Author: Chris Lamb <[email protected]> Date: Thu Feb 5 00:04:24 2009 +0000 Build new libdrm-nouveau1 and libdrm-nouveau1-dbg packages. Signed-off-by: Chris Lamb <[email protected]> diff --git a/debian/changelog b/debian/changelog index 64e75cd..a4fd51e 100644 --- a/debian/changelog +++ b/debian/changelog @@ -45,6 +45,7 @@ drm-snapshot (2.4.4+git+20090205+8b88036-1) experimental; urgency=low <[email protected]> for the patch. (Closes: #511358) * Replace instances of "(C)" with "©" in debian/copyright to appease lintian. + * Build new libdrm-nouveau1 and libdrm-nouveau1-dbg packages. -- Chris Lamb <[email protected]> Wed, 04 Feb 2009 23:34:10 +0000 diff --git a/debian/control b/debian/control index cd99512..4abda2a 100644 --- a/debian/control +++ b/debian/control @@ -12,7 +12,7 @@ Vcs-Browser: http://git.debian.org/?p=pkg-xorg/lib/drm-snapshot.git Package: libdrm-dev Section: libdevel Architecture: any -Depends: libdrm2 (= ${binary:Version}), libdrm-intel1 (= ${binary:Version}) [amd64 i386 kfreebsd-amd64 kfreebsd-i386], ${misc:Depends} +Depends: libdrm2 (= ${binary:Version}), libdrm-intel1 (= ${binary:Version}) [amd64 i386 kfreebsd-amd64 kfreebsd-i386], libdrm-nouveau1 (= ${binary:Version}) [amd64 i386 kfreebsd-amd64 kfreebsd-i386 powerpc], ${misc:Depends} Description: Userspace interface to kernel rendering services (snapshot) -- dev files This library implements the userspace interface to the kernel DRM services. DRM stands for "Direct Rendering Manager", which is the kernelspace portion @@ -89,6 +89,37 @@ Description: Userspace interface to Intel-specific kernel rendering -- debugging . This package provides the debugging symbols for the libdrm-intel1 package. +Package: libdrm-nouveau1 +Section: libs +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: Userspace interface to Nouveau-specific kernel rendering services -- runtime + This library implements the userspace interface to the Nouveau-specific kernel + DRM services. DRM stands for "Direct Rendering Manager", which is the + kernelspace portion of the "Direct Rendering Infrastructure" (DRI). The DRI is + currently used on Linux to provide hardware-accelerated OpenGL drivers. + . + This package is built from a snapshot of DRM development code, to provide the + features necessary for testing new X.org drivers. Do NOT expect this package + to be stable! + +Package: libdrm-nouveau1-dbg +Section: libdevel +Priority: extra +Architecture: any +Depends: libdrm-nouveau1 (= ${binary:Version}), ${misc:Depends} +Description: Userspace interface to Nouveau-specific kernel rendering -- debugging symbols + This library implements the userspace interface to the kernel DRM services. + DRM stands for "Direct Rendering Manager", which is the kernelspace portion + of the "Direct Rendering Infrastructure" (DRI). The DRI is currently used on + Linux to provide hardware-accelerated OpenGL drivers. + . + This package is built from a snapshot of DRM development code, to provide the + features necessary for testing new X.org drivers. Do NOT expect this package + to be stable! + . + This package provides the debugging symbols for the libdrm-nouveau1 package. + Package: drm-modules-source Architecture: all Depends: debhelper (>= 7), quilt, make, git-core, module-assistant, ${misc:Depends} diff --git a/debian/libdrm-nouveau1.install b/debian/libdrm-nouveau1.install new file mode 100644 index 0000000..7650858 --- /dev/null +++ b/debian/libdrm-nouveau1.install @@ -0,0 +1 @@ +usr/lib/libdrm_nouveau.so.* diff --git a/debian/rules b/debian/rules index 2309cdf..139ad9b 100755 --- a/debian/rules +++ b/debian/rules @@ -108,6 +108,7 @@ binary-arch: build install dh_install -s --sourcedir=debian/tmp -X.la --fail-missing dh_strip -plibdrm2 --dbg-package=libdrm2-dbg dh_strip -plibdrm-intel1 --dbg-package=libdrm-intel1-dbg + dh_strip -plibdrm-nouveau1 --dbg-package=libdrm-nouveau1-dbg dh_strip dh_lintian dh_compress commit f6c9175fc6a1efe94f6c1c4b7bb5d99644262fd1 Author: Chris Lamb <[email protected]> Date: Wed Feb 4 23:59:59 2009 +0000 Use dh_prep over dh_clean -k. Signed-off-by: Chris Lamb <[email protected]> diff --git a/debian/rules b/debian/rules index 774ea43..2309cdf 100755 --- a/debian/rules +++ b/debian/rules @@ -76,7 +76,7 @@ clean: unpatch install: build dh_testdir dh_testroot - dh_clean -k + dh_prep dh_installdirs cd obj-$(DEB_BUILD_GNU_TYPE) && \ $(MAKE) install DESTDIR=$(CURDIR)/debian/tmp @@ -122,7 +122,7 @@ binary-arch: build install # (Invoked by module-assistant or make-kpkg) binary-modules: dh_testroot - dh_clean -k + dh_prep # Build the modules $(MAKE) -C linux-core LINUXDIR=$(KSRC) KVERREL=$(KVERS) \ @@ -143,7 +143,7 @@ binary-modules: dh_gencontrol -- -v$(VERSION) dh_md5sums dh_builddeb --destdir=$(DEB_DESTDIR) - dh_clean -k + dh_prep # (Invoked by module-assistant or make-kpkg) kdist_config kdist_configure: prep-deb-files commit 615c0c77c7198c48ef351aa7417b6c02aca64be6 Author: Chris Lamb <[email protected]> Date: Wed Feb 4 23:59:43 2009 +0000 Use unicode copyright symbol to appease lintian in debian/copyright. Signed-off-by: Chris Lamb <[email protected]> diff --git a/debian/changelog b/debian/changelog index 5342e52..64e75cd 100644 --- a/debian/changelog +++ b/debian/changelog @@ -43,6 +43,8 @@ drm-snapshot (2.4.4+git+20090205+8b88036-1) experimental; urgency=low * Replace references to KERNELDIR with LINUXDIR to fix compilation for a kernel version other than the running one. Thanks to Tormod Volden <[email protected]> for the patch. (Closes: #511358) + * Replace instances of "(C)" with "©" in debian/copyright to appease + lintian. -- Chris Lamb <[email protected]> Wed, 04 Feb 2009 23:34:10 +0000 diff --git a/debian/copyright b/debian/copyright index 037ad66..dc28efc 100644 --- a/debian/copyright +++ b/debian/copyright @@ -6,46 +6,46 @@ It was downloaded from <http://dri.freedesktop.org/wiki/FrontPage> License: - Copyright (C) 1998-2003 VIA Technologies, Inc. - Copyright (C) 1999 Precision Insight, Inc., Cedar Park, Texas. - Copyright (C) 1999 Matrox Graphics Inc. - Copyright (C) 1999 Wittawat Yamwong - Copyright (C) 2000 Gareth Hughes - Copyright (C) 2000 VA Linux Systems, Inc., Sunnyvale, California. - Copyright (C) 2003 Tungsten Graphics, Inc. - Copyright (C) 2000 Silicon Integrated Systems Corp, Inc. - Copyright (C) 2000 David S. Miller <[email protected]> - Copyright (C) 2001-2003 S3 Graphics, Inc. - Copyright (C) 2002-2003 Leif Delgass - Copyright (C) 2002 Frank C. Earl - Copyright (C) 2002 The Weather Channel, Inc. - Copyright (C) 2003-2004, 2007 IBM Corporation - Copyright (C) 2003-2004 Greg Kroah-Hartman <[email protected]> - Copyright (C) 2003, 2004 Eric Anholt - Copyright (C) 2003, 2004 Egbert Eich - Copyright (C) 2003 Jose Fonseca - Copyright (C) 2004 BEAM Ltd - Copyright (C) 2004 The Unichrome Project - Copyright (C) 2004 Digeo, Inc., Palo Alto, CA, U.S.A - Copyright (C) 2004 Felix Kuehling - Copyright (C) 2004-2005 Nicolai Haehnle - Copyright (C) 2004 Jon Smirl <[email protected]> - Copyright (C) 2005 Paul Mackerras 2005 - Copyright (C) 2005-2006 Stephane Marchesin - Copyright (C) 2005 Thomas Hellstrom - Copyright (C) 2005 Lars Knoll <[email protected]> - Copyright (C) 2005 Dave Airlied - Copyright (C) 2005 Adam Jackson - Copyright (C) 2005 Stephane Marchesin - Copyright (C) 2005 Alan Hourihane - Copyright (C) 2005 Eric Anholt - Copyright (C) 2006 Ben Skeggs - Copyright (C) 2007 Arthur Huillet - Copyright (C) 2007 Advanced Micro Devices, Inc. - Copyright (C) 2007 Matthieu CASTET <[email protected]> - Copyright (C) 2007 Intel Corporation - Copyright (C) 2007 Red Hat, Inc - Copyright (C) 2007 Stephane Marchesin + Copyright © 1998-2003 VIA Technologies, Inc. + Copyright © 1999 Precision Insight, Inc., Cedar Park, Texas. + Copyright © 1999 Matrox Graphics Inc. + Copyright © 1999 Wittawat Yamwong + Copyright © 2000 Gareth Hughes + Copyright © 2000 VA Linux Systems, Inc., Sunnyvale, California. + Copyright © 2003 Tungsten Graphics, Inc. + Copyright © 2000 Silicon Integrated Systems Corp, Inc. + Copyright © 2000 David S. Miller <[email protected]> + Copyright © 2001-2003 S3 Graphics, Inc. + Copyright © 2002-2003 Leif Delgass + Copyright © 2002 Frank C. Earl + Copyright © 2002 The Weather Channel, Inc. + Copyright © 2003-2004, 2007 IBM Corporation + Copyright © 2003-2004 Greg Kroah-Hartman <[email protected]> + Copyright © 2003, 2004 Eric Anholt + Copyright © 2003, 2004 Egbert Eich + Copyright © 2003 Jose Fonseca + Copyright © 2004 BEAM Ltd + Copyright © 2004 The Unichrome Project + Copyright © 2004 Digeo, Inc., Palo Alto, CA, U.S.A + Copyright © 2004 Felix Kuehling + Copyright © 2004-2005 Nicolai Haehnle + Copyright © 2004 Jon Smirl <[email protected]> + Copyright © 2005 Paul Mackerras 2005 + Copyright © 2005-2006 Stephane Marchesin + Copyright © 2005 Thomas Hellstrom + Copyright © 2005 Lars Knoll <[email protected]> + Copyright © 2005 Dave Airlied + Copyright © 2005 Adam Jackson + Copyright © 2005 Stephane Marchesin + Copyright © 2005 Alan Hourihane + Copyright © 2005 Eric Anholt + Copyright © 2006 Ben Skeggs + Copyright © 2007 Arthur Huillet + Copyright © 2007 Advanced Micro Devices, Inc. + Copyright © 2007 Matthieu CASTET <[email protected]> + Copyright © 2007 Intel Corporation + Copyright © 2007 Red Hat, Inc + Copyright © 2007 Stephane Marchesin Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the @@ -67,5 +67,5 @@ License: TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -The Debian packaging is (C) 2008, Chris Lamb <[email protected]> and +The Debian packaging is © 2008, Chris Lamb <[email protected]> and is licensed under the GPL, see `/usr/share/common-licenses/GPL'. commit 6bbb7944af750a8410a616fbf82170fbc04de01f Author: Chris Lamb <[email protected]> Date: Wed Feb 4 23:43:51 2009 +0000 Replace references to KERNELDIR with LINUXDIR. Signed-off-by: Chris Lamb <[email protected]> diff --git a/debian/changelog b/debian/changelog index a55a764..5342e52 100644 --- a/debian/changelog +++ b/debian/changelog @@ -40,6 +40,9 @@ drm-snapshot (2.4.4+git+20090205+8b88036-1) experimental; urgency=low scripts to avoid problems when the module package is installed without a kernel being present. Thanks to Christoph Goehre <[email protected]> for the patch. (Closes: #513399) + * Replace references to KERNELDIR with LINUXDIR to fix compilation for a + kernel version other than the running one. Thanks to Tormod Volden + <[email protected]> for the patch. (Closes: #511358) -- Chris Lamb <[email protected]> Wed, 04 Feb 2009 23:34:10 +0000 diff --git a/debian/rules b/debian/rules index 704748a..774ea43 100755 --- a/debian/rules +++ b/debian/rules @@ -125,7 +125,7 @@ binary-modules: dh_clean -k # Build the modules - $(MAKE) -C linux-core KERNELDIR=$(KSRC) KVERREL=$(KVERS) \ + $(MAKE) -C linux-core LINUXDIR=$(KSRC) KVERREL=$(KVERS) \ EXTRA_CFLAGS=-DGIT_REVISION=\\\"$(shell cat debian/git-revision)\\\" # Install the modules @@ -148,7 +148,7 @@ binary-modules: # (Invoked by module-assistant or make-kpkg) kdist_config kdist_configure: prep-deb-files kdist_clean: - $(MAKE) -C linux-core KERNELDIR=$(KSRC) KVERREL=$(KVERS) clean + $(MAKE) -C linux-core LINUXDIR=$(KSRC) KVERREL=$(KVERS) clean binary: binary-indep binary-arch .PHONY: build clean binary-indep binary-arch binary binary-modules install get-orig-source commit 956a4dcaf36263c1362cc19a29063d7c9a3359f3 Author: Chris Lamb <[email protected]> Date: Wed Feb 4 23:41:23 2009 +0000 Unconditionally add/remove diverts in generated packages' maint. scripts Signed-off-by: Chris Lamb <[email protected]> diff --git a/debian/changelog b/debian/changelog index ec17d9a..a55a764 100644 --- a/debian/changelog +++ b/debian/changelog @@ -36,6 +36,10 @@ drm-snapshot (2.4.4+git+20090205+8b88036-1) experimental; urgency=low - badc634... libdrm: add autoconf check for clock_gettime - ca37077... libdrm: only check for vblank timeout if we caught EINTR - f4f76a6... libdrm: add timeout handling to drmWaitVBlank + * Unconditionally add/remove diverts in generated packages' maintainer + scripts to avoid problems when the module package is installed without a + kernel being present. Thanks to Christoph Goehre <[email protected]> + for the patch. (Closes: #513399) -- Chris Lamb <[email protected]> Wed, 04 Feb 2009 23:34:10 +0000 diff --git a/debian/postrm.modules.in b/debian/postrm.modules.in index fc74698..484b58c 100644 --- a/debian/postrm.modules.in +++ b/debian/postrm.modules.in @@ -8,11 +8,9 @@ dir=/lib/modules/@KERNEL@/kernel/drivers/char/drm case "${1}" in remove) for driver in $drivers; do - if [ -e "$dir/$driver.ko.linux" ]; then - dpkg-divert --package drm-modul...@kernel@ --remove --rename \ - --divert $dir/$driver.ko.linux \ - $dir/$driver.ko - fi + dpkg-divert --package drm-modul...@kernel@ --remove --rename \ + --divert $dir/$driver.ko.linux \ + $dir/$driver.ko done ;; diff --git a/debian/preinst.modules.in b/debian/preinst.modules.in index ceda217..2f58307 100644 --- a/debian/preinst.modules.in +++ b/debian/preinst.modules.in @@ -8,11 +8,9 @@ dir=/lib/modules/@KERNEL@/kernel/drivers/char/drm case "${1}" in install|upgrade) for driver in $drivers; do - if [ -e "$dir/$driver.ko" ]; then - dpkg-divert --package drm-modul...@kernel@ --add --rename \ - --divert $dir/$driver.ko.linux \ - $dir/$driver.ko - fi + dpkg-divert --package drm-modul...@kernel@ --add --rename \ + --divert $dir/$driver.ko.linux \ + $dir/$driver.ko done ;; commit 965393795d66bf137df017c12e543f0fa76e0ef3 Author: Chris Lamb <[email protected]> Date: Wed Feb 4 23:37:41 2009 +0000 New upstream snapshot. Signed-off-by: Chris Lamb <[email protected]> diff --git a/debian/changelog b/debian/changelog index 333a69d..ec17d9a 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,44 @@ +drm-snapshot (2.4.4+git+20090205+8b88036-1) experimental; urgency=low + + * New upstream snapshot: + - 8b88036... modetest: Add syntax to also specify a crtc when setting a + mode. + - 225e7e2... nouveau: install libdrm_nouveau with libdrm + - cb85630... nouveau: bring in new mm api definitions, without the actual + mm code + - 7a389aa... modetest: Use cairo (if available) to paint a better pattern. + - 2c113a1... modetest: Don't sleep when just dumping state, wait for key + for modeset. + - 669fde3... modetest: Handle setting modes on multiple crtcs with one fb. + - d9c55a6... modetest: Use a more interesting test pattern. + - 39755db... Remove the "nv" driver. + - bf46e09... No need to pin buffer anymore in modetest.c + - 854bd8f... nouveau: don't save channel context if it has recently + become invalid + - 408fc85... nouveau: no suspend support for nv50+ + - e37bd24... Clean up README for the current state of kernel module + affairs. + - cbdd627... intel: don't count fences on 965 and later, as they don't + use them. + - 9209c9a... intel: Fix under-counting of fences registers required in + check_aperture. + - 2fa5f28... intel: libdrm support for fence management in execbuf + - 26ca0bc... drm compat: fix euid for >=2.6.28 + - e6a062c... nv50: support chipset NV96 + - 753d4c3... nv04-nv40: correct RAMHT size + - 27fae00... drm: remove drmstat/dristat from linux-core build + - 18d3cc0... bump version to 2.4.4 + - 02445ea... intel: Retry pin ioctl on -EINTR. + - 65b90fb... Don't use DRM_BO_FLAG_NO_MOVE in bufmgr fake. It's a ttm + flag. + - 13ff0e5... Remove drmModeReplaceFb after it was removed from the kernel. + - ac8b330... nv50: ack nsource to prevent continuous protection fault irqs + - badc634... libdrm: add autoconf check for clock_gettime + - ca37077... libdrm: only check for vblank timeout if we caught EINTR + - f4f76a6... libdrm: add timeout handling to drmWaitVBlank + + -- Chris Lamb <[email protected]> Wed, 04 Feb 2009 23:34:10 +0000 + drm-snapshot (2.4.3+git+20090105+a8c5480-1) experimental; urgency=low [ Chris Lamb ] diff --git a/debian/rules b/debian/rules index 09c6797..704748a 100755 --- a/debian/rules +++ b/debian/rules @@ -20,7 +20,7 @@ get-orig-source: git clone git://anongit.freedesktop.org/git/mesa/drm drm-snapshot && \ cd drm-snapshot && ./autogen.sh && make distclean && \ REVISION=$$(git show --pretty=format:"%h" HEAD | head -n1) && \ - PREFIX=drm-snapshot_2.4.3+git+$$(date +%Y%m%d)+$$REVISION && cd .. && \ + PREFIX=drm-snapshot_2.4.4+git+$$(date +%Y%m%d)+$$REVISION && cd .. && \ tar czf $$PREFIX.orig.tar.gz --exclude=autom4te.cache drm-snapshot && \ rm -rf drm-snapshot commit 8b8803695b24d4cb4d041437a4709be06e59471b Author: Kristian Høgsberg <[email protected]> Date: Wed Feb 4 12:17:13 2009 -0500 modetest: Add syntax to also specify a crtc when setting a mode. diff --git a/tests/modetest/modetest.c b/tests/modetest/modetest.c index f1c3bf3..9a82727 100644 --- a/tests/modetest/modetest.c +++ b/tests/modetest/modetest.c @@ -254,6 +254,7 @@ struct connector { char mode_str[64]; struct drm_mode_modeinfo *mode; drmModeEncoder *encoder; + int crtc; }; static void @@ -318,6 +319,9 @@ connector_find_mode(struct connector *c) drmModeFreeEncoder(c->encoder); } + + if (c->crtc == -1) + c->crtc = c->encoder->crtc_id; } #ifdef HAVE_CAIRO @@ -477,9 +481,14 @@ set_mode(struct connector *c, int count) x = 0; for (i = 0; i < count; i++) { + int crtc_id; if (c[i].mode == NULL) continue; - ret = drmModeSetCrtc(fd, c[i].encoder->crtc_id, fb_id, x, 0, + + printf("setting mode %s on connector %d, crtc %d\n", + c[i].mode_str, c[i].id, c[i].crtc); + + ret = drmModeSetCrtc(fd, c[i].crtc, fb_id, x, 0, &c[i].id, 1, c[i].mode); x += c[i].mode->hdisplay; @@ -503,6 +512,7 @@ void usage(char *name) fprintf(stderr, "\t-m\tlist modes\n"); fprintf(stderr, "\t-f\tlist framebuffers\n"); fprintf(stderr, "\t-s <connector_id>:<mode>\tset a mode\n"); + fprintf(stderr, "\t-s <connector_id>@<crtc_id>:<mode>\tset a mode\n"); fprintf(stderr, "\n\tDefault is to dump all info.\n"); exit(0); } @@ -538,13 +548,15 @@ int main(int argc, char **argv) break; case 's': modeset = strdup(optarg); + con_args[count].crtc = -1; if (sscanf(optarg, "%d:%64s", &con_args[count].id, - &con_args[count].mode_str) != 2) + &con_args[count].mode_str) != 2 && + sscanf(optarg, "%...@%d:%64s", + &con_args[count].id, + &con_args[count].crtc, + &con_args[count].mode_str) != 3) usage(argv[0]); - printf("setting mode %s on connector %d\n", - con_args[count].mode_str, - con_args[count].id); count++; break; default: commit 225e7e274f49d5e01fa1ad3fbbb9f1499865fe67 Author: Ben Skeggs <[email protected]> Date: Fri Jan 30 11:25:35 2009 +1000 nouveau: install libdrm_nouveau with libdrm diff --git a/configure.ac b/configure.ac index a65f79e..62d1a29 100644 --- a/configure.ac +++ b/configure.ac @@ -131,6 +131,8 @@ AC_OUTPUT([ Makefile libdrm/Makefile libdrm/intel/Makefile + libdrm/nouveau/Makefile + libdrm/nouveau/libdrm_nouveau.pc shared-core/Makefile tests/Makefile tests/modeprint/Makefile diff --git a/libdrm/Makefile.am b/libdrm/Makefile.am index a568aac..cba4586 100644 --- a/libdrm/Makefile.am +++ b/libdrm/Makefile.am @@ -18,7 +18,7 @@ # IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -SUBDIRS = . intel +SUBDIRS = . intel nouveau libdrm_la_LTLIBRARIES = libdrm.la libdrm_ladir = $(libdir) diff --git a/libdrm/nouveau/Makefile.am b/libdrm/nouveau/Makefile.am new file mode 100644 index 0000000..80fb780 --- /dev/null +++ b/libdrm/nouveau/Makefile.am @@ -0,0 +1,40 @@ +AM_CFLAGS = \ + $(WARN_CFLAGS) \ + -I$(top_srcdir)/libdrm \ + -I$(top_srcdir)/libdrm/nouveau \ + $(PTHREADSTUBS_CFLAGS) \ + -I$(top_srcdir)/shared-core + +libdrm_nouveau_la_LTLIBRARIES = libdrm_nouveau.la +libdrm_nouveau_ladir = $(libdir) +libdrm_nouveau_la_LDFLAGS = -version-number 1:0:0 -no-undefined +libdrm_nouveau_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@ + +libdrm_nouveau_la_SOURCES = \ + nouveau_device.c \ + nouveau_channel.c \ + nouveau_pushbuf.c \ + nouveau_grobj.c \ + nouveau_notifier.c \ + nouveau_bo.c \ + nouveau_resource.c \ + nouveau_dma.c \ + nouveau_fence.c + +libdrm_nouveaucommonincludedir = ${includedir}/nouveau +libdrm_nouveaucommoninclude_HEADERS = \ + nouveau_device.h \ + nouveau_channel.h \ + nouveau_grobj.h \ + nouveau_notifier.h \ + nouveau_pushbuf.h \ + nouveau_bo.h \ + nouveau_resource.h \ + nouveau_class.h + +libdrm_nouveauincludedir = ${includedir}/drm +libdrm_nouveauinclude_HEADERS = \ + nouveau_drmif.h + +pkgconfigdir = @pkgconfigdir@ +pkgconfig_DATA = libdrm_nouveau.pc diff --git a/libdrm/nouveau/libdrm_nouveau.pc.in b/libdrm/nouveau/libdrm_nouveau.pc.in new file mode 100644 index 0000000..9e67a23 --- /dev/null +++ b/libdrm/nouveau/libdrm_nouveau.pc.in @@ -0,0 +1,10 @@ +pref...@prefix@ +exec_pref...@exec_prefix@ +libd...@libdir@ +included...@includedir@ + +Name: libdrm_nouveau +Description: Userspace interface to nouveau kernel DRM services +Version: 0.5 +Libs: -L${libdir} -ldrm_nouveau +Cflags: -I${includedir} -I${includedir}/drm -I${includedir}/nouveau diff --git a/libdrm/nouveau/nouveau_bo.c b/libdrm/nouveau/nouveau_bo.c new file mode 100644 index 0000000..0ab426d --- /dev/null +++ b/libdrm/nouveau/nouveau_bo.c @@ -0,0 +1,838 @@ +/* + * Copyright 2007 Nouveau Project + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF + * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include <stdint.h> +#include <stdlib.h> +#include <errno.h> +#include <assert.h> + +#include <sys/mman.h> +#include <sys/ioctl.h> + +#include "nouveau_private.h" + +int +nouveau_bo_init(struct nouveau_device *dev) +{ + return 0; +} + +void +nouveau_bo_takedown(struct nouveau_device *dev) +{ +} + +static int +nouveau_bo_allocated(struct nouveau_bo_priv *nvbo) +{ + if (nvbo->sysmem || nvbo->handle || (nvbo->flags & NOUVEAU_BO_PIN)) + return 1; + return 0; +} + +static int +nouveau_bo_ualloc(struct nouveau_bo_priv *nvbo) +{ + if (nvbo->user || nvbo->sysmem) { + assert(nvbo->sysmem); + return 0; + } + + nvbo->sysmem = malloc(nvbo->size); + if (!nvbo->sysmem) + return -ENOMEM; + + return 0; +} + +static void +nouveau_bo_ufree(struct nouveau_bo_priv *nvbo) +{ + if (nvbo->sysmem) { + if (!nvbo->user) + free(nvbo->sysmem); + nvbo->sysmem = NULL; + } +} + +static void +nouveau_bo_kfree_nomm(struct nouveau_bo_priv *nvbo) +{ + struct nouveau_device_priv *nvdev = nouveau_device(nvbo->base.device); + struct drm_nouveau_mem_free req; + + if (nvbo->map) { + drmUnmap(nvbo->map, nvbo->size); + nvbo->map = NULL; + } + + req.offset = nvbo->offset; + if (nvbo->domain & NOUVEAU_BO_GART) + req.flags = NOUVEAU_MEM_AGP | NOUVEAU_MEM_PCI; + else + if (nvbo->domain & NOUVEAU_BO_VRAM) + req.flags = NOUVEAU_MEM_FB; + drmCommandWrite(nvdev->fd, DRM_NOUVEAU_MEM_FREE, &req, sizeof(req)); + + nvbo->handle = 0; +} + +static void +nouveau_bo_kfree(struct nouveau_bo_priv *nvbo) +{ + struct nouveau_device_priv *nvdev = nouveau_device(nvbo->base.device); + struct drm_gem_close req; + + if (!nvbo->handle) + return; + + if (!nvdev->mm_enabled) { + nouveau_bo_kfree_nomm(nvbo); + return; + } + + if (nvbo->map) { + munmap(nvbo->map, nvbo->size); + nvbo->map = NULL; + } + + req.handle = nvbo->handle; + nvbo->handle = 0; + ioctl(nvdev->fd, DRM_IOCTL_GEM_CLOSE, &req); +} + +static int +nouveau_bo_kalloc_nomm(struct nouveau_bo_priv *nvbo) +{ + struct nouveau_device_priv *nvdev = nouveau_device(nvbo->base.device); + struct drm_nouveau_mem_alloc req; + int ret; + + if (nvbo->handle) + return 0; + + if (!(nvbo->flags & (NOUVEAU_BO_VRAM|NOUVEAU_BO_GART))) + nvbo->flags |= (NOUVEAU_BO_GART | NOUVEAU_BO_VRAM); + + req.size = nvbo->size; + req.alignment = nvbo->align; + req.flags = 0; + if (nvbo->flags & NOUVEAU_BO_VRAM) + req.flags |= NOUVEAU_MEM_FB; + if (nvbo->flags & NOUVEAU_BO_GART) + req.flags |= (NOUVEAU_MEM_AGP | NOUVEAU_MEM_PCI); + if (nvbo->flags & NOUVEAU_BO_TILED) { + req.flags |= NOUVEAU_MEM_TILE; + if (nvbo->flags & NOUVEAU_BO_ZTILE) + req.flags |= NOUVEAU_MEM_TILE_ZETA; + } + req.flags |= NOUVEAU_MEM_MAPPED; + + ret = drmCommandWriteRead(nvdev->fd, DRM_NOUVEAU_MEM_ALLOC, + &req, sizeof(req)); + if (ret) + return ret; + + nvbo->handle = req.map_handle; + nvbo->size = req.size; + nvbo->offset = req.offset; + if (req.flags & (NOUVEAU_MEM_AGP | NOUVEAU_MEM_PCI)) + nvbo->domain = NOUVEAU_BO_GART; + else + if (req.flags & NOUVEAU_MEM_FB) + nvbo->domain = NOUVEAU_BO_VRAM; + + return 0; +} + +static int +nouveau_bo_kalloc(struct nouveau_bo_priv *nvbo, struct nouveau_channel *chan) +{ + struct nouveau_device_priv *nvdev = nouveau_device(nvbo->base.device); + struct drm_nouveau_gem_new req; + int ret; + + if (nvbo->handle || (nvbo->flags & NOUVEAU_BO_PIN)) + return 0; + + if (!nvdev->mm_enabled) + return nouveau_bo_kalloc_nomm(nvbo); + + req.channel_hint = chan ? chan->id : 0; + + req.size = nvbo->size; + req.align = nvbo->align; + + req.domain = 0; + + if (nvbo->flags & NOUVEAU_BO_VRAM) + req.domain |= NOUVEAU_GEM_DOMAIN_VRAM; + + if (nvbo->flags & NOUVEAU_BO_GART) + req.domain |= NOUVEAU_GEM_DOMAIN_GART; + + if (nvbo->flags & NOUVEAU_BO_TILED) { + req.domain |= NOUVEAU_GEM_DOMAIN_TILE; + if (nvbo->flags & NOUVEAU_BO_ZTILE) + req.domain |= NOUVEAU_GEM_DOMAIN_TILE_ZETA; + } + + if (!req.domain) { + req.domain |= (NOUVEAU_GEM_DOMAIN_VRAM | + NOUVEAU_GEM_DOMAIN_GART); + } + + ret = drmCommandWriteRead(nvdev->fd, DRM_NOUVEAU_GEM_NEW, + &req, sizeof(req)); + if (ret) + return ret; + nvbo->handle = nvbo->base.handle = req.handle; + nvbo->size = req.size; + nvbo->domain = req.domain; + nvbo->offset = req.offset; + + return 0; +} + +static int +nouveau_bo_kmap_nomm(struct nouveau_bo_priv *nvbo) +{ + struct nouveau_device_priv *nvdev = nouveau_device(nvbo->base.device); + int ret; + -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected]

