[PATCH] drm/radeon/kms: r600 fix color buffer pitch check

Jerome Glisse jglisse at redhat.com
Mon Apr 26 02:36:16 PDT 2010


Color buffer pitch need to be 64bits aligned not 64bytes.
This patch correct the cs checker.

Signed-off-by: Jerome Glisse <jglisse at redhat.com>
Cc: stable <stable at kernel.org>
---
 drivers/gpu/drm/radeon/r600_cs.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/radeon/r600_cs.c b/drivers/gpu/drm/radeon/r600_cs.c
index c39c1bc..865144e 100644
--- a/drivers/gpu/drm/radeon/r600_cs.c
+++ b/drivers/gpu/drm/radeon/r600_cs.c
@@ -193,14 +193,14 @@ static inline int r600_cs_track_validate_cb(struct radeon_cs_parser *p, int i)
 	switch (G_0280A0_ARRAY_MODE(track->cb_color_info[i])) {
 	case V_0280A0_ARRAY_LINEAR_GENERAL:
 	case V_0280A0_ARRAY_LINEAR_ALIGNED:
-		if (pitch & 0x3f) {
+		if (pitch & 0x3) {
 			dev_warn(p->dev, "%s:%d cb pitch (%d x %d = %d) invalid\n",
 				__func__, __LINE__, pitch, bpe, pitch * bpe);
 			return -EINVAL;
 		}
-		if ((pitch * bpe) & (track->group_size - 1)) {
-			dev_warn(p->dev, "%s:%d cb pitch (%d) invalid\n",
-				__func__, __LINE__, pitch);
+		if ((pitch * bpe * 8) & (track->group_size - 1)) {
+			dev_warn(p->dev, "%s:%d cb pitch (%d x %d = %d) %d invalid\n",
+				__func__, __LINE__, pitch, bpe, pitch * bpe, track->group_size);
 			return -EINVAL;
 		}
 		break;
-- 
1.7.0.1



More information about the dri-devel mailing list