Skip to contentSkip to conversation

radeon: Fix KMS CP writeback on big endian machines.

PATCH In review Cédric Cano 3 participants 6 messages Apr 19, 2011

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 radeon: Fix KMS CP writeback on big endian machines.

Hi,

The following patch fixes interrupt acknowledge when write-back is enabled on big endian platform.

The same should be applied on evergreen.

Cedric

Signed-off-by Cedric Cano<ccano at interfaceconcept.com>

---

drivers/gpu/drm/radeon/r600.c 2011-03-27 20:37:20.000000000 +0200 renamed from drivers/gpu/drm/radeon/r600.c 2011-04-19 09:52:13.000000000 +0200 +1 -1
diff -Naur linux-2.6.38.2/drivers/gpu/drm/radeon/r600.c linux-2.6.38.2/drivers/gpu/drm/radeon/r600.c
@@ -3227,7 +3227,7 @@
     u32 wptr, tmp;
 
     if (rdev->wb.enabled)
-        wptr = le32_to_cpu(rdev->wb.wb[R600_WB_IH_WPTR_OFFSET/4]);
+        wptr = rdev->wb.wb[R600_WB_IH_WPTR_OFFSET/4];
     else
         wptr = RREG32(IH_RB_WPTR);
#1 lore raw
Quoted 5 lines · Cédric Cano

The following patch fixes interrupt acknowledge when write-back is enabled on big endian platform.

The same should be applied on evergreen.

