rpms/kernel/devel drm-add-more-drm-error-msg.patch, NONE, 1.1 drm-allow-r300-dst-pipe-config.patch, NONE, 1.1 drm-fix-pll-computation-precedence.patch, 1.1, 1.2 kernel.spec, 1.956, 1.957

Kristian Høgsberg krh at fedoraproject.org
Thu Sep 18 20:16:01 UTC 2008


Author: krh

Update of /cvs/pkgs/rpms/kernel/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv32454

Modified Files:
	drm-fix-pll-computation-precedence.patch kernel.spec 
Added Files:
	drm-add-more-drm-error-msg.patch 
	drm-allow-r300-dst-pipe-config.patch 
Log Message:
* Thu Sep 18 2008 Kristian Høgsberg <krh at redhat.com>
- Fix precedence in PLL value computation.
- Allow R300_DST_PIPE_CONFIG register write use by X.
- Add DRM_ERROR() for EINVAL returns from DRM_RADEON_CS that will crash X.


drm-add-more-drm-error-msg.patch:

--- NEW FILE drm-add-more-drm-error-msg.patch ---
>From 7ffccfd3bc0ab85635a0b4444f87541cec55a529 Mon Sep 17 00:00:00 2001
From: =?utf-8?q?Kristian=20H=C3=B8gsberg?= <krh at redhat.com>
Date: Thu, 18 Sep 2008 16:10:29 -0400
Subject: [PATCH] radeon: Add DRM_ERROR() messages to all EINVAL exits from DRM_RADEON_CS.

Shouldn't trigger under normal use and when something breaks, it will
be easier to debug.
---
 drivers/gpu/drm/radeon/radeon_cs.c  |    9 +++++++--
 drivers/gpu/drm/radeon/radeon_mem.c |    2 +-
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/radeon/radeon_cs.c b/drivers/gpu/drm/radeon/radeon_cs.c
index c8b0c97..b5a2be8 100644
--- a/drivers/gpu/drm/radeon/radeon_cs.c
+++ b/drivers/gpu/drm/radeon/radeon_cs.c
@@ -54,6 +54,7 @@ int radeon_cs_ioctl(struct drm_device *dev, void *data, struct drm_file *fpriv)
 	}
 	/* limit cs to 64K ib */
 	if (cs->dwords > (16 * 1024)) {
+		DRM_ERROR("cs->dwords too big: %d\n", cs->dwords);
 		return -EINVAL;
 	}
 	/* copy cs from userspace maybe we should copy into ib to save
@@ -72,6 +73,7 @@ int radeon_cs_ioctl(struct drm_device *dev, void *data, struct drm_file *fpriv)
 	/* get ib */
 	r = dev_priv->cs.ib_get(dev, &ib, cs->dwords, &card_offset);
 	if (r) {
+		DRM_ERROR("ib_get failed\n");
 		goto out;
 	}
 
@@ -185,6 +187,7 @@ static int radeon_cs_relocate_packet3(struct drm_device *dev, struct drm_file *f
 		packets[offset_dw + 2] = val;
 	}
 	default:
+		DRM_ERROR("reg is %x, not RADEON_CNTL_HOSTDATA_BLT\n", reg);
 		return -EINVAL;
 	}
 	return 0;
@@ -246,14 +249,16 @@ int radeon_cs_packet0(struct drm_device *dev, struct drm_file *file_priv,
 				}
 
 				ret = radeon_cs_relocate_packet0(dev, file_priv, packets, offset_dw);
-				if (ret)
+				if (ret) {
+					DRM_ERROR("failed to relocate packet\n");
 					return ret;
+				}
 				DRM_DEBUG("need to relocate %x %d\n", reg, flags);
 				/* okay it should be followed by a NOP */
 			} else if (flags == MARK_CHECK_SCISSOR) {
 				DRM_DEBUG("need to validate scissor %x %d\n", reg, flags);
 			} else {
-				DRM_DEBUG("illegal register %x %d\n", reg, flags);
+				DRM_ERROR("illegal register %x %d\n", reg, flags);
 				return -EINVAL;
 			}
 			break;
