rpms/kernel/devel kernel.spec, 1.514, 1.515 linux-2.6-drm-git-mm.patch, 1.2, 1.3 linux-2.6-drm-i915-modeset.patch, 1.5, 1.6 nouveau-drm.patch, 1.9, 1.10 linux-2.6-drm-git-i915-remove-priv-access.patch, 1.1, NONE linux-2.6-drm-git-mm-revert-nopfn.patch, 1.1, NONE
Dave Airlie (airlied)
fedora-extras-commits at redhat.com
Thu Mar 20 06:07:33 UTC 2008
Author: airlied
Update of /cvs/pkgs/rpms/kernel/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv28992
Modified Files:
kernel.spec linux-2.6-drm-git-mm.patch
linux-2.6-drm-i915-modeset.patch nouveau-drm.patch
Removed Files:
linux-2.6-drm-git-i915-remove-priv-access.patch
linux-2.6-drm-git-mm-revert-nopfn.patch
Log Message:
* Thu Mar 20 2008 Dave Airlie <airlied at redhat.com>
- bring back drm modeset
Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel.spec,v
retrieving revision 1.514
retrieving revision 1.515
diff -u -r1.514 -r1.515
--- kernel.spec 19 Mar 2008 20:57:06 -0000 1.514
+++ kernel.spec 20 Mar 2008 06:06:41 -0000 1.515
@@ -608,8 +608,6 @@
# nouveau + drm fixes
Patch1801: linux-2.6-drm-git-mm.patch
Patch1803: nouveau-drm.patch
-Patch1804: linux-2.6-drm-git-mm-revert-nopfn.patch
-Patch1805: linux-2.6-drm-git-i915-remove-priv-access.patch
Patch1806: linux-2.6-drm-i915-modeset.patch
# kludge to make ich9 e1000 work
@@ -1108,11 +1106,9 @@
ApplyPatch linux-2.6-netdev-atl2.patch
# Nouveau DRM + drm fixes
-#ApplyPatch linux-2.6-drm-git-mm.patch
-#ApplyPatch nouveau-drm.patch
-#ApplyPatch linux-2.6-drm-git-mm-revert-nopfn.patch
-ApplyPatch linux-2.6-drm-git-i915-remove-priv-access.patch
-#ApplyPatch linux-2.6-drm-i915-modeset.patch
+ApplyPatch linux-2.6-drm-git-mm.patch
+ApplyPatch nouveau-drm.patch
+ApplyPatch linux-2.6-drm-i915-modeset.patch
# ext4dev stable patch queue, slated for 2.6.25
#ApplyPatch linux-2.6-ext4-stable-queue.patch
@@ -1724,6 +1720,9 @@
%kernel_variant_files -a /%{image_install_path}/xen*-%{KVERREL} -e /etc/ld.so.conf.d/kernelcap-%{KVERREL}.conf %{with_xen} xen
%changelog
+* Thu Mar 20 2008 Dave Airlie <airlied at redhat.com>
+- bring back drm modeset
+
* Wed Mar 19 2008 Roland McGrath <roland at redhat.com>
- utrace is back, rebased
linux-2.6-drm-git-mm.patch:
Index: linux-2.6-drm-git-mm.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/linux-2.6-drm-git-mm.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- linux-2.6-drm-git-mm.patch 29 Feb 2008 02:11:08 -0000 1.2
+++ linux-2.6-drm-git-mm.patch 20 Mar 2008 06:06:41 -0000 1.3
@@ -1,4 +1,4 @@
-commit 9ad1ccf9cff8aa911d965c94b83187b50c459d43
+commit 60abdfdecf0163fb3da7dc152c7d22179029badd
Author: Xiang, Haihao <haihao.xiang at intel.com>
Date: Fri Feb 29 12:07:01 2008 +1000
@@ -6,7 +6,7 @@
Signed-off-by: Dave Airlie <airlied at redhat.com>
-commit aa0e20c041614319ff66a40c5f70a9f7eae01fbc
+commit f6f86ba80ca643b826a48d0a811e5dd644c7349e
Author: Thomas Hellstrom <thomas-at-tungstengraphics-dot-com>
Date: Fri Feb 29 12:05:48 2008 +1000
@@ -20,7 +20,7 @@
Signed-off-by: Dave Airlie <airlied at redhat.com>
-commit 9c005b094ecada32e04e0b9ebdcfe3ab47fe86b7
+commit f50888eab3d965aedbd27ec512a40db465e8b4d9
Author: Thomas Hellstrom <thomas-at-tungstengraphics-dot-com>
Date: Fri Feb 29 11:53:45 2008 +1000
@@ -30,7 +30,7 @@
Signed-off-by: Dave Airlie <airlied at redhat.com>
-commit 35c64f7d95512505400849241605d26b9a9801b4
+commit 64c84bc78cf57bf5b028cda9d9dc09431aabff4b
Author: Thomas Hellstrom <thomas-at-tungstengraphics-dot-com>
Date: Fri Feb 29 11:49:39 2008 +1000
@@ -41,7 +41,7 @@
Signed-off-by: Dave Airlie <airlied at redhat.com>
-commit ae0806d80764d8ae63e74a5d7e3921a532d61d14
+commit 9ad34ad2452af7780ddad11c1157cd24ef42f471
Author: Thomas Hellstrom <thomas-at-tungstengraphics-dot-com>
Date: Fri Feb 29 11:41:36 2008 +1000
@@ -53,7 +53,7 @@
Signed-off-by: Dave Airlie <airlied at redhat.com>
-commit e3d3d4c7421a2277be24254524f56e17419c1449
+commit 2f620305d4f7b28e9403d34caecafc639bea69ed
Author: Kristian Høgsberg <krh at redhat.com>
Date: Fri Feb 29 11:38:20 2008 +1000
@@ -63,7 +63,7 @@
Signed-off-by: Dave Airlie <airlied at redhat.com>
-commit e1a98c2e5dd333becd47e188cf66093e1a86f41b
+commit b45d673ed96c158d37bb476dd0f92246427b1541
Author: Kristian Høgsberg <krh at redhat.com>
Date: Fri Feb 29 11:35:21 2008 +1000
@@ -71,7 +71,7 @@
Signed-off-by: Dave Airlie <airlied at redhat.com>
-commit 70a1de5ac59b59cb8f7c1d08ce455374785bca05
+commit 0d543148472264c8ad2ccbd145f953c3412a7396
Author: Kristian Høgsberg <krh at redhat.com>
Date: Fri Feb 29 11:31:08 2008 +1000
@@ -79,7 +79,7 @@
Signed-off-by: Dave Airlie <airlied at redhat.com>
-commit 047243f9c142c599d1ab82991a5a0a8dd0170bb8
+commit f7890c94ebabe07b3f7365526045c741dc4d3d8b
Author: Kristian Høgsberg <krh at redhat.com>
Date: Fri Feb 29 11:30:26 2008 +1000
@@ -87,7 +87,7 @@
Signed-off-by: Dave Airlie <airlied at redhat.com>
-commit b57dde526e116f14a5697b5c0d9697493baa2d5d
+commit 28cd0c8c93179e272d76f327efffcf719ef85846
Author: Kristian Høgsberg <krh at redhat.com>
Date: Fri Feb 29 11:29:42 2008 +1000
@@ -95,7 +95,7 @@
Signed-off-by: Dave Airlie <airlied at redhat.com>
-commit 3cb77dd7f3974fc64de6ec3859c970b9b9ddd1fc
+commit f68e6c81fe11cf44a7b5db1ae7b3bc854f6d2e3e
Author: Thomas Hellstrom <thomas-at-tungstengraphics-dot-com>
Date: Fri Feb 29 11:27:30 2008 +1000
@@ -106,7 +106,7 @@
Signed-off-by: Dave Airlie <airlied at redhat.com>
-commit 0f066ed26802ff65965f7b29346cec98921c2b29
+commit 3fdbfb6b0a7c3f839424e768cd3bf137d8993bf6
Author: Thomas Hellstrom <thomas-at-tungstengraphics-dot-com>
Date: Fri Feb 29 11:02:23 2008 +1000
@@ -114,7 +114,7 @@
Signed-off-by: Dave Airlie <airlied at redhat.com>
-commit e927ccfe2905d680b4217fc6af17c9c1ff86ebef
+commit 3ffa46ff70b9e3128e4f297f05a0b48e8656588c
Author: Thomas Hellstrom <thomas-at-tungstengraphics-dot-com>
Date: Fri Feb 29 10:57:18 2008 +1000
@@ -124,7 +124,7 @@
Signed-off-by: Dave Airlie <airlied at redhat.com>
-commit ae0bdbd7e1d02e978323640256125f8a5391510a
+commit d049bd7aa94ab159227d214b17da9aa6f5114b7e
Author: Nick Piggin <npiggin at suse.de>
Date: Thu Feb 7 16:29:15 2008 +1000
@@ -136,7 +136,7 @@
Signed-off-by: Nick Piggin <npiggin at suse.de>
Signed-off-by: Dave Airlie <airlied at redhat.com>
-commit 29403da6adea71d155a4c3ad0923cd7c86f0bf9e
+commit f35f0fbc2dd85a4c0865ef0dcb6724c7b863a94c
Author: Dave Airlie <airlied at redhat.com>
Date: Thu Feb 7 16:21:57 2008 +1000
@@ -144,7 +144,7 @@
Signed-off-by: Dave Airlie <airlied at redhat.com>
-commit b691c8da4038e0e01fb3beaa06bf21468c8dd0f0
+commit adb114cd5ebd47beb4b6108e51c266a6aa118840
Author: Dave Airlie <airlied at redhat.com>
Date: Fri Jan 25 11:36:39 2008 +1000
@@ -156,7 +156,7 @@
Signed-off-by: Dave Airlie <airlied at redhat.com>
-commit 222a41948d2a1f454c7f978f3c3f18dc25061216
+commit 472d4dc9ecc22480dcd99e96d77e47fec0e99f1c
Author: Dave Airlie <airlied at redhat.com>
Date: Fri Jan 25 11:05:59 2008 +1000
@@ -164,7 +164,7 @@
Signed-off-by: Dave Airlie <airlied at linux.ie>
-commit 046fd35ec86a5744b6a1073e47fd7fea1ab0c553
+commit de12324c869d2d5d6918c5e5c5752ded2e188492
Author: Kyle McMartin <kyle at mcmartin.ca>
Date: Thu Jan 24 16:48:24 2008 +1000
@@ -178,7 +178,7 @@
Signed-off-by: Kyle McMartin <kmcmartin at redhat.com>
Signed-off-by: Dave Airlie <airlied at redhat.com>
-commit 9f32218d9b003af5206d9e0c280a2bcff19ee125
+commit 88bf3e11fdde2d8b7deeb80e088a32aed697e9a8
Author: Eric Anholt <eric at anholt.net>
Date: Thu Jan 24 16:47:28 2008 +1000
@@ -186,7 +186,7 @@
Signed-off-by: Dave Airlie <airlied at redhat.com>
-commit 9149865182a2edf9e62ad290bbe93521f1c00372
+commit e880b462be59edb1b66dbfe783faffc4872cfe75
Author: Thomas Hellstrom <thomas-at-tungstengraphics-dot-com>
Date: Thu Jan 24 16:44:25 2008 +1000
@@ -197,7 +197,7 @@
Signed-off-by: Dave Airlie <airlied at redhat.com>
-commit f930fcb409db57172f7743d80cea9c6eb5bedfc4
+commit 4b432f39f3f0ad3015637b194aa7e09c82f7e2e6
Author: Keith Packard <keithp at keithp.com>
Date: Thu Jan 24 16:42:46 2008 +1000
@@ -214,7 +214,7 @@
Signed-off-by: Dave Airlie <airlied at redhat.com>
-commit ba1f054949cf2e71e80031fcbf8676db6d118b63
+commit 9c2cbb2b75df47338337549a39feddfb8dcbc2e5
Author: Keith Packard <keithp at keithp.com>
Date: Thu Jan 24 16:41:36 2008 +1000
@@ -230,7 +230,7 @@
Signed-off-by: Dave Airlie <airlied at redhat.com>
-commit f386dcbb2d8d6b2410ebfe733d82c615c41c2a25
+commit 84908108167c7f32a3dd9f456412acf9d03e8a2d
Author: Keith Packard <keithp at keithp.com>
Date: Thu Jan 24 16:40:25 2008 +1000
@@ -246,7 +246,7 @@
Signed-off-by: Dave Airlie <airlied at linux.ie>
-commit 6e14fdc7ddb806e64e65ced441e925cd64603bd5
+commit d44fc71ba887c9b1b6d11328c2afea9bae92795c
Author: Keith Packard <keithp at keithp.com>
Date: Thu Jan 24 16:39:42 2008 +1000
@@ -259,7 +259,7 @@
Signed-off-by: Dave Airlie <airlied at linux.ie>
-commit 7733096f48ad73ddb566b858d879fe0c49e48732
+commit fef882379805e96c5396f0d82be8b8ab6e4b2f31
Author: Keith Packard <keithp at keithp.com>
Date: Thu Jan 24 16:36:31 2008 +1000
@@ -271,7 +271,7 @@
Signed-off-by: Dave Airlie <airlied at redhat.com>
-commit f953d51ccca1d8ce00eec8dbcac86491f23805bb
+commit cb08438f1177f93133df1d5da15afe1a0823f727
Author: Keith Packard <keithp at keithp.com>
Date: Thu Jan 24 16:35:31 2008 +1000
@@ -281,7 +281,7 @@
Signed-off-by: Dave Airlie <airlied at redhat.com>
-commit ca6d9673159712446a996c5810656fcb50a9cde4
+commit 9bd633fbcb38301c7e29d20cbedb6f92010422e3
Author: Keith Packard <keithp at keithp.com>
Date: Thu Jan 24 16:34:54 2008 +1000
@@ -291,7 +291,7 @@
Signed-off-by: Dave Airlie <airlied at redhat.com>
-commit 94626068d3d5f8df61e1df79abfabd828041ca80
+commit f754d61e9cb5c9281414b40e8f73b955d0e3f598
Author: Keith Packard <keithp at keithp.com>
Date: Thu Jan 24 16:34:16 2008 +1000
@@ -303,7 +303,7 @@
Signed-off-by: Dave Airlie <airlied at redhat.com>
-commit 3f8b8605ad27546b80b4a55d5451f7cd3726df01
+commit b43f3a2f2ac075dbfc7ef05634253d9c9a532285
Author: Keith Packard <keithp at keithp.com>
Date: Thu Jan 24 16:33:23 2008 +1000
@@ -316,7 +316,7 @@
Signed-off-by: Dave Airlie <airlied at linux.ie>
-commit d2a2f35ac08ab9945c3bce188ccb37e528958524
+commit 22f59a4634d6ad29c496a6e27292a617911fa8a9
Author: Keith Packard <keithp at keithp.com>
Date: Thu Jan 24 16:32:43 2008 +1000
@@ -328,7 +328,7 @@
Signed-off-by: Dave Airlie <airlied at linux.ie>
-commit 239158065c661384bae3c4488f569006515276c7
+commit 15203a8ea1398b694d4e9e91ac8d30e2779c06a2
Author: Keith Packard <keithp at keithp.com>
Date: Thu Jan 24 16:31:45 2008 +1000
@@ -342,7 +342,7 @@
Signed-off-by: Dave Airlie <airlied at redhat.com>
-commit 82ce6ced892adc8d990703edc30921bc9bbb6622
+commit 712419b3f4af8beee699ac1292987da17a9b9638
Author: Alan Hourihane <alanh at tungstengraphics.com>
Date: Thu Jan 24 16:29:48 2008 +1000
@@ -350,7 +350,7 @@
Signed-off-by: Dave Airlie <airlied at linux.ie>
-commit 9bf3dda2f4f6ca700fa255d4c4bdc2177f3f4ad4
+commit ccfeb3b197432f6a2be58a3c954ee6cd5ecb955f
Author: Keith Packard <keithp at keithp.com>
Date: Thu Jan 24 16:28:38 2008 +1000
@@ -358,7 +358,7 @@
Signed-off-by: Dave Airlie <airlied at redhat.com>
-commit 34b894463c7b2020acf44515beda22af01deff0a
+commit 6050439d75dd8f52a4a9f42303a9c2ca04706732
Author: Keith Packard <keithp at keithp.com>
Date: Thu Jan 24 16:26:40 2008 +1000
@@ -369,7 +369,7 @@
Signed-off-by: Dave Airlie <airlied at redhat.com>
-commit 64a5aa5d78c355b64da51eb34e66190b23323441
+commit 993e85860b508c84d70731de0c92d90e50bf9ad0
Author: Keith Packard <keithp at keithp.com>
Date: Thu Jan 24 16:25:57 2008 +1000
@@ -405,7 +405,7 @@
Signed-off-by: Dave Airlie <airlied at redhat.com>
-commit 5144432916c0f1babe5da083dd97e1e039371c15
+commit 3ee5bdaa04fc5659b9d4acf4347f635e90705e1a
Author: Márton Németh <nm127 at freemail.hu>
Date: Thu Jan 24 15:58:57 2008 +1000
@@ -419,7 +419,7 @@
Signed-off-by: Dave Airlie <airlied at linux.ie>
-commit 6bdb74a590379e0b13863412acbce728ae231b74
+commit ce234d84fc7763c290649df183ec2fc116896881
Author: Zou Nan hai <nanhai.zou at intel.com>
Date: Wed Jan 23 15:54:04 2008 +1000
@@ -429,7 +429,7 @@
Signed-off-by: Dave Airlie <airlied at linux.ie>
-commit 066a9afac5b7a15dc0301e63be2846ee0be69b2d
+commit 26a23b582644d942dbac23cd60e4df29cf503800
Author: Jiri Slaby <jirislaby at gmail.com>
Date: Thu Nov 29 09:57:16 2007 +1000
@@ -443,7 +443,7 @@
Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
Signed-off-by: Dave Airlie <airlied at linux.ie>
-commit 8a3a6cc3d4e868756749899a0d7362ec96304c1a
+commit 46e99b6890f2098f536523ee14465f2887ea502b
Author: Dave Airlie <airlied at linux.ie>
Date: Thu Nov 22 18:57:08 2007 +1000
@@ -453,13 +453,13 @@
Signed-off-by: Dave Airlie <airlied at linux.ie>
-commit 48db3c1e351529afd10a9aa7497dd3e06b9b23a6
+commit 6a94f6c5d6b0746f809d6dd088f9c8176529e36b
Author: Dave Airlie <airlied at linux.ie>
Date: Thu Nov 22 18:53:36 2007 +1000
drm/i915: add some missing pieces of ttm superioctl
-commit 29161ed6a3f019e27bc86ccb196549fe41a4f084
+commit a5ae627994b782afcae2917c5f2a4b44b0ff0725
Author: Michel Dänzer <michel at tungstengraphics.com>
Date: Thu Nov 22 14:49:12 2007 +1000
@@ -480,7 +480,7 @@
Signed-off-by: Dave Airlie <airlied at linux.ie>
-commit c5dccf2bc096f85f29beb9e0790d21666327abac
+commit 09e15fcf1d2cb0af9f096155a2d5c1b5313883b1
Author: Zou Nan hai <nanhai.zou at intel.com>
Date: Thu Nov 22 14:28:52 2007 +1000
@@ -491,7 +491,7 @@
Signed-off-by: Dave Airlie <airlied at linux.ie>
-commit 50d29afe5aeda1041d01e7072ba818cd92204b71
+commit 89b968bb31affaa1397c40bfc2de3aa7ab4c07eb
Author: Thomas Hellstrom <thomas -at- tungstengraphics.com>
Date: Thu Nov 22 13:30:34 2007 +1000
@@ -503,7 +503,7 @@
Signed-off-by: Dave Airlie <airlied at linux.ie>
-commit 6f97bf6cd57b9c2de0385febd174713ce0362456
+commit 830f778956475a51d4c15d817214b7907be0297a
Author: Jerome Glisse <glisse at freedesktop.org>
Date: Thu Nov 22 13:18:53 2007 +1000
@@ -514,7 +514,7 @@
Signed-off-by: Dave Airlie <airlied at linux.ie>
-commit dd53ed406397c08dae0fc7e4c5c8e50fa9c4b1c6
+commit ba371808980b8f88871bf135274ade602456a5e2
Author: Dave Airlie <airlied at linux.ie>
Date: Mon Nov 5 16:59:20 2007 +1000
@@ -522,7 +522,7 @@
Signed-off-by: Dave Airlie <airlied at linux.ie>
-commit 38a6b4fc63e21563f1aa1af752db38f6306060f0
+commit c0da9794080ce8e4f58031dd43c15d4d5b4d75e7
Author: Thomas Hellstrom <thomas-at-tungstengraphics-dot-com>
Date: Mon Nov 5 16:53:59 2007 +1000
@@ -533,7 +533,7 @@
Signed-off-by: Dave Airlie <airlied at linux.ie>
-commit 701dc84a06bd0859845c78dae1ed9cbff2d45909
+commit bca8bcf0153c1f088919f36639be2da8c873a707
Author: Dave Airlie <airlied at linux.ie>
Date: Mon Nov 5 16:39:19 2007 +1000
@@ -544,7 +544,7 @@
Signed-off-by: Thomas Hellstrom <thomas -at- tungstengraphics.com>
Signed-off-by: Dave Airlie <airlied at linux.ie>
-commit c5357c3d267db8705c2388f1dcd97e0a93dba4b7
+commit 2fcd80bd79a4ff34881ad88683d86678c392eed8
Author: Thomas Hellstrom <thomas-at-tungstengraphics-dot-com>
Date: Mon Nov 5 14:54:31 2007 +1000
@@ -559,7 +559,7 @@
Signed-off-by: Thomas Hellstrom <thomas -at- tungstengraphics.com>
Signed-off-by: Dave Airlie <airlied at redhat.com>
-commit 7ff17c73a623935b0f834a299fc11185fe565942
+commit 90731086d29563c602a5d6580546c815810aacd8
Author: Dave Airlie <airlied at linux.ie>
Date: Mon Nov 5 14:13:19 2007 +1000
@@ -576,7 +576,7 @@
Signed-off-by: Thomas Hellstrom <thomas -at- tunsgtengraphics.com>
Signed-off-by: Dave Airlie <airlied at linux.ie>
-commit b60bff9208be6f1ca9c37c5e674bed298fb4a281
+commit dc95859b8d3636ec002786bc6676ed2ffe999bb8
Author: Thomas Hellstrom <thomas-at-tungstengraphics-dot-com>
Date: Mon Nov 5 13:51:07 2007 +1000
@@ -587,7 +587,7 @@
Signed-off-by: Dave Airlie <airlied at linux.ie>
-commit 53c0684d7dd7e83a00bbd398a33d9f3b8bb6a9a5
+commit 774c9d3f7dfb0f5db1f82d96dce3efbe6d73bc57
Author: Thomas Hellstrom <thomas-at-tungstengraphics-dot-com>
Date: Mon Nov 5 13:45:22 2007 +1000
@@ -600,7 +600,7 @@
Signed-off-by: Thomas Hellstrom <thomas -at- tungstengraphics.com>
Signed-off-by: Dave Airlie <airlied at linux.ie>
-commit ab3c9c6e912324697a67c849abbba8942c460fb0
+commit 7d6bff6369efece0f637dfc905f901e924927067
Author: Thomas Hellstrom <thomas-at-tungstengraphics-dot-com>
Date: Mon Nov 5 13:21:19 2007 +1000
@@ -619,7 +619,6 @@
Signed-off-by: Thomas Hellstrom <thomas -at- tungstengraphics.com>
Signed-off-by: Dave Airlie <airlied at linux.ie>
-
diff --git a/drivers/char/drm/Makefile b/drivers/char/drm/Makefile
index 1283ded..85c4f9e 100644
--- a/drivers/char/drm/Makefile
@@ -643,21 +642,18 @@
sis-objs := sis_drv.o sis_mm.o
savage-objs := savage_drv.o savage_bci.o savage_state.o
diff --git a/drivers/char/drm/ati_pcigart.c b/drivers/char/drm/ati_pcigart.c
-index d352dbb..617abab 100644
+index e5a0e97..61d98e3 100644
--- a/drivers/char/drm/ati_pcigart.c
+++ b/drivers/char/drm/ati_pcigart.c
-@@ -45,9 +45,8 @@ static void *drm_ati_alloc_pcigart_table(int order)
-
- address = __get_free_pages(GFP_KERNEL | __GFP_COMP,
- order);
-- if (address == 0UL) {
-+ if (address == 0UL)
- return NULL;
-- }
-
- page = virt_to_page(address);
+@@ -43,7 +43,6 @@ static int drm_ati_alloc_pcigart_table(struct drm_device *dev,
+ gart_info->table_mask);
+ if (gart_info->table_handle == NULL)
+ return -ENOMEM;
+-
+ return 0;
+ }
-@@ -197,7 +196,7 @@ int drm_ati_pcigart_init(struct drm_device *dev, struct drm_ati_pcigart_info *ga
+@@ -150,7 +149,7 @@ int drm_ati_pcigart_init(struct drm_device *dev, struct drm_ati_pcigart_info *ga
page_base = (u32) entry->busaddr[i];
for (j = 0; j < (PAGE_SIZE / ATI_PCIGART_PAGE_SIZE); j++) {
@@ -666,7 +662,7 @@
case DRM_ATI_GART_IGP:
*pci_gart = cpu_to_le32((page_base) | 0xc);
break;
-@@ -222,7 +221,7 @@ int drm_ati_pcigart_init(struct drm_device *dev, struct drm_ati_pcigart_info *ga
+@@ -175,7 +174,7 @@ int drm_ati_pcigart_init(struct drm_device *dev, struct drm_ati_pcigart_info *ga
mb();
#endif
@@ -1042,18 +1038,18 @@
* Device specific ioctls should only be in their respective headers
* The device specific ioctl range is from 0x40 to 0x99.
diff --git a/drivers/char/drm/drmP.h b/drivers/char/drm/drmP.h
-index a6789f2..bd41621 100644
+index 8ea9dd1..c6df504 100644
--- a/drivers/char/drm/drmP.h
+++ b/drivers/char/drm/drmP.h
-@@ -55,6 +55,7 @@
- #include <linux/jiffies.h>
+@@ -56,6 +56,7 @@
#include <linux/smp_lock.h> /* For (un)lock_kernel */
+ #include <linux/dma-mapping.h>
#include <linux/mm.h>
+#include <linux/pagemap.h>
#include <linux/cdev.h>
#include <linux/mutex.h>
#if defined(__alpha__) || defined(__powerpc__)
-@@ -66,6 +67,7 @@
+@@ -67,6 +68,7 @@
#ifdef CONFIG_MTRR
#include <asm/mtrr.h>
#endif
@@ -1061,7 +1057,7 @@
#if defined(CONFIG_AGP) || defined(CONFIG_AGP_MODULE)
#include <linux/types.h>
#include <linux/agp_backend.h>
-@@ -144,9 +146,22 @@ struct drm_device;
+@@ -145,9 +147,22 @@ struct drm_device;
#define DRM_MEM_CTXLIST 21
#define DRM_MEM_MM 22
#define DRM_MEM_HASHTAB 23
@@ -1084,7 +1080,7 @@
/*@}*/
-@@ -374,6 +389,12 @@ struct drm_buf_entry {
+@@ -375,6 +390,12 @@ struct drm_buf_entry {
struct drm_freelist freelist;
};
@@ -1097,7 +1093,7 @@
/** File private data */
struct drm_file {
int authenticated;
-@@ -387,6 +408,14 @@ struct drm_file {
+@@ -388,6 +409,14 @@ struct drm_file {
struct drm_head *head;
int remove_auth_on_close;
unsigned long lock_count;
@@ -1112,7 +1108,7 @@
struct file *filp;
void *driver_priv;
};
-@@ -518,6 +547,7 @@ struct drm_map_list {
+@@ -519,6 +548,7 @@ struct drm_map_list {
struct drm_hash_item hash;
struct drm_map *map; /**< mapping */
uint64_t user_token;
@@ -1120,7 +1116,7 @@
};
typedef struct drm_map drm_local_map_t;
-@@ -555,6 +585,8 @@ struct drm_ati_pcigart_info {
+@@ -558,6 +588,8 @@ struct drm_ati_pcigart_info {
int table_size;
};
@@ -1129,7 +1125,7 @@
/**
* DRM driver structure. This structure represent the common code for
* a family of cards. There will one drm_device for each card present
-@@ -612,6 +644,9 @@ struct drm_driver {
+@@ -615,6 +647,9 @@ struct drm_driver {
void (*set_version) (struct drm_device *dev,
struct drm_set_version *sv);
@@ -1139,7 +1135,7 @@
int major;
int minor;
int patchlevel;
-@@ -687,6 +722,10 @@ struct drm_device {
+@@ -690,6 +725,10 @@ struct drm_device {
struct list_head maplist; /**< Linked list of regions */
int map_count; /**< Number of mappable regions */
struct drm_open_hash map_hash; /**< User token hash table for maps */
@@ -1150,7 +1146,7 @@
/** \name Context handle management */
/*@{ */
-@@ -763,6 +802,9 @@ struct drm_device {
+@@ -766,6 +805,9 @@ struct drm_device {
unsigned int agp_buffer_token;
struct drm_head primary; /**< primary screen head */
@@ -1160,7 +1156,7 @@
/** \name Drawable information */
/*@{ */
spinlock_t drw_lock;
-@@ -770,6 +812,15 @@ struct drm_device {
+@@ -773,6 +815,15 @@ struct drm_device {
/*@} */
};
@@ -1176,7 +1172,7 @@
static __inline__ int drm_core_check_feature(struct drm_device *dev,
int feature)
{
-@@ -866,6 +917,15 @@ extern int drm_free_agp(DRM_AGP_MEM * handle, int pages);
+@@ -869,6 +920,15 @@ extern int drm_free_agp(DRM_AGP_MEM * handle, int pages);
extern int drm_bind_agp(DRM_AGP_MEM * handle, unsigned int start);
extern int drm_unbind_agp(DRM_AGP_MEM * handle);
@@ -1192,7 +1188,7 @@
/* Misc. IOCTL support (drm_ioctl.h) */
extern int drm_irq_by_busid(struct drm_device *dev, void *data,
struct drm_file *file_priv);
-@@ -1023,7 +1083,8 @@ extern DRM_AGP_MEM *drm_agp_allocate_memory(struct agp_bridge_data *bridge, size
+@@ -1026,7 +1086,8 @@ extern DRM_AGP_MEM *drm_agp_allocate_memory(struct agp_bridge_data *bridge, size
extern int drm_agp_free_memory(DRM_AGP_MEM * handle);
extern int drm_agp_bind_memory(DRM_AGP_MEM * handle, off_t start);
extern int drm_agp_unbind_memory(DRM_AGP_MEM * handle);
@@ -1202,7 +1198,7 @@
/* Stub support (drm_stub.h) */
extern int drm_get_dev(struct pci_dev *pdev, const struct pci_device_id *ent,
struct drm_driver *driver);
-@@ -1147,6 +1208,39 @@ extern void drm_free(void *pt, size_t size, int area);
+@@ -1150,6 +1211,39 @@ extern void drm_free(void *pt, size_t size, int area);
extern void *drm_calloc(size_t nmemb, size_t size, int area);
#endif
@@ -6194,7 +6190,7 @@
+ return ret;
+}
diff --git a/drivers/char/drm/drm_fops.c b/drivers/char/drm/drm_fops.c
-index 3992f73..a5920dc 100644
+index f09d4b5..ff2ca94 100644
--- a/drivers/char/drm/drm_fops.c
+++ b/drivers/char/drm/drm_fops.c
@@ -147,11 +147,18 @@ int drm_open(struct inode *inode, struct file *filp)
@@ -6289,7 +6285,7 @@
/**
* Release file.
*
-@@ -347,7 +395,7 @@ int drm_release(struct inode *inode, struct file *filp)
+@@ -348,7 +396,7 @@ int drm_release(struct inode *inode, struct file *filp)
if (drm_i_have_hw_lock(dev, file_priv)) {
dev->driver->reclaim_buffers_locked(dev, file_priv);
} else {
@@ -6298,16 +6294,7 @@
int locked = 0;
drm_idlelock_take(&dev->lock);
-@@ -356,7 +404,7 @@ int drm_release(struct inode *inode, struct file *filp)
- * Wait for a while.
- */
-
-- do{
-+ do {
- spin_lock(&dev->lock.spinlock);
- locked = dev->lock.idle_has_lock;
- spin_unlock(&dev->lock.spinlock);
-@@ -422,6 +470,7 @@ int drm_release(struct inode *inode, struct file *filp)
+@@ -425,6 +473,7 @@ int drm_release(struct inode *inode, struct file *filp)
mutex_unlock(&dev->ctxlist_mutex);
mutex_lock(&dev->struct_mutex);
@@ -6351,10 +6338,10 @@
}
diff --git a/drivers/char/drm/drm_lock.c b/drivers/char/drm/drm_lock.c
-index bea2a7d..316ab73 100644
+index 12dcdd1..1342e9d 100644
--- a/drivers/char/drm/drm_lock.c
+++ b/drivers/char/drm/drm_lock.c
-@@ -175,7 +175,7 @@ int drm_unlock(struct drm_device *dev, void *data, struct drm_file *file_priv)
+@@ -176,7 +176,7 @@ int drm_unlock(struct drm_device *dev, void *data, struct drm_file *file_priv)
if (dev->driver->kernel_context_switch_unlock)
dev->driver->kernel_context_switch_unlock(dev);
else {
@@ -10031,7 +10018,7 @@
+
#endif /* _I915_DRM_H_ */
diff --git a/drivers/char/drm/i915_drv.c b/drivers/char/drm/i915_drv.c
-index 4048f39..bd25a15 100644
+index b2b451d..415b1cf 100644
--- a/drivers/char/drm/i915_drv.c
+++ b/drivers/char/drm/i915_drv.c
@@ -37,6 +37,25 @@
@@ -10060,7 +10047,7 @@
enum pipe {
PIPE_A = 0,
-@@ -536,6 +555,7 @@ static struct drm_driver driver = {
+@@ -537,6 +556,7 @@ static struct drm_driver driver = {
DRIVER_IRQ_VBL2,
.load = i915_driver_load,
.unload = i915_driver_unload,
@@ -10068,7 +10055,7 @@
.lastclose = i915_driver_lastclose,
.preclose = i915_driver_preclose,
.suspend = i915_suspend,
-@@ -568,7 +588,8 @@ static struct drm_driver driver = {
+@@ -569,7 +589,8 @@ static struct drm_driver driver = {
.name = DRIVER_NAME,
.id_table = pciidlist,
},
linux-2.6-drm-i915-modeset.patch:
Index: linux-2.6-drm-i915-modeset.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/linux-2.6-drm-i915-modeset.patch,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- linux-2.6-drm-i915-modeset.patch 12 Mar 2008 05:09:07 -0000 1.5
+++ linux-2.6-drm-i915-modeset.patch 20 Mar 2008 06:06:41 -0000 1.6
@@ -239,10 +239,10 @@
* Device specific ioctls should only be in their respective headers
* The device specific ioctl range is from 0x40 to 0x99.
diff --git a/drivers/char/drm/drmP.h b/drivers/char/drm/drmP.h
-index a437ac2..f6066c3 100644
+index 7fb3a2f..40889a6 100644
--- a/drivers/char/drm/drmP.h
+++ b/drivers/char/drm/drmP.h
-@@ -105,6 +105,7 @@ struct drm_device;
+@@ -106,6 +106,7 @@ struct drm_device;
#define DRIVER_DMA_QUEUE 0x200
#define DRIVER_FB_DMA 0x400
#define DRIVER_IRQ_VBL2 0x800
@@ -250,7 +250,7 @@
/***********************************************************************/
/** \name Begin the DRM... */
-@@ -251,11 +252,11 @@ struct drm_device;
+@@ -252,11 +253,11 @@ struct drm_device;
*/
#define LOCK_TEST_WITH_RETURN( dev, file_priv ) \
do { \
@@ -266,7 +266,7 @@
return -EINVAL; \
} \
} while (0)
-@@ -286,9 +287,10 @@ typedef int drm_ioctl_t(struct drm_device *dev, void *data,
+@@ -287,9 +288,10 @@ typedef int drm_ioctl_t(struct drm_device *dev, void *data,
typedef int drm_ioctl_compat_t(struct file *filp, unsigned int cmd,
unsigned long arg);
@@ -280,7 +280,7 @@
struct drm_ioctl_desc {
unsigned int cmd;
-@@ -398,14 +400,12 @@ enum drm_ref_type {
+@@ -399,14 +401,12 @@ enum drm_ref_type {
/** File private data */
struct drm_file {
int authenticated;
@@ -296,7 +296,7 @@
int remove_auth_on_close;
unsigned long lock_count;
/*
-@@ -418,6 +418,11 @@ struct drm_file {
+@@ -419,6 +419,11 @@ struct drm_file {
struct drm_open_hash refd_object_hash[_DRM_NO_REF_TYPES];
struct file *filp;
void *driver_priv;
@@ -308,7 +308,7 @@
};
/** Wait queue */
-@@ -548,6 +553,8 @@ struct drm_map_list {
+@@ -549,6 +554,8 @@ struct drm_map_list {
struct drm_map *map; /**< mapping */
uint64_t user_token;
struct drm_mm_node *file_offset_node;
@@ -317,7 +317,7 @@
};
typedef struct drm_map drm_local_map_t;
-@@ -586,6 +593,29 @@ struct drm_ati_pcigart_info {
+@@ -589,6 +596,29 @@ struct drm_ati_pcigart_info {
};
#include "drm_objects.h"
@@ -347,7 +347,7 @@
/**
* DRM driver structure. This structure represent the common code for
-@@ -644,6 +674,15 @@ struct drm_driver {
+@@ -647,6 +677,15 @@ struct drm_driver {
void (*set_version) (struct drm_device *dev,
struct drm_set_version *sv);
@@ -363,7 +363,7 @@
struct drm_fence_driver *fence_driver;
struct drm_bo_driver *bo_driver;
-@@ -662,17 +701,28 @@ struct drm_driver {
+@@ -665,17 +704,28 @@ struct drm_driver {
struct pci_driver pci_driver;
};
@@ -398,7 +398,7 @@
};
/**
-@@ -680,14 +730,9 @@ struct drm_head {
+@@ -683,14 +733,9 @@ struct drm_head {
* may contain multiple heads.
*/
struct drm_device {
@@ -413,7 +413,7 @@
/** \name Locks */
/*@{ */
spinlock_t count_lock; /**< For inuse, drm_device::open_count, drm_device::buf_use */
-@@ -710,18 +755,12 @@ struct drm_device {
+@@ -713,18 +758,12 @@ struct drm_device {
atomic_t counts[15];
/*@} */
@@ -433,7 +433,7 @@
struct drm_mm offset_manager; /**< User token manager */
struct drm_open_hash object_hash; /**< User token hash table for objects */
struct address_space *dev_mapping; /**< For unmap_mapping_range() */
-@@ -736,7 +775,9 @@ struct drm_device {
+@@ -739,7 +778,9 @@ struct drm_device {
struct idr ctx_idr;
struct list_head vmalist; /**< List of vmas (for debugging) */
@@ -444,7 +444,7 @@
/*@} */
/** \name DMA queues (contexts) */
-@@ -800,7 +841,10 @@ struct drm_device {
+@@ -803,7 +844,10 @@ struct drm_device {
struct drm_driver *driver;
drm_local_map_t *agp_buffer_map;
unsigned int agp_buffer_token;
@@ -456,7 +456,7 @@
struct drm_fence_manager fm;
struct drm_buffer_manager bm;
-@@ -810,6 +854,9 @@ struct drm_device {
+@@ -813,6 +857,9 @@ struct drm_device {
spinlock_t drw_lock;
struct idr drw_idr;
/*@} */
@@ -466,7 +466,7 @@
};
#if __OS_HAS_AGP
-@@ -1088,26 +1135,25 @@ extern int drm_agp_unbind_memory(DRM_AGP_MEM * handle);
+@@ -1091,26 +1138,25 @@ extern int drm_agp_unbind_memory(DRM_AGP_MEM * handle);
extern struct drm_ttm_backend *drm_agp_init_ttm(struct drm_device *dev);
extern void drm_agp_chipset_flush(struct drm_device *dev);
/* Stub support (drm_stub.h) */
@@ -503,7 +503,7 @@
/* Scatter Gather Support (drm_scatter.h) */
extern void drm_sg_cleanup(struct drm_sg_mem * entry);
-@@ -1132,8 +1178,8 @@ extern void drm_pci_free(struct drm_device *dev, drm_dma_handle_t * dmah);
+@@ -1135,8 +1181,8 @@ extern void drm_pci_free(struct drm_device *dev, drm_dma_handle_t * dmah);
struct drm_sysfs_class;
extern struct class *drm_sysfs_create(struct module *owner, char *name);
extern void drm_sysfs_destroy(void);
@@ -5036,7 +5036,7 @@
struct drm_fence_object *fence;
diff --git a/drivers/char/drm/drm_fops.c b/drivers/char/drm/drm_fops.c
-index a5920dc..c09e4a4 100644
+index ff2ca94..d6440f4 100644
--- a/drivers/char/drm/drm_fops.c
+++ b/drivers/char/drm/drm_fops.c
@@ -43,10 +43,8 @@ static int drm_open_helper(struct inode *inode, struct file *filp,
@@ -5236,9 +5236,9 @@
- struct drm_device *dev = file_priv->head->dev;
+ struct drm_device *dev = file_priv->minor->dev;
int retcode = 0;
+ unsigned long irqflags;
- lock_kernel();
-@@ -387,63 +397,65 @@ int drm_release(struct inode *inode, struct file *filp)
+@@ -388,65 +398,65 @@ int drm_release(struct inode *inode, struct file *filp)
*/
DRM_DEBUG("pid = %d, device = 0x%lx, open_count = %d\n",
@@ -5260,10 +5260,12 @@
- * Wait for a while.
- */
-
-- do {
-- spin_lock(&dev->lock.spinlock);
+- do{
+- spin_lock_irqsave(&dev->lock.spinlock,
+- irqflags);
- locked = dev->lock.idle_has_lock;
-- spin_unlock(&dev->lock.spinlock);
+- spin_unlock_irqrestore(&dev->lock.spinlock,
+- irqflags);
- if (locked)
- break;
- schedule();
@@ -5289,9 +5291,9 @@
+ */
+
+ do{
-+ spin_lock(&file_priv->master->lock.spinlock);
++ spin_lock_irqsave(&file_priv->master->lock.spinlock, irqflags);
+ locked = file_priv->master->lock.idle_has_lock;
-+ spin_unlock(&file_priv->master->lock.spinlock);
++ spin_unlock_irqrestore(&file_priv->master->lock.spinlock, irqflags);
+ if (locked)
+ break;
+ schedule();
@@ -5350,7 +5352,7 @@
}
drm_fasync(-1, filp, 0);
-@@ -469,6 +481,16 @@ int drm_release(struct inode *inode, struct file *filp)
+@@ -472,6 +482,16 @@ int drm_release(struct inode *inode, struct file *filp)
}
mutex_unlock(&dev->ctxlist_mutex);
@@ -5367,7 +5369,7 @@
mutex_lock(&dev->struct_mutex);
drm_object_release(filp);
if (file_priv->remove_auth_on_close == 1) {
-@@ -491,9 +513,9 @@ int drm_release(struct inode *inode, struct file *filp)
+@@ -494,9 +514,9 @@ int drm_release(struct inode *inode, struct file *filp)
atomic_inc(&dev->counts[_DRM_STAT_CLOSES]);
spin_lock(&dev->count_lock);
if (!--dev->open_count) {
@@ -5560,7 +5562,7 @@
dev->locked_tasklet_func = NULL;
diff --git a/drivers/char/drm/drm_lock.c b/drivers/char/drm/drm_lock.c
-index 316ab73..aa6a3aa 100644
+index 1342e9d..9dda721 100644
--- a/drivers/char/drm/drm_lock.c
+++ b/drivers/char/drm/drm_lock.c
@@ -52,6 +52,7 @@ int drm_lock(struct drm_device *dev, void *data, struct drm_file *file_priv)
@@ -5569,9 +5571,9 @@
struct drm_lock *lock = data;
+ struct drm_master *master = file_priv->master;
int ret = 0;
+ unsigned long irqflags;
- ++file_priv->lock_count;
-@@ -63,27 +64,27 @@ int drm_lock(struct drm_device *dev, void *data, struct drm_file *file_priv)
+@@ -64,27 +65,27 @@ int drm_lock(struct drm_device *dev, void *data, struct drm_file *file_priv)
}
DRM_DEBUG("%d (pid %d) requests lock (0x%08x), flags = 0x%08x\n",
@@ -5585,13 +5587,13 @@
return -EINVAL;
- add_wait_queue(&dev->lock.lock_queue, &entry);
-- spin_lock(&dev->lock.spinlock);
+- spin_lock_irqsave(&dev->lock.spinlock, irqflags);
- dev->lock.user_waiters++;
-- spin_unlock(&dev->lock.spinlock);
+- spin_unlock_irqrestore(&dev->lock.spinlock, irqflags);
+ add_wait_queue(&master->lock.lock_queue, &entry);
-+ spin_lock(&master->lock.spinlock);
++ spin_lock_irqsave(&master->lock.spinlock, irqflags);
+ master->lock.user_waiters++;
-+ spin_unlock(&master->lock.spinlock);
++ spin_unlock_irqrestore(&master->lock.spinlock, irqflags);
for (;;) {
__set_current_state(TASK_INTERRUPTIBLE);
- if (!dev->lock.hw_lock) {
@@ -5609,23 +5611,24 @@
atomic_inc(&dev->counts[_DRM_STAT_LOCKS]);
break; /* Got lock */
}
-@@ -95,11 +96,11 @@ int drm_lock(struct drm_device *dev, void *data, struct drm_file *file_priv)
+@@ -96,11 +97,12 @@ int drm_lock(struct drm_device *dev, void *data, struct drm_file *file_priv)
break;
}
}
-- spin_lock(&dev->lock.spinlock);
+- spin_lock_irqsave(&dev->lock.spinlock, irqflags);
- dev->lock.user_waiters--;
-- spin_unlock(&dev->lock.spinlock);
-+ spin_lock(&master->lock.spinlock);
+- spin_unlock_irqrestore(&dev->lock.spinlock, irqflags);
++ spin_lock_irqsave(&master->lock.spinlock, irqflags);
+ master->lock.user_waiters--;
-+ spin_unlock(&master->lock.spinlock);
++ spin_unlock_irqrestore(&master->lock.spinlock, irqflags);
++
__set_current_state(TASK_RUNNING);
- remove_wait_queue(&dev->lock.lock_queue, &entry);
+ remove_wait_queue(&master->lock.lock_queue, &entry);
DRM_DEBUG("%d %s\n", lock->context,
ret ? "interrupted" : "has lock");
-@@ -111,7 +112,7 @@ int drm_lock(struct drm_device *dev, void *data, struct drm_file *file_priv)
+@@ -112,7 +114,7 @@ int drm_lock(struct drm_device *dev, void *data, struct drm_file *file_priv)
sigaddset(&dev->sigmask, SIGTTIN);
sigaddset(&dev->sigmask, SIGTTOU);
dev->sigdata.context = lock->context;
@@ -5634,7 +5637,7 @@
block_all_signals(drm_notifier, &dev->sigdata, &dev->sigmask);
if (dev->driver->dma_ready && (lock->flags & _DRM_LOCK_READY))
-@@ -149,6 +150,7 @@ int drm_lock(struct drm_device *dev, void *data, struct drm_file *file_priv)
+@@ -150,6 +152,7 @@ int drm_lock(struct drm_device *dev, void *data, struct drm_file *file_priv)
int drm_unlock(struct drm_device *dev, void *data, struct drm_file *file_priv)
{
struct drm_lock *lock = data;
@@ -5642,7 +5645,7 @@
unsigned long irqflags;
if (lock->context == DRM_KERNEL_CONTEXT) {
-@@ -175,7 +177,7 @@ int drm_unlock(struct drm_device *dev, void *data, struct drm_file *file_priv)
+@@ -176,7 +179,7 @@ int drm_unlock(struct drm_device *dev, void *data, struct drm_file *file_priv)
if (dev->driver->kernel_context_switch_unlock)
dev->driver->kernel_context_switch_unlock(dev);
else {
@@ -5651,7 +5654,7 @@
/* FIXME: Should really bail out here. */
}
}
-@@ -383,9 +385,10 @@ EXPORT_SYMBOL(drm_idlelock_release);
+@@ -388,9 +391,10 @@ EXPORT_SYMBOL(drm_idlelock_release);
int drm_i_have_hw_lock(struct drm_device *dev, struct drm_file *file_priv)
{
@@ -7085,7 +7088,7 @@
+ device_unregister(&minor->kdev);
}
diff --git a/drivers/char/drm/drm_vm.c b/drivers/char/drm/drm_vm.c
-index 3cd0b1c..832c927 100644
+index 6184b98..832c927 100644
--- a/drivers/char/drm/drm_vm.c
+++ b/drivers/char/drm/drm_vm.c
@@ -83,7 +83,7 @@ static pgprot_t drm_io_prot(uint32_t map_type, struct vm_area_struct *vma)
@@ -7178,6 +7181,111 @@
int ret;
mutex_lock(&dev->struct_mutex);
+@@ -679,8 +679,8 @@ EXPORT_SYMBOL(drm_mmap);
+ * \c Pagefault method for buffer objects.
+ *
+ * \param vma Virtual memory area.
+- * \param vmf vm fault data
+- * \return Error or VM_FAULT_NOPAGE: the pfn is manually inserted.
++ * \param address File offset.
++ * \return Error or refault. The pfn is manually inserted.
+ *
+ * It's important that pfns are inserted while holding the bo->mutex lock.
+ * otherwise we might race with unmap_mapping_range() which is always
+@@ -692,7 +692,8 @@ EXPORT_SYMBOL(drm_mmap);
+ * protected by the bo->mutex lock.
+ */
+
+-static int drm_bo_vm_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
++static unsigned long drm_bo_vm_nopfn(struct vm_area_struct *vma,
++ unsigned long address)
+ {
+ struct drm_buffer_object *bo = (struct drm_buffer_object *) vma->vm_private_data;
+ unsigned long page_offset;
+@@ -704,22 +705,25 @@ static int drm_bo_vm_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
+ unsigned long bus_base;
+ unsigned long bus_offset;
+ unsigned long bus_size;
+- unsigned long ret = VM_FAULT_NOPAGE;
++ unsigned long ret = NOPFN_REFAULT;
++
++ if (address > vma->vm_end)
++ return NOPFN_SIGBUS;
+
+ dev = bo->dev;
+ err = drm_bo_read_lock(&dev->bm.bm_lock);
+ if (err)
+- return VM_FAULT_NOPAGE;
++ return NOPFN_REFAULT;
+
+ err = mutex_lock_interruptible(&bo->mutex);
+ if (err) {
+ drm_bo_read_unlock(&dev->bm.bm_lock);
+- return VM_FAULT_NOPAGE;
++ return NOPFN_REFAULT;
+ }
+
+ err = drm_bo_wait(bo, 0, 0, 0);
+ if (err) {
+- ret = (err != -EAGAIN) ? VM_FAULT_SIGBUS : VM_FAULT_NOPAGE;
++ ret = (err != -EAGAIN) ? NOPFN_SIGBUS : NOPFN_REFAULT;
+ goto out_unlock;
+ }
+
+@@ -734,7 +738,7 @@ static int drm_bo_vm_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
+ DRM_BO_FLAG_FORCE_MAPPABLE;
+ err = drm_bo_move_buffer(bo, new_flags, 0, 0);
+ if (err) {
+- ret = (err != -EAGAIN) ? VM_FAULT_SIGBUS : VM_FAULT_NOPAGE;
++ ret = (err != -EAGAIN) ? NOPFN_SIGBUS : NOPFN_REFAULT;
+ goto out_unlock;
+ }
+ }
+@@ -743,12 +747,11 @@ static int drm_bo_vm_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
+ &bus_size);
+
+ if (err) {
+- ret = VM_FAULT_SIGBUS;
++ ret = NOPFN_SIGBUS;
+ goto out_unlock;
+ }
+
+- /* XXX: vmf->pgoff may work here, but it adds on vma->vm_pgoff */
+- page_offset = ((unsigned long)vmf->virtual_address - vma->vm_start) >> PAGE_SHIFT;
++ page_offset = (address - vma->vm_start) >> PAGE_SHIFT;
+
+ if (bus_size) {
+ struct drm_mem_type_manager *man = &dev->bm.man[bo->mem.mem_type];
+@@ -761,7 +764,7 @@ static int drm_bo_vm_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
+ drm_ttm_fixup_caching(ttm);
+ page = drm_ttm_get_page(ttm, page_offset);
+ if (!page) {
+- ret = VM_FAULT_OOM;
++ ret = NOPFN_OOM;
+ goto out_unlock;
+ }
+ pfn = page_to_pfn(page);
+@@ -770,9 +773,9 @@ static int drm_bo_vm_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
+ drm_io_prot(_DRM_TTM, vma);
+ }
+
+- err = vm_insert_pfn(vma, (unsigned long)vmf->virtual_address, pfn);
++ err = vm_insert_pfn(vma, address, pfn);
+ if (err) {
+- ret = (err != -EAGAIN) ? VM_FAULT_OOM : VM_FAULT_NOPAGE;
++ ret = (err != -EAGAIN) ? NOPFN_OOM : NOPFN_REFAULT;
+ goto out_unlock;
+ }
+ out_unlock:
+@@ -827,7 +830,7 @@ static void drm_bo_vm_close(struct vm_area_struct *vma)
+ }
+
+ static struct vm_operations_struct drm_bo_vm_ops = {
+- .fault = drm_bo_vm_fault,
++ .nopfn = drm_bo_vm_nopfn,
+ .open = drm_bo_vm_open,
+ .close = drm_bo_vm_close,
+ };
diff --git a/drivers/char/drm/i810_dma.c b/drivers/char/drm/i810_dma.c
index 8d7ea81..e5de8ea 100644
--- a/drivers/char/drm/i810_dma.c
@@ -7246,7 +7354,7 @@
DRM_ERROR("Unsupported memory type %u\n", (unsigned)type);
return -EINVAL;
diff --git a/drivers/char/drm/i915_dma.c b/drivers/char/drm/i915_dma.c
-index 30ab367..9ca655d 100644
+index d2b7d3f..9ca655d 100644
--- a/drivers/char/drm/i915_dma.c
+++ b/drivers/char/drm/i915_dma.c
@@ -38,8 +38,8 @@
@@ -7260,6 +7368,15 @@
u32 last_head = I915_READ(LP_RING + RING_HEAD) & HEAD_ADDR;
int i;
+@@ -51,7 +51,7 @@ int i915_wait_ring(struct drm_device *dev, int n, const char *caller)
+ if (ring->space >= n)
+ return 0;
+
+- dev_priv->sarea_priv->perf_boxes |= I915_BOX_WAIT;
++ //dev_priv->sarea_priv->perf_boxes |= I915_BOX_WAIT;
+
+ if (ring->head != last_head)
+ i = 0;
@@ -64,8 +64,13 @@ int i915_wait_ring(struct drm_device *dev, int n, const char *caller)
void i915_kernel_lost_context(struct drm_device *dev)
@@ -7276,8 +7393,14 @@
ring->head = I915_READ(LP_RING + RING_HEAD) & HEAD_ADDR;
ring->tail = I915_READ(LP_RING + RING_TAIL) & TAIL_ADDR;
-@@ -77,9 +82,13 @@ void i915_kernel_lost_context(struct drm_device *dev)
- // dev_priv->sarea_priv->perf_boxes |= I915_BOX_RING_EMPTY;
+@@ -73,13 +78,17 @@ void i915_kernel_lost_context(struct drm_device *dev)
+ if (ring->space < 0)
+ ring->space += ring->Size;
+
+- if (ring->head == ring->tail)
+- dev_priv->sarea_priv->perf_boxes |= I915_BOX_RING_EMPTY;
++// if (ring->head == ring->tail)
++// dev_priv->sarea_priv->perf_boxes |= I915_BOX_RING_EMPTY;
}
-static int i915_dma_cleanup(struct drm_device *dev)
nouveau-drm.patch:
Index: nouveau-drm.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/nouveau-drm.patch,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- nouveau-drm.patch 29 Feb 2008 06:01:55 -0000 1.9
+++ nouveau-drm.patch 20 Mar 2008 06:06:41 -0000 1.10
@@ -1,4 +1,4 @@
-From 97feb40c0d41369a3235a192b3db7d472e65bea8 Mon Sep 17 00:00:00 2001
+From 2e677c51e2e77e78695eda61b52704144a490bec Mon Sep 17 00:00:00 2001
From: Dave Airlie <airlied at redhat.com>
Date: Fri, 29 Feb 2008 15:58:37 +1000
Subject: [PATCH] nouveau: rebased master from git
@@ -138,10 +138,10 @@
obj-$(CONFIG_DRM_SAVAGE)+= savage.o
obj-$(CONFIG_DRM_VIA) +=via.o
diff --git a/drivers/char/drm/drmP.h b/drivers/char/drm/drmP.h
-index bd41621..a437ac2 100644
+index c6df504..7fb3a2f 100644
--- a/drivers/char/drm/drmP.h
+++ b/drivers/char/drm/drmP.h
-@@ -1030,7 +1030,8 @@ extern unsigned long drm_get_resource_start(struct drm_device *dev,
+@@ -1033,7 +1033,8 @@ extern unsigned long drm_get_resource_start(struct drm_device *dev,
unsigned int resource);
extern unsigned long drm_get_resource_len(struct drm_device *dev,
unsigned int resource);
@@ -151,7 +151,7 @@
/* DMA support (drm_dma.h) */
extern int drm_dma_setup(struct drm_device *dev);
extern void drm_dma_takedown(struct drm_device *dev);
-@@ -1042,6 +1043,7 @@ extern void drm_core_reclaim_buffers(struct drm_device *dev,
+@@ -1045,6 +1046,7 @@ extern void drm_core_reclaim_buffers(struct drm_device *dev,
extern int drm_control(struct drm_device *dev, void *data,
struct drm_file *file_priv);
extern irqreturn_t drm_irq_handler(DRM_IRQ_ARGS);
@@ -219,10 +219,10 @@
/**
* Uninstall the IRQ handler.
diff --git a/drivers/char/drm/drm_pciids.h b/drivers/char/drm/drm_pciids.h
-index 715b361..e2e73e5 100644
+index a6a499f..61a00f4 100644
--- a/drivers/char/drm/drm_pciids.h
+++ b/drivers/char/drm/drm_pciids.h
-@@ -411,3 +411,265 @@
+@@ -412,3 +412,265 @@
{0x8086, 0x2a12, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
{0x8086, 0x2a42, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
{0, 0, 0}
--- linux-2.6-drm-git-i915-remove-priv-access.patch DELETED ---
--- linux-2.6-drm-git-mm-revert-nopfn.patch DELETED ---
More information about the fedora-extras-commits
mailing list