Can you include that in the patch? I somehow managed to miss these in my previous patch for older chips. :(

Signature · 6 lines
Earthling Michel Dänzer           |                http://www.vmware.com
Libre software enthusiast         |          Debian, X and DRI developer
_______________________________________________
dri-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/dri-devel
#2 lore raw
Signed-off-by Cedric Cano<ccano at interfaceconcept.com>

---

home/cec/tmp/linux-2.6.38.2/drivers/gpu/drm/radeon/evergreen.c 2011-03-27 20:37:20.000000000 +0200 renamed from drivers/gpu/drm/radeon/evergreen.c 2011-04-19 11:39:39.000000000 +0200 +1 -1
@@ -2587,7 +2587,7 @@
     u32 wptr, tmp;
 
     if (rdev->wb.enabled)
-        wptr = le32_to_cpu(rdev->wb.wb[R600_WB_IH_WPTR_OFFSET/4]);
+        wptr = rdev->wb.wb[R600_WB_IH_WPTR_OFFSET/4];
     else
         wptr = RREG32(IH_RB_WPTR);
 
Quoted 9 lines · Michel Dänzer
Quoted 4 lines · Cédric Cano

The following patch fixes interrupt acknowledge when write-back is enabled on big endian platform.

The same should be applied on evergreen.

Can you include that in the patch? I somehow managed to miss these in my previous patch for older chips. :(

_______________________________________________
dri-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/dri-devel

#3 lore raw
In reply to Michel Dänzer

Hi,

Sorry, I've done a patch in reverse mode :(.

I repost the patch for r600 and evergreen write back correction for big endian platforms.

Cedric

Signed-off-by Cedric Cano <ccano at interfaceconcept.com>

---

drivers/gpu/drm/radeon/evergreen.c 2011-04-19 11:39:39.000000000 +0200 renamed from drivers/gpu/drm/radeon/evergreen.c 2011-03-27 20:37:20.000000000 +0200 +1 -1
diff -Nuar linux-2.6.38.2/drivers/gpu/drm/radeon/evergreen.c linux-2.6.38.2/drivers/gpu/drm/radeon/evergreen.c
@@ -2587,7 +2587,7 @@
     u32 wptr, tmp;
 
     if (rdev->wb.enabled)
-        wptr = rdev->wb.wb[R600_WB_IH_WPTR_OFFSET/4];
+        wptr = le32_to_cpu(rdev->wb.wb[R600_WB_IH_WPTR_OFFSET/4]);
     else
         wptr = RREG32(IH_RB_WPTR);
 
drivers/gpu/drm/radeon/r600.c 2011-04-19 09:52:13.000000000 +0200 renamed from drivers/gpu/drm/radeon/r600.c 2011-03-27 20:37:20.000000000 +0200 +1 -1
diff -Nuar linux-2.6.38.2/drivers/gpu/drm/radeon/r600.c linux-2.6.38.2/drivers/gpu/drm/radeon/r600.c
@@ -3227,7 +3227,7 @@
     u32 wptr, tmp;
 
     if (rdev->wb.enabled)
-        wptr = rdev->wb.wb[R600_WB_IH_WPTR_OFFSET/4];
+        wptr = le32_to_cpu(rdev->wb.wb[R600_WB_IH_WPTR_OFFSET/4]);
     else
         wptr = RREG32(IH_RB_WPTR);
 
Quoted 11 lines · Michel Dänzer
Quoted 5 lines · Cédric Cano

The following patch fixes interrupt acknowledge when write-back is enabled on big endian platform.

The same should be applied on evergreen.

Can you include that in the patch? I somehow managed to miss these in my previous patch for older chips. :(

_______________________________________________
dri-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/dri-devel

Reviewed-by
#4 lore raw
Quoted 2 lines · Cédric Cano

Sorry, I've done a patch in reverse mode :(.

I can recommend using Git. :)

Quoted 30 lines

I repost the patch for r600 and evergreen write back correction for big endian platforms.

Cedric

Signed-off-by Cedric Cano <ccano at interfaceconcept.com>

---
diff -Nuar linux-2.6.38.2/drivers/gpu/drm/radeon/evergreen.c linux-2.6.38.2/drivers/gpu/drm/radeon/evergreen.c
--- linux-2.6.38.2/drivers/gpu/drm/radeon/evergreen.c 2011-03-27
20:37:20.000000000 +0200
+++ linux-2.6.38.2/drivers/gpu/drm/radeon/evergreen.c 2011-04-19
11:39:39.000000000 +0200

drivers/gpu/drm/radeon/evergreen.c 2011-04-19 11:39:39.000000000 +0200 renamed from drivers/gpu/drm/radeon/evergreen.c 2011-03-27 20:37:20.000000000 +0200 +1 -1
@@ -2587,7 +2587,7 @@
     u32 wptr, tmp;
 
     if (rdev->wb.enabled)
-        wptr = rdev->wb.wb[R600_WB_IH_WPTR_OFFSET/4];
+        wptr = le32_to_cpu(rdev->wb.wb[R600_WB_IH_WPTR_OFFSET/4]);
     else
         wptr = RREG32(IH_RB_WPTR);
 

diff -Nuar linux-2.6.38.2/drivers/gpu/drm/radeon/r600.c linux-2.6.38.2/drivers/gpu/drm/radeon/r600.c
--- linux-2.6.38.2/drivers/gpu/drm/radeon/r600.c 2011-03-27
20:37:20.000000000 +0200
+++ linux-2.6.38.2/drivers/gpu/drm/radeon/r600.c 2011-04-19
09:52:13.000000000 +0200

drivers/gpu/drm/radeon/evergreen.c 2011-04-19 11:39:39.000000000 +0200 line 3232

Quoted 7 lines
drivers/gpu/drm/radeon/evergreen.c 2011-04-19 11:39:39.000000000 +0200 renamed from drivers/gpu/drm/radeon/evergreen.c 2011-03-27 20:37:20.000000000 +0200 +1 -1
@@ -3227,7 +3227,7 @@
     u32 wptr, tmp;
 
     if (rdev->wb.enabled)
-        wptr = rdev->wb.wb[R600_WB_IH_WPTR_OFFSET/4];
+        wptr = le32_to_cpu(rdev->wb.wb[R600_WB_IH_WPTR_OFFSET/4]);
     else
         wptr = RREG32(IH_RB_WPTR);
Signature · 6 lines
Earthling Michel Dänzer           |                http://www.vmware.com
Libre software enthusiast         |          Debian, X and DRI developer
_______________________________________________
dri-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/dri-devel
#5 lore raw

PATCH 1/1 drm/radeon/kms: fix IH writeback on r6xx+ on big endian machines

From: Cédric Cano <[email protected]>

agd5f: fix commit message.

---
 drivers/gpu/drm/radeon/evergreen.c |    2 +-
 drivers/gpu/drm/radeon/r600.c      |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
drivers/gpu/drm/radeon/evergreen.c +1 -1
index 363f39b..eee208f 100644
@@ -2638,7 +2638,7 @@ static inline u32 evergreen_get_ih_wptr(struct radeon_device *rdev)
 	u32 wptr, tmp;
 
 	if (rdev->wb.enabled)
-		wptr = rdev->wb.wb[R600_WB_IH_WPTR_OFFSET/4];
+		wptr = le32_to_cpu(rdev->wb.wb[R600_WB_IH_WPTR_OFFSET/4]);
 	else
 		wptr = RREG32(IH_RB_WPTR);
 
drivers/gpu/drm/radeon/r600.c +1 -1
index 62fc968..d74d4d7 100644
@@ -3243,7 +3243,7 @@ static inline u32 r600_get_ih_wptr(struct radeon_device *rdev)
 	u32 wptr, tmp;
 
 	if (rdev->wb.enabled)
-		wptr = rdev->wb.wb[R600_WB_IH_WPTR_OFFSET/4];
+		wptr = le32_to_cpu(rdev->wb.wb[R600_WB_IH_WPTR_OFFSET/4]);
 	else
 		wptr = RREG32(IH_RB_WPTR);
 
Signature · 6 lines
1.7.1.1

_______________________________________________
dri-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/dri-devel