diff --git a/drivers/gpu/drm/radeon/radeon_mem.c b/drivers/gpu/drm/radeon/radeon_mem.c
index 4af5286..05bbb90 100644
--- a/drivers/gpu/drm/radeon/radeon_mem.c
+++ b/drivers/gpu/drm/radeon/radeon_mem.c
@@ -294,7 +294,7 @@ int radeon_mem_init_heap(struct drm_device *dev, void *data, struct drm_file *fi
 		return -EFAULT;
 
 	if (*heap) {
-		DRM_ERROR("heap already initialized?");
+		DRM_ERROR("heap already initialized?\n");
 		return -EFAULT;
 	}
 
-- 
1.5.6.GIT


drm-allow-r300-dst-pipe-config.patch:

--- NEW FILE drm-allow-r300-dst-pipe-config.patch ---
>From c3aaac2c89ce104fa1de8e79ef0f7c7f50012aaa Mon Sep 17 00:00:00 2001
From: =?utf-8?q?Kristian=20H=C3=B8gsberg?= <krh at redhat.com>
Date: Thu, 18 Sep 2008 16:07:50 -0400
Subject: [PATCH] Allow R300_DST_PIPE_CONFIG for R420 and up.

The X server emits writes to R300_DST_PIPE_CONFIG for R420 chipsets during
accel init.
---
 drivers/gpu/drm/radeon/r300_cmdbuf.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/gpu/drm/radeon/r300_cmdbuf.c b/drivers/gpu/drm/radeon/r300_cmdbuf.c
index cd6db70..422554e 100644
--- a/drivers/gpu/drm/radeon/r300_cmdbuf.c
+++ b/drivers/gpu/drm/radeon/r300_cmdbuf.c
@@ -248,7 +248,7 @@ void r300_init_reg_flags(struct drm_device *dev)
 	ADD_RANGE(R300_VAP_INPUT_ROUTE_1_0, 8);
 
 	ADD_RANGE(R500_SU_REG_DEST, 1);
-	if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_RV410) {
+	if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_R420) {
 		ADD_RANGE(R300_DST_PIPE_CONFIG, 1);
 	}
 
-- 
1.5.6.GIT


drm-fix-pll-computation-precedence.patch:

Index: drm-fix-pll-computation-precedence.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/drm-fix-pll-computation-precedence.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- drm-fix-pll-computation-precedence.patch	18 Sep 2008 19:01:21 -0000	1.1
+++ drm-fix-pll-computation-precedence.patch	18 Sep 2008 20:16:01 -0000	1.2
@@ -1,8 +1,12 @@
-commit ced5841f9f1858d83551714717d905a6a1ea28c1
-Author: Kristian Høgsberg <krh at redhat.com>
-Date:   Thu Sep 18 14:53:46 2008 -0400
+From ced5841f9f1858d83551714717d905a6a1ea28c1 Mon Sep 17 00:00:00 2001
+From: =?utf-8?q?Kristian=20H=C3=B8gsberg?= <krh at redhat.com>
+Date: Thu, 18 Sep 2008 14:53:46 -0400
+Subject: [PATCH] radeon kms: Get precedence right when computing PLL values.
 
-    radeon kms: Get precedence right when computing PLL values.
+---
+ drivers/gpu/drm/radeon/radeon_atombios.c |    8 ++++----
+ drivers/gpu/drm/radeon/radeon_combios.c  |    6 ++++++
+ 2 files changed, 10 insertions(+), 4 deletions(-)
 
 diff --git a/drivers/gpu/drm/radeon/radeon_atombios.c b/drivers/gpu/drm/radeon/radeon_atombios.c
 index 4d98cba..a1631fe 100644
@@ -48,3 +52,6 @@
  			}
  			return true;
  		}
+-- 
+1.5.6.GIT
+


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel.spec,v
retrieving revision 1.956
retrieving revision 1.957
diff -u -r1.956 -r1.957
--- kernel.spec	18 Sep 2008 19:01:21 -0000	1.956
+++ kernel.spec	18 Sep 2008 20:16:01 -0000	1.957
@@ -610,6 +610,8 @@
 Patch1812: drm-modesetting-i915.patch
 Patch1813: drm-nouveau.patch
 Patch1814: drm-fix-pll-computation-precedence.patch
+Patch1815: drm-allow-r300-dst-pipe-config.patch
+Patch1816: drm-add-more-drm-error-msg.patch
 
 # kludge to make ich9 e1000 work
 Patch2000: linux-2.6-e1000-ich9.patch
@@ -1169,6 +1171,8 @@
 ApplyPatch drm-modesetting-i915.patch
 ApplyPatch drm-nouveau.patch
 ApplyPatch drm-fix-pll-computation-precedence.patch
+ApplyPatch drm-allow-r300-dst-pipe-config.patch
+ApplyPatch drm-add-more-drm-error-msg.patch
 
 # linux1394 git patches
 ApplyPatch linux-2.6-firewire-git-update.patch
@@ -1762,6 +1766,8 @@
 %changelog
 * Thu Sep 18 2008 Kristian Høgsberg <krh at redhat.com>
 - Fix precedence in PLL value computation.
+- Allow R300_DST_PIPE_CONFIG register write use by X.
+- Add DRM_ERROR() for EINVAL returns from DRM_RADEON_CS that will crash X.
 
 * Thu Sep 18 2008 Dave Airlie <airlied at redhat.com>
 - update radeon LVDS bits from AMD




More information about the fedora-extras-commits mailing list