[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

libdrm: Changes to 'debian-unstable'



 .gitignore                          |    2 
 ChangeLog                           |  405 +
 Makefile.am                         |    4 
 README                              |    9 
 configure.ac                        |   20 
 debian/changelog                    |    8 
 debian/libdrm-intel1.symbols        |    3 
 debian/rules                        |    2 
 libdrm/Makefile.am                  |    6 
 libdrm/intel/Makefile.am            |    1 
 libdrm/intel/intel_bufmgr.c         |    7 
 libdrm/intel/intel_bufmgr.h         |    4 
 libdrm/intel/intel_bufmgr_fake.c    |    1 
 libdrm/intel/intel_bufmgr_gem.c     |  161 
 libdrm/intel/intel_bufmgr_priv.h    |   10 
 libdrm/intel/intel_chipset.h        |   71 
 libdrm/libdrm_lists.h               |    2 
 libdrm/nouveau/Makefile.am          |   40 
 libdrm/nouveau/libdrm_nouveau.pc.in |   10 
 libdrm/nouveau/nouveau_bo.c         |  845 +++
 libdrm/nouveau/nouveau_bo.h         |   97 
 libdrm/nouveau/nouveau_channel.c    |  178 
 libdrm/nouveau/nouveau_channel.h    |   56 
 libdrm/nouveau/nouveau_class.h      | 8006 ++++++++++++++++++++++++++++++++++++
 libdrm/nouveau/nouveau_device.c     |  186 
 libdrm/nouveau/nouveau_device.h     |   31 
 libdrm/nouveau/nouveau_dma.c        |  216 
 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.h                    |   48 
 libdrm/xf86drmMode.c                |    8 
 libdrm/xf86drmMode.h                |  127 
 libdrm_intel.pc.in                  |   10 
 shared-core/i915_drm.h              |    2 
 shared-core/nouveau_drm.h           |  123 
 tests/modetest/Makefile.am          |    6 
 tests/modetest/modetest.c           |  272 -
 47 files changed, 12500 insertions(+), 136 deletions(-)

New commits:
commit a87c1a081b77a29fe3430dbdeb8832fb5c5bad15
Author: Julien Cristau <jcristau@debian.org>
Date:   Wed Feb 25 22:07:03 2009 +0100

    Fix libdrm-intel1.symbols

diff --git a/debian/libdrm-intel1.symbols b/debian/libdrm-intel1.symbols
index 504f730..68c6686 100644
--- a/debian/libdrm-intel1.symbols
+++ b/debian/libdrm-intel1.symbols
@@ -1,4 +1,4 @@
-libdrm_intel.so.1 libdrm2 #MINVER#
+libdrm_intel.so.1 libdrm-intel1 #MINVER#
  drm_intel_bo_alloc@Base 2.4.1
  drm_intel_bo_alloc_for_render@Base 2.4.5
  drm_intel_bo_emit_reloc@Base 2.4.1

commit 9eda40b6f11f16c5f56a15e8a156e8ad8db7e49e
Author: Julien Cristau <jcristau@debian.org>
Date:   Wed Feb 25 21:54:08 2009 +0100

    Symbols and shlibs update

diff --git a/debian/changelog b/debian/changelog
index 10d05e3..2e41d94 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -18,7 +18,8 @@ libdrm (2.4.5-1) UNRELEASED; urgency=low
   * On Linux, let udev create the device files.
   * Let linux-libc-dev provide some drm headers, drop them from libdrm-dev.
     Add dependency on linux-libc-dev >= 2.6.28.
-  * Set libdrm2 and libdrm-intel1 shlibs to 2.4.3.
+  * Set libdrm2 shlibs to 2.4.3, libdrm-intel1 shlibs to 2.4.5.  Update
+    symbols files.
 
  -- Timo Aaltonen <tepsipakki@ubuntu.com>  Thu, 27 Nov 2008 09:33:05 +0200
 
diff --git a/debian/libdrm-intel1.symbols b/debian/libdrm-intel1.symbols
index a3f1053..504f730 100644
--- a/debian/libdrm-intel1.symbols
+++ b/debian/libdrm-intel1.symbols
@@ -1,5 +1,6 @@
 libdrm_intel.so.1 libdrm2 #MINVER#
  drm_intel_bo_alloc@Base 2.4.1
+ drm_intel_bo_alloc_for_render@Base 2.4.5
  drm_intel_bo_emit_reloc@Base 2.4.1
  drm_intel_bo_exec@Base 2.4.1
  drm_intel_bo_fake_alloc_static@Base 2.4.1
diff --git a/debian/rules b/debian/rules
index 09e67e8..a7a7c97 100755
--- a/debian/rules
+++ b/debian/rules
@@ -103,7 +103,7 @@ binary-arch: build install
 	dh_compress
 	dh_fixperms
 	dh_makeshlibs -plibdrm2 -V'libdrm2 (>= 2.4.3)' -- -c4
-	dh_makeshlibs -plibdrm-intel1 -V'libdrm-intel1 (>= 2.4.3)' -- -c4
+	dh_makeshlibs -plibdrm-intel1 -V'libdrm-intel1 (>= 2.4.5)' -- -c4
 	dh_installdeb
 	dh_shlibdeps
 	dh_gencontrol

commit 138543b85b16917585149f43fce3aa72e35807e5
Author: Julien Cristau <jcristau@debian.org>
Date:   Wed Feb 25 21:46:49 2009 +0100

    Update changelogs

diff --git a/ChangeLog b/ChangeLog
index 033af3d..64deb58 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,408 @@
+commit a773ce1db8801fcbbdb55b54172c9cd48b92e2d7
+Author: Eric Anholt <eric@anholt.net>
+Date:   Mon Feb 23 13:30:20 2009 -0800
+
+    Add libdrm_intel.pc by popular demand.
+
+commit 6feac49398d0f037103a4ae3d5a512badeed61fb
+Author: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
+Date:   Mon Feb 23 15:54:18 2009 -0500
+
+    Fix DRM_CAS() on Alpha. (#16549)
+
+commit 9fc85b4084b69fefab3dbdf1f6cf97ccb47c963a
+Author: Kristian Høgsberg <krh@redhat.com>
+Date:   Mon Feb 23 15:08:03 2009 -0500
+
+    modetest: Print names of properties.
+
+commit 4a0d19ef4f210cea9e60c5acc355df03723ef808
+Author: Pekka Paalanen <pq@iki.fi>
+Date:   Sun Feb 22 12:40:47 2009 +0200
+
+    Fix fix distcheck for optional nouveau stuff.
+    
+    Tylo.
+    
+    Signed-off-by: Pekka Paalanen <pq@iki.fi>
+
+commit 4d5341340fb6df22fffa7d4a214c54c085a1b1cf
+Author: Eric Anholt <eric@anholt.net>
+Date:   Sat Feb 21 10:01:40 2009 -0800
+
+    Fix distcheck for optional nouveau stuff.
+
+commit 2f1cdf79a7b7679f2602f27f18a0737f6e40e490
+Author: Eric Anholt <eric@anholt.net>
+Date:   Sat Feb 21 09:57:19 2009 -0800
+
+    Bump version to 2.4.5 for new API additions.
+
+commit 72abe983adfe7e8dcdcec11f1bc11d0b3daae063
+Author: Eric Anholt <eric@anholt.net>
+Date:   Wed Feb 18 13:06:35 2009 -0800
+
+    intel: Add a new bufmgr alloc function to get BOs ready for rendering to.
+    
+    This avoids using the oldest BO in the BO cache and waiting for it to be
+    idle before we turn around and render to it with the GPU.  Thanks to
+    Chris Wilson for pointing out how silly we were being.
+
+commit a1345338feb7af25c0a9fe02ec16c2b9cce83a9e
+Author: Ben Skeggs <bskeggs@redhat.com>
+Date:   Fri Feb 20 09:25:35 2009 +1000
+
+    libdrm/nouveau: free drmVersion after we're done with it
+
+commit 18f2fcf5aa299fe3b7b56af37e7eefe78c921f61
+Author: Ben Skeggs <bskeggs@redhat.com>
+Date:   Thu Feb 19 19:40:19 2009 +1000
+
+    libdrm/nouveau: fix dma debugging
+
+commit 6a31b445fa494b992d5ddb115dd022058b787fc2
+Author: Pekka Paalanen <pq@iki.fi>
+Date:   Wed Feb 18 22:46:40 2009 +0200
+
+    nouveau: support backlight only when kernel does
+    
+    Loading nouveau.ko would fail with unknown symbols, if the backlight
+    class device support is not provided in the kernel. Let's make the
+    backlight support dependant on the kernel configuration.
+    
+    This is a bit ugly, the proper way would be to check for the config in
+    Makefile.kernel whether to build nouveau_backlight.o at all, and if not,
+    nouveau_drv.h should provide the stubs.
+    
+    Signed-off-by: Pekka Paalanen <pq@iki.fi>
+
+commit 25c60cfeca16f2bce38dbf32a57f1edc04c23a19
+Author: Matthew Garrett <mjg59@srcf.ucam.org>
+Date:   Wed Feb 18 13:21:26 2009 +0000
+
+    nv40, nv50: fix backlight build for <2.6.29 kernels
+    
+    Signed-off-by: Matthew Garrett <mjg59@srcf.ucam.org>
+    Signed-off-by: Pekka Paalanen <pq@iki.fi>
+
+commit 96ce587e8b915afeac38e5f547ba95803c1780f2
+Author: Matthew Garrett <mjg59@srcf.ucam.org>
+Date:   Wed Feb 18 02:08:25 2009 +0000
+
+    nouveau: Add in-kernel backlight control support
+    
+    Several nvidia-based systems don't support backlight control via the
+    standard ACPI control mechanisms. Instead, it's necessary for the driver
+    to modify the backlight control registers directly. This patch adds
+    support for determining whether the registers appear to be in use, and
+    if so registers a kernel backlight device to control them. The backlight
+    can then be controlled via existing userspace tools.
+    
+    Signed-off-by: Matthew Garrett <mjg@redhat.com>
+    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
+
+commit 0054e14793e585ec0d8e95e3d7b82cbf1a684af8
+Author: Pekka Paalanen <pq@iki.fi>
+Date:   Sat Feb 14 22:22:39 2009 +0200
+
+    drm_compat: remove kmap_atomic_prot_pfn()
+    
+    This function is unused, and yet creates build problems: the symbol
+    init_mm is not exported by the latest -rc kernels and I don't believe it
+    ever will be. Even CONFIG_UNUSED_SYMBOLS does not provide it anymore.
+    
+    If this function is needed in the future, it needs to be reinvented in
+    any case. So remove it.
+    
+    Signed-off-by: Pekka Paalanen <pq@iki.fi>
+
+commit e32aa6226fe98d8342647acf34decd3699eff5e4
+Author: Pekka Paalanen <pq@iki.fi>
+Date:   Mon Feb 16 20:43:02 2009 +0200
+
+    Remove i915 driver sources from linux-core
+    
+    Intel developers have stated, that their DRM development continues
+    elsewhere in some Linux kernel trees. This makes the code in drm.git
+    just dead weight. This removal allows further cleanup of compatibility
+    code.
+    
+    shared-core and bsd-core are left untouched this time.
+    
+    Signed-off-by: Pekka Paalanen <pq@iki.fi>
+    Acked-by: Eric Anholt <eric@anholt.net>
+
+commit 709b82e1a5971fa58d627912402aa14a6d231cdd
+Author: Eric Anholt <eric@anholt.net>
+Date:   Sun Feb 15 18:35:03 2009 -0800
+
+    intel: Clear ioctl parameter outvalues and pads that confuse valgrind.
+    
+    The minor CPU cost here is probably outweighed by bothering us with noise in
+    the tool.
+
+commit 084e143d0c82f5bf6e4ccc8c84a01307c820ca93
+Author: Ben Skeggs <skeggsb@gmail.com>
+Date:   Sun Feb 15 22:06:18 2009 +1000
+
+    nv40: fail completely if we don't have a ctxprog for the chipset
+
+commit a4ac60a10239bb6d19f6d89f2c044e9b7b29837c
+Author: Ben Skeggs <skeggsb@gmail.com>
+Date:   Sun Feb 15 21:52:19 2009 +1000
+
+    nv50: context info for chipset 0xa0
+
+commit 7e5c512104c3ae9b4ddd121f6bbf9464f8d73181
+Author: Ben Skeggs <skeggsb@gmail.com>
+Date:   Wed Feb 11 14:18:03 2009 +1000
+
+    libdrm: make libdrm_nouveau conditional, disabled by default
+    
+    libdrm isn't supposed to ship APIs not present in a released kernel.
+
+commit eb78c53aa1a980e60c0dd1f2d0d2f04cb9cb2622
+Author: Jakob Bornecrantz <jakob@vmware.com>
+Date:   Wed Feb 11 16:43:20 2009 +0100
+
+    mode: Make xfdrmMode.[c|h] not depend on drm_mode.h
+
+commit 2d2f105f79921025bce1b9015378612328d2f06e
+Author: Pekka Paalanen <pq@iki.fi>
+Date:   Wed Feb 4 21:44:50 2009 +0200
+
+    nouveau: fix type warnings: void* arith, un/signed
+    
+    nouveau_notifier.c had two places where void* was used in arithmetic,
+    fixed by using char*.
+    
+    nouveau_dma_wait(), nouveau_notifier_wait_status() and
+    nouveau_resource_alloc() had signed/unsigned comparison warnings, fixed
+    by changing the function parameter into an unsigned type.
+    
+    Signed-off-by: Pekka Paalanen <pq@iki.fi>
+
+commit bc92c0edf33f3f38275f6aa4e0639b3ddeef68ca
+Author: Ben Skeggs <skeggsb@gmail.com>
+Date:   Wed Feb 11 10:48:36 2009 +1000
+
+    drm/nv50: fix nv9x chipsets
+    
+    NVIDIA do this fun little sequence after updating the PRAMIN page tables.
+    
+    On 9xxx chips, none of the PRAMIN BAR bindings (except the initial one)
+    worked, hence the majority of the setup needed to create a channel
+    ended up in the wrong place, causing all sorts of fun.
+    
+    This is done by NVIDIA on nv8x chips also, so we'll do it for them too,
+    even though they appear to work without it.
+
+commit 7bbd605a21200e5e4beb94f261aefe30c4e7853d
+Author: Ben Skeggs <skeggsb@gmail.com>
+Date:   Wed Feb 11 10:12:43 2009 +1000
+
+    drm/nv50: add context info for nv98
+    
+    It won't work yet, just like the other 9xxx chips.  Real soon now :)
+
+commit efcef2c2bcd7a8ea16381cc8d6ae06fff1bc3483
+Author: Ben Skeggs <skeggsb@gmail.com>
+Date:   Tue Feb 10 09:05:09 2009 +1000
+
+    drm/nv50: use a slightly different initial context for nv96
+    
+    I'm not 100% sure that the nv94 one we were using won't work.  The context
+    layouts are identical (well.. same ctxprog, so of course!), only a couple
+    of registers differ.  But, be safe until we actually get some 9xxx chips
+    working.
+
+commit f43039c52c7f27b61316beba5863968996a05bc0
+Author: Ben Skeggs <skeggsb@gmail.com>
+Date:   Tue Feb 10 09:02:17 2009 +1000
+
+    drm/nv50: correct ramfc pointer in channel header
+    
+    Suprisingly the card still worked without this...
+
+commit 889b811e319ab80a4714854a0c0b242b5e36e0ca
+Author: Ben Skeggs <skeggsb@gmail.com>
+Date:   Tue Feb 10 08:57:21 2009 +1000
+
+    drm/nv50: let the card handle the initial context switch
+    
+    Our PFIFO/PGRAPH context save/load functions don't really work well
+    (at all?) on nv5x yet.  Depending on what random state the card is
+    in before the drm loads, fbcon probably won't work correctly.
+    
+    Luckily we've setup the GPU in such a way that it'll actually do a
+    hw context switch for the first context.  Not sure of how successful
+    this'd be currently on the older chips (actually, pretty sure it won't
+    work), so NV50 only for now.
+
+commit 9c8d634e687a5a5b5d314b3fd5b34cc17a217139
+Author: Stuart Bennett <stuart@freedesktop.org>
+Date:   Sat Feb 7 21:20:17 2009 +0000
+
+    nouveau: don't try to traverse non-existent lists
+    
+    Fixes nouveau_ioctl_mem_free Oops
+
+commit 97fdadee6a79f9406a55c235ee46104814321152
+Author: Ben Skeggs <skeggsb@gmail.com>
+Date:   Thu Feb 5 23:03:29 2009 +1000
+
+    nouveau: fix some issues where buffer objects never get freed
+
+commit 8b8803695b24d4cb4d041437a4709be06e59471b
+Author: Kristian Høgsberg <krh@redhat.com>
+Date:   Wed Feb 4 12:17:13 2009 -0500
+
+    modetest: Add syntax to also specify a crtc when setting a mode.
+
+commit 225e7e274f49d5e01fa1ad3fbbb9f1499865fe67
+Author: Ben Skeggs <skeggsb@gmail.com>
+Date:   Fri Jan 30 11:25:35 2009 +1000
+
+    nouveau: install libdrm_nouveau with libdrm
+
+commit cb85630c02ddb46f168064befb2296d46b69f57a
+Author: Ben Skeggs <skeggsb@gmail.com>
+Date:   Fri Jan 30 11:18:54 2009 +1000
+
+    nouveau: bring in new mm api definitions, without the actual mm code
+    
+    Use of the new bits is guarded with a mm_enabled=0 hardcode.
+
+commit 7a389aab86bde183de8806878b8cf055f662ee73
+Author: Kristian Høgsberg <krh@redhat.com>
+Date:   Tue Feb 3 15:03:41 2009 -0500
+
+    modetest: Use cairo (if available) to paint a better pattern.
+
+commit 2c113a1b159f57ab94b54316ece49c677cfe04ce
+Author: Kristian Høgsberg <krh@redhat.com>
+Date:   Tue Feb 3 14:02:50 2009 -0500
+
+    modetest: Don't sleep when just dumping state, wait for key for modeset.
+
+commit 669fde3472ae71c55cc7526e3b3bd6fe00d6a5a5
+Author: Kristian Høgsberg <krh@redhat.com>
+Date:   Tue Feb 3 14:00:00 2009 -0500
+
+    modetest: Handle setting modes on multiple crtcs with one fb.
+
+commit d9c55a6becb530dcf11bc980cb6b31843be0b8c2
+Author: Kristian Høgsberg <krh@redhat.com>
+Date:   Tue Feb 3 13:26:22 2009 -0500
+
+    modetest: Use a more interesting test pattern.
+
+commit 39755db856794a4d0481d66b46b1b86e46a39b39
+Author: Stephane Marchesin <marchesin@icps.u-strasbg.fr>
+Date:   Mon Feb 2 23:47:11 2009 +0100
+
+    Remove the "nv" driver.
+
+commit bf46e0941fc6d342ad38057f23c8a74ac03b72f0
+Author: Kristian Høgsberg <krh@redhat.com>
+Date:   Mon Feb 2 15:47:09 2009 -0500
+
+    No need to pin buffer anymore in modetest.c
+
+commit 854bd8f2cae8389d1152993a1d751687632df323
+Author: Stuart Bennett <sb476@cam.ac.uk>
+Date:   Thu Jan 29 23:39:50 2009 +0000
+
+    nouveau: don't save channel context if it has recently become invalid
+    
+    Bug exposed by DDX change d9da090c
+
+commit 408fc85a21689ee9859b64cb90902242bbc7e314
+Author: Stuart Bennett <sb476@cam.ac.uk>
+Date:   Sat Oct 25 20:59:38 2008 +0100
+
+    nouveau: no suspend support for nv50+
+
+commit e37bd24d3c99319b372517c2ddb77bfb4829f1df
+Author: Eric Anholt <eric@anholt.net>
+Date:   Tue Jan 27 18:00:45 2009 -0800
+
+    Clean up README for the current state of kernel module affairs.
+    
+    Bug #19608.
+
+commit cbdd6272c04f487c8a63b595829d2d551e2b58f8
+Author: Eric Anholt <eric@anholt.net>
+Date:   Tue Jan 27 17:16:11 2009 -0800
+
+    intel: don't count fences on 965 and later, as they don't use them.
+
+commit 9209c9a653e40d66435fbee7dde7450d5e470e03
+Author: Eric Anholt <eric@anholt.net>
+Date:   Tue Jan 27 16:54:11 2009 -0800
+
+    intel: Fix under-counting of fences registers required in check_aperture.
+
+commit 2fa5f28eeef4ce13a48c1998856a115c7e4161ac
+Author: Jesse Barnes <jbarnes@virtuousgeek.org>
+Date:   Fri Jan 23 14:13:45 2009 -0800
+
+    intel: libdrm support for fence management in execbuf
+    
+    This patch tries to use the available fence count to figure out whether a
+    given batch can succeed or not (just like the aperture check).
+    
+    Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
+    Signed-off-by: Eric Anholt <eric@anholt.net>
+
+commit 26ca0bca9bd5e23b1d31bc6dfb6d58b62143447b
+Author: Pekka Paalanen <pq@iki.fi>
+Date:   Tue Jan 27 22:39:50 2009 +0200
+
+    drm compat: fix euid for >=2.6.28
+    
+    drm_fops.c reads the current process' EUID directly from task_struct.
+    Apparently starting in 2.6.28-rc4 this fails to build.
+    
+    In Linus' tree, commit b6dff3ec5e116e3af6f537d4caedcad6b9e5082a
+    "CRED: Separate task security context from task_struct"
+    moves the euid field from task_struct to another struct.
+    
+    Earlier commit 9e2b2dc4133f65272a6d3c5dcb2ce63f8a87cae9
+    "CRED: Introduce credential access wrappers" implements the wrapper
+    macros to access e.g. euid. This is in 2.6.27-rc4, and this contains the
+    definition of current_euid() that will be used in the DRM compatibility header
+    for kernels before 2.6.27. That commit also creates <linux/cred.h>, which
+    contains the upstream definition of current_euid().
+    
+    drm_fops.c is fixed to use current_euid(), and drm_compat.h will offer
+    the compatibility definition for kernels <2.6.27.
+    
+    Signed-off-by: Pekka Paalanen <pq@iki.fi>
+
+commit e6a062c21a73ac4ab420648e78c6fe1798de6cbd
+Author: Ben Skeggs <skeggsb@gmail.com>
+Date:   Tue Jan 27 08:36:33 2009 +1000
+
+    nv50: support chipset NV96
+    
+    ctxprog seen in okias' trace identical to one we use on NV94, assuming
+    the initial context values for NV94 will work here too.
+
+commit 753d4c39ff87f6b73dac72db4444b7627f39d2a9
+Author: Ben Skeggs <skeggsb@gmail.com>
+Date:   Thu Nov 13 13:04:21 2008 +1100
+
+    nv04-nv40: correct RAMHT size
+
+commit 27fae006853647ad0087067adc4eaa8d4ed4594a
+Author: Dave Airlie <airlied@linux.ie>
+Date:   Mon Jan 19 06:46:23 2009 +1000
+
+    drm: remove drmstat/dristat from linux-core build
+    
+    pointed out by pq
+
 commit 18d3cc076b53f2032eed1f9a4b21947f4cb9e4e7
 Author: Eric Anholt <eric@anholt.net>
 Date:   Wed Jan 14 16:11:32 2009 -0800
diff --git a/debian/changelog b/debian/changelog
index ac4cb6e..10d05e3 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,7 +1,8 @@
-libdrm (2.4.4-1) UNRELEASED; urgency=low
+libdrm (2.4.5-1) UNRELEASED; urgency=low
 
-  [ Timo Aaltonen ]
   * New upstream release. (closes: #505740)
+
+  [ Timo Aaltonen ]
   * debian/rules:
     -Run autoreconf at build time, build-depend on automake and libtool.
      (closes: #482727)

commit a773ce1db8801fcbbdb55b54172c9cd48b92e2d7
Author: Eric Anholt <eric@anholt.net>
Date:   Mon Feb 23 13:30:20 2009 -0800

    Add libdrm_intel.pc by popular demand.

diff --git a/.gitignore b/.gitignore
index bd78034..ba5440b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -36,6 +36,8 @@ i915.kld
 install-sh
 libdrm/config.h.in
 libdrm.pc
+libdrm_intel.pc
+libdrm_nouveau.pc
 libtool
 ltmain.sh
 mach64.kld
diff --git a/Makefile.am b/Makefile.am
index 5b1ae60..e105edd 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -25,6 +25,6 @@ AUTOMAKE_OPTIONS = foreign
 SUBDIRS = libdrm shared-core tests
 
 pkgconfigdir = @pkgconfigdir@
-pkgconfig_DATA = libdrm.pc
+pkgconfig_DATA = libdrm.pc libdrm_intel.pc
 
-EXTRA_DIST = libdrm.pc.in
+EXTRA_DIST = libdrm.pc.in libdrm_intel.pc.in
diff --git a/configure.ac b/configure.ac
index b37af72..04933c3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -143,4 +143,5 @@ AC_OUTPUT([
 	tests/Makefile
 	tests/modeprint/Makefile
 	tests/modetest/Makefile
-	libdrm.pc])
+	libdrm.pc
+	libdrm_intel.pc])
diff --git a/libdrm_intel.pc.in b/libdrm_intel.pc.in
new file mode 100644
index 0000000..ea71cc3
--- /dev/null
+++ b/libdrm_intel.pc.in
@@ -0,0 +1,10 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: libdrm
+Description: Userspace interface to kernel DRM services
+Version: @PACKAGE_VERSION@
+Libs: -L${libdir} -ldrm -ldrm_intel
+Cflags: -I${includedir} -I${includedir}/drm

commit 6feac49398d0f037103a4ae3d5a512badeed61fb
Author: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
Date:   Mon Feb 23 15:54:18 2009 -0500

    Fix DRM_CAS() on Alpha. (#16549)

diff --git a/libdrm/xf86drm.h b/libdrm/xf86drm.h
index f9dd1bf..c1d173c 100644
--- a/libdrm/xf86drm.h
+++ b/libdrm/xf86drm.h
@@ -325,28 +325,28 @@ typedef struct _drmSetVersion {
 
 #elif defined(__alpha__)
 
-#define	DRM_CAS(lock, old, new, ret) 		\
- 	do {					\
- 		int old32;                      \
- 		int cur32;			\
- 		__asm__ __volatile__(		\
- 		"       mb\n"			\
- 		"       zap   %4, 0xF0, %0\n"   \
- 		"       ldl_l %1, %2\n"		\
- 		"       zap   %1, 0xF0, %1\n"   \
-                "       cmpeq %0, %1, %1\n"	\
-                "       beq   %1, 1f\n"		\
- 		"       bis   %5, %5, %1\n"	\
-                "       stl_c %1, %2\n"		\
-                "1:     xor   %1, 1, %1\n"	\
-                "       stl   %1, %3"		\
-                : "=r" (old32),                 \
-		  "=&r" (cur32),		\
-                   "=m" (__drm_dummy_lock(lock)),\
-                   "=m" (ret)			\
- 		: "r" (old),			\
- 		  "r" (new));			\
- 	} while(0)
+#define	DRM_CAS(lock, old, new, ret)		\
+	do {					\
+		int tmp, old32;			\
+		__asm__ __volatile__(		\
+		"	addl	$31, %5, %3\n"	\
+		"1:	ldl_l	%0, %2\n"	\
+		"	cmpeq	%0, %3, %1\n"	\
+		"	beq	%1, 2f\n"	\
+		"	mov	%4, %0\n"	\
+		"	stl_c	%0, %2\n"	\
+		"	beq	%0, 3f\n"	\
+		"	mb\n"			\
+		"2:	cmpeq	%1, 0, %1\n"	\
+		".subsection 2\n"		\
+		"3:	br	1b\n"		\
+		".previous"			\
+		: "=&r"(tmp), "=&r"(ret),	\
+		  "=m"(__drm_dummy_lock(lock)),	\
+		  "=&r"(old32)			\
+		: "r"(new), "r"(old)		\
+		: "memory");			\
+	} while (0)
 
 #elif defined(__sparc__)
 
@@ -429,7 +429,9 @@ do {	register unsigned int __old __asm("o0");		\
 #define DRM_CAS(lock,old,new,ret) do { ret=1; } while (0) /* FAST LOCK FAILS */
 #endif
 
-#if defined(__alpha__) || defined(__powerpc__)
+#if defined(__alpha__)
+#define DRM_CAS_RESULT(_result)		long _result
+#elif defined(__powerpc__)
 #define DRM_CAS_RESULT(_result)		int _result
 #else
 #define DRM_CAS_RESULT(_result)		char _result

commit 9fc85b4084b69fefab3dbdf1f6cf97ccb47c963a
Author: Kristian Høgsberg <krh@redhat.com>
Date:   Mon Feb 23 15:08:03 2009 -0500

    modetest: Print names of properties.

diff --git a/tests/modetest/modetest.c b/tests/modetest/modetest.c
index 9a82727..58e0e4c 100644
--- a/tests/modetest/modetest.c
+++ b/tests/modetest/modetest.c
@@ -138,7 +138,7 @@ void dump_encoders(void)
 	printf("\n");
 }
 
-void dump_mode(struct drm_mode_modeinfo *mode)
+void dump_mode(drmModeModeInfo *mode)
 {
 	printf("  %s %.02f %d %d %d %d %d %d %d %d\n",
 	       mode->name,
@@ -153,6 +153,19 @@ void dump_mode(struct drm_mode_modeinfo *mode)
 	       mode->vtotal);
 }
 
+static void
+dump_props(drmModeConnector *connector)
+{
+	drmModePropertyPtr props;
+	int i;
+
+	for (i = 0; i < connector->count_props; i++) {
+		props = drmModeGetProperty(fd, connector->props[i]);
+		printf("\t%s, flags %d\n", props->name, props->flags);
+		drmModeFreeProperty(props);
+	}
+}
+
 void dump_connectors(void)
 {
 	drmModeConnector *connector;
@@ -187,6 +200,9 @@ void dump_connectors(void)
 			dump_mode(&connector->modes[j]);
 
 		drmModeFreeConnector(connector);
+
+		printf("  props:\n");
+		dump_props(connector);
 	}
 	printf("\n");
 }
@@ -252,7 +268,7 @@ void dump_framebuffers(void)
 struct connector {
 	int id;
 	char mode_str[64];
-	struct drm_mode_modeinfo *mode;
+	drmModeModeInfo *mode;
 	drmModeEncoder *encoder;
 	int crtc;
 };	

commit 4a0d19ef4f210cea9e60c5acc355df03723ef808
Author: Pekka Paalanen <pq@iki.fi>
Date:   Sun Feb 22 12:40:47 2009 +0200

    Fix fix distcheck for optional nouveau stuff.
    
    Tylo.
    
    Signed-off-by: Pekka Paalanen <pq@iki.fi>

diff --git a/configure.ac b/configure.ac
index c1ee938..b37af72 100644
--- a/configure.ac
+++ b/configure.ac
@@ -123,7 +123,7 @@ if test "x$UDEV" = xyes; then
 	AC_DEFINE(UDEV, 1, [Have UDEV support])
 fi
 
-AM_CONDITIONAL(HAVE_NOUVEAU, [text "x$NOUVEAU" = xyes])
+AM_CONDITIONAL(HAVE_NOUVEAU, [test "x$NOUVEAU" = xyes])
 
 PKG_CHECK_MODULES(CAIRO, cairo, [HAVE_CAIRO=yes], [HAVE_CAIRO=no])
 if test "x$HAVE_CAIRO" = xyes; then

commit 4d5341340fb6df22fffa7d4a214c54c085a1b1cf
Author: Eric Anholt <eric@anholt.net>
Date:   Sat Feb 21 10:01:40 2009 -0800

    Fix distcheck for optional nouveau stuff.

diff --git a/configure.ac b/configure.ac
index 041374b..c1ee938 100644
--- a/configure.ac
+++ b/configure.ac
@@ -123,10 +123,7 @@ if test "x$UDEV" = xyes; then
 	AC_DEFINE(UDEV, 1, [Have UDEV support])
 fi
 
-if test "x$NOUVEAU" = xyes; then
-NOUVEAU_SUBDIR="nouveau"
-AC_SUBST(NOUVEAU_SUBDIR)
-fi
+AM_CONDITIONAL(HAVE_NOUVEAU, [text "x$NOUVEAU" = xyes])
 
 PKG_CHECK_MODULES(CAIRO, cairo, [HAVE_CAIRO=yes], [HAVE_CAIRO=no])
 if test "x$HAVE_CAIRO" = xyes; then
diff --git a/libdrm/Makefile.am b/libdrm/Makefile.am
index 76145bc..4c066e0 100644
--- a/libdrm/Makefile.am
+++ b/libdrm/Makefile.am
@@ -18,7 +18,11 @@
 #  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 @NOUVEAU_SUBDIR@
+if HAVE_NOUVEAU
+NOUVEAU_SUBDIR = nouveau
+endif
+
+SUBDIRS = . intel $(NOUVEAU_SUBDIR)
 
 libdrm_la_LTLIBRARIES = libdrm.la
 libdrm_ladir = $(libdir)

commit 2f1cdf79a7b7679f2602f27f18a0737f6e40e490
Author: Eric Anholt <eric@anholt.net>
Date:   Sat Feb 21 09:57:19 2009 -0800

    Bump version to 2.4.5 for new API additions.

diff --git a/configure.ac b/configure.ac
index dbead72..041374b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -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.4.4, [dri-devel@lists.sourceforge.net], libdrm)
+AC_INIT([libdrm], 2.4.5, [dri-devel@lists.sourceforge.net], libdrm)
 AC_CONFIG_SRCDIR([Makefile.am])
 AM_INIT_AUTOMAKE([dist-bzip2])
 

commit 72abe983adfe7e8dcdcec11f1bc11d0b3daae063
Author: Eric Anholt <eric@anholt.net>
Date:   Wed Feb 18 13:06:35 2009 -0800

    intel: Add a new bufmgr alloc function to get BOs ready for rendering to.
    
    This avoids using the oldest BO in the BO cache and waiting for it to be
    idle before we turn around and render to it with the GPU.  Thanks to
    Chris Wilson for pointing out how silly we were being.

diff --git a/libdrm/intel/intel_bufmgr.c b/libdrm/intel/intel_bufmgr.c
index 188eac2..25a6828 100644
--- a/libdrm/intel/intel_bufmgr.c
+++ b/libdrm/intel/intel_bufmgr.c
@@ -51,6 +51,13 @@ drm_intel_bo_alloc(drm_intel_bufmgr *bufmgr, const char *name,
    return bufmgr->bo_alloc(bufmgr, name, size, alignment);
 }
 
+drm_intel_bo *
+drm_intel_bo_alloc_for_render(drm_intel_bufmgr *bufmgr, const char *name,
+			      unsigned long size, unsigned int alignment)
+{
+   return bufmgr->bo_alloc_for_render(bufmgr, name, size, alignment);
+}
+
 void
 drm_intel_bo_reference(drm_intel_bo *bo)
 {
diff --git a/libdrm/intel/intel_bufmgr.h b/libdrm/intel/intel_bufmgr.h
index e8c2e06..111d2af 100644
--- a/libdrm/intel/intel_bufmgr.h
+++ b/libdrm/intel/intel_bufmgr.h
@@ -75,6 +75,10 @@ struct _drm_intel_bo {
 
 drm_intel_bo *drm_intel_bo_alloc(drm_intel_bufmgr *bufmgr, const char *name,
 				 unsigned long size, unsigned int alignment);
+drm_intel_bo *drm_intel_bo_alloc_for_render(drm_intel_bufmgr *bufmgr,
+					    const char *name,
+					    unsigned long size,
+					    unsigned int alignment);
 void drm_intel_bo_reference(drm_intel_bo *bo);
 void drm_intel_bo_unreference(drm_intel_bo *bo);
 int drm_intel_bo_map(drm_intel_bo *bo, int write_enable);
diff --git a/libdrm/intel/intel_bufmgr_fake.c b/libdrm/intel/intel_bufmgr_fake.c
index 6c21625..e7cec35 100644
--- a/libdrm/intel/intel_bufmgr_fake.c
+++ b/libdrm/intel/intel_bufmgr_fake.c
@@ -1503,6 +1503,7 @@ drm_intel_bufmgr_fake_init(int fd,
 
    /* Hook in methods */
    bufmgr_fake->bufmgr.bo_alloc = drm_intel_fake_bo_alloc;
+   bufmgr_fake->bufmgr.bo_alloc_for_render = drm_intel_fake_bo_alloc;
    bufmgr_fake->bufmgr.bo_reference = drm_intel_fake_bo_reference;
    bufmgr_fake->bufmgr.bo_unreference = drm_intel_fake_bo_unreference;
    bufmgr_fake->bufmgr.bo_map = drm_intel_fake_bo_map;
diff --git a/libdrm/intel/intel_bufmgr_gem.c b/libdrm/intel/intel_bufmgr_gem.c
index 51641b7..6ddecf4 100644
--- a/libdrm/intel/intel_bufmgr_gem.c
+++ b/libdrm/intel/intel_bufmgr_gem.c
@@ -52,6 +52,7 @@
 #include <sys/types.h>
 
 #include "errno.h"
+#include "libdrm_lists.h"
 #include "intel_bufmgr.h"
 #include "intel_bufmgr_priv.h"
 #include "intel_chipset.h"
@@ -67,7 +68,8 @@
 typedef struct _drm_intel_bo_gem drm_intel_bo_gem;
 
 struct drm_intel_gem_bo_bucket {
-   drm_intel_bo_gem *head, **tail;
+   drmMMListHead head;
+
    /**
     * Limit on the number of entries in this bucket.
     *
@@ -145,8 +147,8 @@ struct _drm_intel_bo_gem {
     /** Mapped address for the buffer, saved across map/unmap cycles */
     void *virtual;
 
-    /** free list */
-    drm_intel_bo_gem *next;
+    /** BO cache list */
+    drmMMListHead head;
 
     /**
      * Boolean of whether this BO and its children have been included in
@@ -323,8 +325,9 @@ drm_intel_setup_reloc_list(drm_intel_bo *bo)
 }
 
 static drm_intel_bo *
-drm_intel_gem_bo_alloc(drm_intel_bufmgr *bufmgr, const char *name,
-		   unsigned long size, unsigned int alignment)
+drm_intel_gem_bo_alloc_internal(drm_intel_bufmgr *bufmgr, const char *name,
+				unsigned long size, unsigned int alignment,
+				int for_render)
 {
     drm_intel_bufmgr_gem *bufmgr_gem = (drm_intel_bufmgr_gem *)bufmgr;
     drm_intel_bo_gem *bo_gem;
@@ -353,19 +356,35 @@ drm_intel_gem_bo_alloc(drm_intel_bufmgr *bufmgr, const char *name,
     /* Get a buffer out of the cache if available */
     if (bucket != NULL && bucket->num_entries > 0) {
 	struct drm_i915_gem_busy busy;
-	
-	bo_gem = bucket->head;
-	memset(&busy, 0, sizeof(busy));
-        busy.handle = bo_gem->gem_handle;
-
-        ret = ioctl(bufmgr_gem->fd, DRM_IOCTL_I915_GEM_BUSY, &busy);
-        alloc_from_cache = (ret == 0 && busy.busy == 0);
-
-	if (alloc_from_cache) {
-	    bucket->head = bo_gem->next;
-	    if (bo_gem->next == NULL)
-		bucket->tail = &bucket->head;
+
+	if (for_render) {
+	    /* Allocate new render-target BOs from the tail (MRU)
+	     * of the list, as it will likely be hot in the GPU cache
+	     * and in the aperture for us.
+	     */
+	    bo_gem = DRMLISTENTRY(drm_intel_bo_gem, bucket->head.prev, head);
+	    DRMLISTDEL(&bo_gem->head);
 	    bucket->num_entries--;
+	    alloc_from_cache = 1;
+	} else {
+	    /* For non-render-target BOs (where we're probably going to map it
+	     * first thing in order to fill it with data), check if the
+	     * last BO in the cache is unbusy, and only reuse in that case.
+	     * Otherwise, allocating a new buffer is probably faster than
+	     * waiting for the GPU to finish.
+	     */
+	    bo_gem = DRMLISTENTRY(drm_intel_bo_gem, bucket->head.next, head);
+
+	    memset(&busy, 0, sizeof(busy));
+	    busy.handle = bo_gem->gem_handle;
+
+	    ret = ioctl(bufmgr_gem->fd, DRM_IOCTL_I915_GEM_BUSY, &busy);
+	    alloc_from_cache = (ret == 0 && busy.busy == 0);
+
+	    if (alloc_from_cache) {
+		DRMLISTDEL(&bo_gem->head);
+		bucket->num_entries--;
+	    }
 	}
     }
     pthread_mutex_unlock(&bufmgr_gem->lock);
@@ -406,6 +425,20 @@ drm_intel_gem_bo_alloc(drm_intel_bufmgr *bufmgr, const char *name,
     return &bo_gem->bo;
 }
 
+static drm_intel_bo *
+drm_intel_gem_bo_alloc_for_render(drm_intel_bufmgr *bufmgr, const char *name,
+				  unsigned long size, unsigned int alignment)
+{
+    return drm_intel_gem_bo_alloc_internal(bufmgr, name, size, alignment, 1);
+}
+
+static drm_intel_bo *
+drm_intel_gem_bo_alloc(drm_intel_bufmgr *bufmgr, const char *name,
+		       unsigned long size, unsigned int alignment)
+{
+    return drm_intel_gem_bo_alloc_internal(bufmgr, name, size, alignment, 0);
+}
+
 /**
  * Returns a drm_intel_bo wrapping the given buffer object handle.
  *
@@ -545,9 +578,7 @@ drm_intel_gem_bo_unreference_locked(drm_intel_bo *bo)
 	    bo_gem->reloc_target_bo = NULL;
 	    bo_gem->reloc_count = 0;
 
-	    bo_gem->next = NULL;
-	    *bucket->tail = bo_gem;
-	    bucket->tail = &bo_gem->next;
+	    DRMLISTADDTAIL(&bo_gem->head, &bucket->head);


Reply to: