[arch-commits] Commit in nouveau-drm/trunk (3 files)

andyrtr at archlinux.org andyrtr at archlinux.org
Sun Nov 1 21:37:58 UTC 2009


    Date: Sunday, November 1, 2009 @ 16:37:58
  Author: andyrtr
Revision: 57725

upgpkg: nouveau-drm 0.0.15_20091101-1
    new snapshot, make nouveau-dri an optdep; add experimental patch to fix resolution detection with nv44 cards

Added:
  nouveau-drm/trunk/fix_resolution_detection.patch
Modified:
  nouveau-drm/trunk/PKGBUILD
  nouveau-drm/trunk/nouveau-drm.install

--------------------------------+
 PKGBUILD                       |   18 +++++++----
 fix_resolution_detection.patch |   59 +++++++++++++++++++++++++++++++++++++++
 nouveau-drm.install            |    3 +
 3 files changed, 73 insertions(+), 7 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2009-11-01 20:16:10 UTC (rev 57724)
+++ PKGBUILD	2009-11-01 21:37:58 UTC (rev 57725)
@@ -3,7 +3,7 @@
 # Contributor: buddabrod <buddabrod at gmail.com>
 
 pkgname=nouveau-drm
-_snapdate=20091008
+_snapdate=20091101
 pkgver=0.0.15_${_snapdate} # see master/drivers/gpu/drm/nouveau/nouveau_drv.h for version
 _kernver='2.6.31-ARCH'
 pkgrel=1
@@ -14,17 +14,23 @@
 #makedepends=('git' 'autoconf' 'pkgconfig')
 install=${pkgname}.install
 license=('GPL')
-options=('force')
+#options=('force')
 source=(ftp://ftp.archlinux.org/other/$pkgname/master-${_snapdate}.tar.gz 
 	#http://people.freedesktop.org/~pq/nouveau-drm/master.tar.gz
 	# get the Makefile from http://cgit.freedesktop.org/nouveau/linux-2.6/plain/nouveau/Makefile?h=master-compat
-	Makefile)
-md5sums=('5b54442de27b76f7076b46dd803c65f1'
-         'b619729a9374b7172fc1a7ce59f7f3ad')
+	Makefile
+	fix_resolution_detection.patch)
+md5sums=('bff3fb394cedbf54564cdc242ca49f37'
+         'b619729a9374b7172fc1a7ce59f7f3ad'
+         '47382868360f998213fb0e62fed00716')
 
