[arch-commits] Commit in nouveau-drm/trunk (3 files)
andyrtr at archlinux.org
andyrtr at archlinux.org
Sat Nov 21 17:41:14 UTC 2009
Date: Saturday, November 21, 2009 @ 12:41:14
Author: andyrtr
Revision: 59244
upgpkg: nouveau-drm 0.0.15_20091120-1
new snapshot 20091120, tv detection fixes are now upstream
Modified:
nouveau-drm/trunk/PKGBUILD
Deleted:
nouveau-drm/trunk/fix_resolution_detection.patch
nouveau-drm/trunk/tvdac_load_detection.patch
--------------------------------+
PKGBUILD | 14 +---
fix_resolution_detection.patch | 80 -------------------------
tvdac_load_detection.patch | 121 ---------------------------------------
3 files changed, 5 insertions(+), 210 deletions(-)
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2009-11-21 16:56:39 UTC (rev 59243)
+++ PKGBUILD 2009-11-21 17:41:14 UTC (rev 59244)
@@ -3,7 +3,7 @@
# Contributor: buddabrod <buddabrod at gmail.com>
pkgname=nouveau-drm
-_snapdate=20091111
+_snapdate=20091120
pkgver=0.0.15_${_snapdate} # see master/drivers/gpu/drm/nouveau/nouveau_drv.h for version
_kernver='2.6.31-ARCH'
pkgrel=1
@@ -16,18 +16,14 @@
license=('GPL')
#options=('force')
source=(ftp://ftp.archlinux.org/other/$pkgname/master-${_snapdate}.tar.gz
- #http://people.freedesktop.org/~pq/nouveau-drm/master.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
- tvdac_load_detection.patch)
-md5sums=('bbd406c6b8d93defbe17d4f4b477b500'
- 'b619729a9374b7172fc1a7ce59f7f3ad'
- 'bf0f9dcbcecd42f8e8f10b6ee786fb99')
+ Makefile)
+md5sums=('4dda39e216216b55e78e7a4586c137c8'
+ 'b619729a9374b7172fc1a7ce59f7f3ad')
build() {
cd ${srcdir}/master
- # try to fix http://bbs.archlinux.org/viewtopic.php?id=82363
- patch -Np1 -i ${srcdir}/tvdac_load_detection.patch || return 1
mkdir nouveau
cp $srcdir/Makefile ${srcdir}/master/nouveau/
Deleted: fix_resolution_detection.patch
===================================================================
--- fix_resolution_detection.patch 2009-11-21 16:56:39 UTC (rev 59243)
+++ fix_resolution_detection.patch 2009-11-21 17:41:14 UTC (rev 59244)
@@ -1,80 +0,0 @@
-diff --git a/drivers/gpu/drm/nouveau/nv04_dac.c b/drivers/gpu/drm/nouveau/nv04_dac.c
-index 587b6f5..3aedd20 100644
---- a/drivers/gpu/drm/nouveau/nv04_dac.c
-+++ b/drivers/gpu/drm/nouveau/nv04_dac.c
-@@ -236,29 +236,42 @@ enum drm_connector_status nv17_dac_detect(struct drm_encoder *encoder,
- testval = dev_priv->vbios->dactestval;
- }
-
-+ nv_wr32(dev, 0x60081c, 0x22255256); /*216780.520000 write32 #1 NV_PCRTC[0].CRTC_081C <- 0x22255256*/
-+ nv_wr32(dev, 0x60281c, 0x22255256); /*216781.520033 write32 #1 NV_PCRTC[1].CRTC_081C <- 0x22255256*/
-+ nv_wr32(dev, 0x1084, 0x205749); /*216786.521228 write32 #1 NV_PBUS+0x84 <- 0x00205749*/
-+ nv_wr32(dev, 0x1588, 0x88802015); /*216796.521681 write32 #1 NV_PBUS+0x588 <- 0x88802015*/
-+ nv_wr32(dev, 0x682608, 0x20100000); /*216798.521747 write32 #1 NV11_PRAMDAC.TEST_CONTROL_OR_2_3 <- 0x20100000*/
-+ nv_wr32(dev, 0x68252c, 0x111);
-+ msleep(10);
-+
- 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);
-
- saved_powerctrl_2 = nvReadMC(dev, NV_PBUS_POWERCTRL_2);
-
-- nvWriteMC(dev, NV_PBUS_POWERCTRL_2, saved_powerctrl_2 & 0xd7ffffff);
-+ nvWriteMC(dev, NV_PBUS_POWERCTRL_2, saved_powerctrl_2 /*& 0xd7ffffff */);
- if (regoffset == 0x68) {
- saved_powerctrl_4 = nvReadMC(dev, NV_PBUS_POWERCTRL_4);
-+#if 0
- nvWriteMC(dev, NV_PBUS_POWERCTRL_4, saved_powerctrl_4 & 0xffffffcf);
-+#endif
- }
-
- 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);
-+ msleep(10);
-
- saved_routput = NVReadRAMDAC(dev, 0, NV_PRAMDAC_DACCLK + regoffset);
-- head = (saved_routput & 0x100) >> 8;
-+ /* head = (saved_routput & 0x100) >> 8; */
-+ head = 1;
- #if 0
- /* if there's a spare crtc, using it will minimise flicker for the case
- * where the in-use crtc is in use by an off-chip tmds encoder */
-@@ -267,13 +280,14 @@ enum drm_connector_status nv17_dac_detect(struct drm_encoder *encoder,
- #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);
-@@ -286,10 +300,12 @@ enum drm_connector_status nv17_dac_detect(struct drm_encoder *encoder,
- temp = NVReadRAMDAC(dev, head, NV_PRAMDAC_TEST_CONTROL);
- NVWriteRAMDAC(dev, head, NV_PRAMDAC_TEST_CONTROL,
- temp | NV_PRAMDAC_TEST_CONTROL_TP_INS_EN_ASSERTED);
-- msleep(5);
-+ msleep(10);
-
- temp = NVReadRAMDAC(dev, 0, NV_PRAMDAC_TEST_CONTROL + regoffset);
-
-+ printk("NV_PRAMDAC_TEST_CONTROL + %x: %x\n", regoffset, temp);
-+
- if (dcb->type == OUTPUT_TV)
- present = (nv17_tv_detect(encoder, connector, (temp >> 28) & 0xe)
- == connector_status_connected);
Deleted: tvdac_load_detection.patch
===================================================================
--- tvdac_load_detection.patch 2009-11-21 16:56:39 UTC (rev 59243)
+++ tvdac_load_detection.patch 2009-11-21 17:41:14 UTC (rev 59244)
@@ -1,121 +0,0 @@
-diff --git a/drivers/gpu/drm/nouveau/nv04_dac.c b/drivers/gpu/drm/nouveau/nv04_dac.c
-index 587b6f5..80a1636 100644
---- a/drivers/gpu/drm/nouveau/nv04_dac.c
-+++ b/drivers/gpu/drm/nouveau/nv04_dac.c
-@@ -220,7 +220,8 @@ enum drm_connector_status nv17_dac_detect(struct drm_encoder *encoder,
- struct dcb_entry *dcb = nouveau_encoder(encoder)->dcb;
- uint32_t testval, regoffset = nv04_dac_output_offset(encoder);
- uint32_t saved_powerctrl_2 = 0, saved_powerctrl_4 = 0, saved_routput,
-- saved_rtest_ctrl, temp, saved_gpio_ext = 0, routput;
-+ saved_rtest_ctrl, temp, saved_gpio_ext = 0, saved_pcrtc_850 = 0,
-+ routput;
- int head, present = 0;
-
- #define RGB_TEST_DATA(r, g, b) (r << 0 | g << 10 | b << 20)
-@@ -248,11 +249,31 @@ enum drm_connector_status nv17_dac_detect(struct drm_encoder *encoder,
- nvWriteMC(dev, NV_PBUS_POWERCTRL_4, saved_powerctrl_4 & 0xffffffcf);
- }
-
-- if (dev_priv->chipset >= 0x34) {
-+ if (nv_arch(dev) >= NV_30) {
- saved_gpio_ext = NVReadCRTC(dev, 0, NV_PCRTC_GPIO_EXT);
-+ printk("PCRTC[0]+GPIO_EXT: %x\n", saved_gpio_ext);
-+ }
-+
-+ if (nv_arch(dev) >= NV_40) {
-+ saved_pcrtc_850 = NVReadCRTC(dev, 0, NV_PCRTC_850);
-+ printk("PCRTC[0]+850: %x\n", saved_pcrtc_850);
-+
-+ }
-
-- NVWriteCRTC(dev, 0, NV_PCRTC_GPIO_EXT, (saved_gpio_ext & ~(3 << 20)) |
-+ if ((dev_priv->chipset >= 0x34 && dev_priv->chipset < 0x44) ||
-+ (nv_arch(dev) == NV_30 && !dev_priv->VBIOS.is_mobile)) {
-+ NVWriteCRTC(dev, 0, NV_PCRTC_GPIO_EXT,
-+ (saved_gpio_ext & ~(3 << 20)) |
- (dcb->type == OUTPUT_TV ? (1 << 20) : 0));
-+
-+ } else if (dev_priv->chipset >= 0x44) {
-+ NVWriteCRTC(dev, 0, NV_PCRTC_850,
-+ (saved_pcrtc_850 & ~0xf0) |
-+ (dcb->type == OUTPUT_TV ? 0x50 : 0x00));
-+
-+ NVWriteCRTC(dev, 0, NV_PCRTC_GPIO_EXT,
-+ (saved_gpio_ext & ~0xf0) |
-+ (dcb->type == OUTPUT_TV ? 0x50 : 0x00));
- }
-
- msleep(4);
-@@ -268,7 +289,7 @@ enum drm_connector_status nv17_dac_detect(struct drm_encoder *encoder,
- /* nv driver and nv31 use 0xfffffeee, nv34 and 6600 use 0xfffffece */
- routput = (saved_routput & 0xfffffece) | head << 8;
-
-- if (nv_arch(dev) >= NV_40) {
-+ if (dev_priv->chipset >= 0x4b) {
- if (dcb->type == OUTPUT_TV)
- routput |= 1 << 20;
- else
-@@ -289,6 +310,7 @@ enum drm_connector_status nv17_dac_detect(struct drm_encoder *encoder,
- msleep(5);
-
- temp = NVReadRAMDAC(dev, 0, NV_PRAMDAC_TEST_CONTROL + regoffset);
-+ printk("NV_PRAMDAC_TEST_CONTROL + %x: %x\n", regoffset, temp);
-
- if (dcb->type == OUTPUT_TV)
- present = (nv17_tv_detect(encoder, connector, (temp >> 28) & 0xe)
-@@ -308,8 +330,11 @@ enum drm_connector_status nv17_dac_detect(struct drm_encoder *encoder,
- nvWriteMC(dev, NV_PBUS_POWERCTRL_4, saved_powerctrl_4);
- nvWriteMC(dev, NV_PBUS_POWERCTRL_2, saved_powerctrl_2);
-
-- if (dev_priv->chipset >= 0x34)
-- NVWriteRAMDAC(dev, 0, NV_PCRTC_GPIO_EXT, saved_gpio_ext);
-+ if (nv_arch(dev) >= NV_30)
-+ NVWriteCRTC(dev, 0, NV_PCRTC_GPIO_EXT, saved_gpio_ext);
-+
-+ if (nv_arch(dev) >= NV_40)
-+ NVWriteCRTC(dev, 0, NV_PCRTC_850, saved_pcrtc_850);
-
- if (present) {
- NV_INFO(dev, "Load detected on output %c\n", '@' + ffs(dcb->or));
-diff --git a/drivers/gpu/drm/nouveau/nv17_tv.c b/drivers/gpu/drm/nouveau/nv17_tv.c
-index 34f95c7..0c125e1 100644
---- a/drivers/gpu/drm/nouveau/nv17_tv.c
-+++ b/drivers/gpu/drm/nouveau/nv17_tv.c
-@@ -237,14 +237,20 @@ static void nv17_tv_dpms(struct drm_encoder *encoder, int mode)
-
- nv_load_ptv(dev, regs, 200);
-
-- if (dev_priv->chipset >= 0x34) {
-- uint32_t *gpio_ext = &dev_priv->mode_reg.crtc_reg[0].gpio_ext;
--
-- *gpio_ext &= ~(3 << 20);
-- if (mode == DRM_MODE_DPMS_ON)
-- *gpio_ext |= 1 << 20;
--
-- NVWriteCRTC(dev, 0, NV_PCRTC_GPIO_EXT, *gpio_ext);
-+ if ((dev_priv->chipset >= 0x34 && dev_priv->chipset < 0x44) ||
-+ (nv_arch(dev) == NV_30 && !dev_priv->VBIOS.is_mobile)) {
-+ NVWriteCRTC(dev, 0, NV_PCRTC_GPIO_EXT,
-+ (dev_priv->mode_reg.crtc_reg[0].gpio_ext & ~(3 << 20)) |
-+ (mode == DRM_MODE_DPMS_ON ? (1 << 20) : 0));
-+
-+ } else if (dev_priv->chipset >= 0x44) {
-+ NVWriteCRTC(dev, 0, NV_PCRTC_850,
-+ (NVReadCRTC(dev, 0, NV_PCRTC_850) & ~0xf0) |
-+ (mode == DRM_MODE_DPMS_ON ? 0x50 : 0x00));
-+
-+ NVWriteCRTC(dev, 0, NV_PCRTC_GPIO_EXT,
-+ (dev_priv->mode_reg.crtc_reg[0].gpio_ext & ~0xf0) |
-+ (mode == DRM_MODE_DPMS_ON ? 0x50 : 0x00));
- }
-
- nv04_dac_update_dacclk(encoder, mode == DRM_MODE_DPMS_ON);
-@@ -299,7 +305,7 @@ static void nv17_tv_prepare(struct drm_encoder *encoder)
- /* Set the DACCLK register */
- dacclk = (NVReadRAMDAC(dev, 0, dacclk_off) & ~0x30) | 0x1;
-
-- if (nv_arch(dev) == NV_40)
-+ if (dev_priv->chipset >= 0x4b)
- dacclk |= 1 << 20;
-
- if (tv_norm->kind == CTV_ENC_MODE) {
More information about the arch-commits
mailing list