+ # http://nouveau.freedesktop.org/wiki/InstallDRM
+ 
 build() {
   cd ${srcdir}/master
-  
+  # try to fix http://bbs.archlinux.org/viewtopic.php?id=82363  -solved for my nv44 card
+  patch -Np0 -i ${srcdir}/fix_resolution_detection.patch || return 1
+
   mkdir nouveau
   cp $srcdir/Makefile ${srcdir}/master/nouveau/
   cd nouveau

Added: fix_resolution_detection.patch
===================================================================
--- fix_resolution_detection.patch	                        (rev 0)
+++ fix_resolution_detection.patch	2009-11-01 21:37:58 UTC (rev 57725)
@@ -0,0 +1,59 @@
+--- drivers/gpu/drm/nouveau/nv04_dac.c	2009-10-20 17:54:19.454045092 +0200
++++ drivers/gpu/drm/nouveau/nv04_dac.c.block3	2009-10-20 18:01:44.891084375 +0200
+@@ -223,6 +223,20 @@
+ 		saved_rtest_ctrl, temp, saved_gpio_ext = 0, routput;
+ 	int head, present = 0;
+ 
++nv_wr32(dev, 0x68252c, 0x100); /*363389.094484   write32 #1 NV11_PRAMDAC.OUTPUT_OR_2_3 <- {00000000000000000000000}, OUTPUT_SELECT_CRTC1 = 0x1, {0000000}, OUTPUT_DAC_ENABLE = 0x0*/ 
++nv_wr32(dev, 0x68252c, 0x100); /*363391.094548   write32 #1 NV11_PRAMDAC.OUTPUT_OR_2_3 <- {00000000000000000000000}, OUTPUT_SELECT_CRTC1 = 0x1, {0000000}, OUTPUT_DAC_ENABLE = 0x0*/ 
++nv_wr32(dev, 0x68252c, 0x101); /*363392.095582   write32 #1 NV11_PRAMDAC.OUTPUT_OR_2_3 <- {00000000000000000000000}, OUTPUT_SELECT_CRTC1 = 0x1, {0000000}, OUTPUT_DAC_ENABLE = 0x1*/ 
++nv_wr32(dev, 0x68252c, 0x101); /*363394.095650   write32 #1 NV11_PRAMDAC.OUTPUT_OR_2_3 <- {00000000000000000000000}, OUTPUT_SELECT_CRTC1 = 0x1, {0000000}, OUTPUT_DAC_ENABLE = 0x1*/ 
++nv_wr32(dev, 0x68252c, 0x100); /*363396.095714   write32 #1 NV11_PRAMDAC.OUTPUT_OR_2_3 <- {00000000000000000000000}, OUTPUT_SELECT_CRTC1 = 0x1, {0000000}, OUTPUT_DAC_ENABLE = 0x0*/ 
++nv_wr32(dev, 0x68252c, 0x101); /*363397.161792   write32 #1 NV11_PRAMDAC.OUTPUT_OR_2_3 <- {00000000000000000000000}, OUTPUT_SELECT_CRTC1 = 0x1, {0000000}, OUTPUT_DAC_ENABLE = 0x1*/ 
++nv_wr32(dev, 0x682610, 0x94050140); /*363399.161860   write32 #1 NV11_PRAMDAC[1].TEST_DATA <- 0x94050140*/ 
++nv_wr32(dev, 0x682610, 0x94050140); /*363400.161892   write32 #1 NV11_PRAMDAC[1].TEST_DATA <- 0x94050140*/ 
++nv_wr32(dev, 0x682608, 0xf0101000); /*363402.161956   write32 #1 NV11_PRAMDAC.TEST_CONTROL_OR_2_3 <- 0xf0101000*/ 
++nv_wr32(dev, 0x682608, 0x100000); /*363405.163058   write32 #1 NV11_PRAMDAC.TEST_CONTROL_OR_2_3 <- 0x00100000*/ 
++nv_wr32(dev, 0x68252c, 0x100); /*363406.163090   write32 #1 NV11_PRAMDAC.OUTPUT_OR_2_3 <- {00000000000000000000000}, OUTPUT_SELECT_CRTC1 = 0x1, {0000000}, OUTPUT_DAC_ENABLE = 0x0*/ 
++
++msleep(30);
++
+ #define RGB_TEST_DATA(r, g, b) (r << 0 | g << 10 | b << 20)
+ 	if (dcb->type == OUTPUT_TV) {
+ 		testval = RGB_TEST_DATA(0xa0, 0xa0, 0xa0);
+@@ -236,6 +250,8 @@
+ 			testval = dev_priv->vbios->dactestval;
+ 	}
+ 
++	testval = 0x94050140;
++
+ 	saved_rtest_ctrl = NVReadRAMDAC(dev, 0, NV_PRAMDAC_TEST_CONTROL + regoffset);
+ 	NVWriteRAMDAC(dev, 0, NV_PRAMDAC_TEST_CONTROL + regoffset,
+ 		      saved_rtest_ctrl & ~NV_PRAMDAC_TEST_CONTROL_PWRDWN_DAC_OFF);
+@@ -251,8 +267,10 @@
+ 	if (dev_priv->chipset >= 0x34) {
+ 		saved_gpio_ext = NVReadCRTC(dev, 0, NV_PCRTC_GPIO_EXT);
+ 
++#if 0
+ 		NVWriteCRTC(dev, 0, NV_PCRTC_GPIO_EXT, (saved_gpio_ext & ~(3 << 20)) |
+ 			    (dcb->type == OUTPUT_TV ? (1 << 20) : 0));
++#endif
+ 	}
+ 
+ 	msleep(4);
+@@ -267,13 +285,14 @@
+ #endif
+ 	/* nv driver and nv31 use 0xfffffeee, nv34 and 6600 use 0xfffffece */
+ 	routput = (saved_routput & 0xfffffece) | head << 8;
+-
++#if 0
+ 	if (nv_arch(dev) >= NV_40) {
+ 		if (dcb->type == OUTPUT_TV)
+ 			routput |= 1 << 20;
+ 		else
+ 			routput &= ~(1 << 20);
+ 	}
++#endif
+ 
+ 	NVWriteRAMDAC(dev, 0, NV_PRAMDAC_DACCLK + regoffset, routput);
+ 	msleep(1);

Modified: nouveau-drm.install
===================================================================
--- nouveau-drm.install	2009-11-01 20:16:10 UTC (rev 57724)
+++ nouveau-drm.install	2009-11-01 21:37:58 UTC (rev 57725)
@@ -1,6 +1,7 @@
 post_install() {
   KERNEL_VERSION='2.6.31-ARCH'
-  depmod -v $KERNEL_VERSION  > /dev/null 2>&1		 
+  depmod -v $KERNEL_VERSION  > /dev/null 2>&1
+  echo "if you are running kms in early mode please rebuild your initrd"
 }
 
 post_upgrade() {




More information about the arch-commits mailing list