linux-fbdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC] fbdev/riva:change to use generice function to implement  reverse_order()
@ 2015-08-10 10:12 yalin wang
  2015-08-20 11:02 ` Tomi Valkeinen
  0 siblings, 1 reply; 9+ messages in thread
From: yalin wang @ 2015-08-10 10:12 UTC (permalink / raw)
  To: adaplas, plagnioj, tomi.valkeinen, linux-fbdev, open list

This change to use swab32(bitrev32()) to implement reverse_order()
function, have better performance on some platforms.

Signed-off-by: yalin wang <yalin.wang2010@gmail.com>
---
 drivers/video/fbdev/riva/fbdev.c | 19 ++++++-------------
 1 file changed, 6 insertions(+), 13 deletions(-)

diff --git a/drivers/video/fbdev/riva/fbdev.c b/drivers/video/fbdev/riva/fbdev.c
index f1ad274..4803901 100644
--- a/drivers/video/fbdev/riva/fbdev.c
+++ b/drivers/video/fbdev/riva/fbdev.c
@@ -40,6 +40,7 @@
 #include <linux/init.h>
 #include <linux/pci.h>
 #include <linux/backlight.h>
+#include <linux/swab.h>
 #include <linux/bitrev.h>
 #ifdef CONFIG_PMAC_BACKLIGHT
 #include <asm/machdep.h>
@@ -84,6 +85,7 @@
 #define SetBit(n)		(1<<(n))
 #define Set8Bits(value)		((value)&0xff)
 
+#define reverse_order(v) swab32(bitrev32(v))
 /* HW cursor parameters */
 #define MAX_CURS		32
 
@@ -451,15 +453,6 @@ static inline unsigned char MISCin(struct riva_par *par)
 	return (VGA_RD08(par->riva.PVIO, 0x3cc));
 }
 
-static inline void reverse_order(u32 *l)
-{
-	u8 *a = (u8 *)l;
-	a[0] = bitrev8(a[0]);
-	a[1] = bitrev8(a[1]);
-	a[2] = bitrev8(a[2]);
-	a[3] = bitrev8(a[3]);
-}
-
 /* ------------------------------------------------------------------------- *
  *
  * cursor stuff
@@ -497,8 +490,8 @@ static void rivafb_load_cursor_image(struct riva_par *par, u8 *data8,
 
 	for (i = 0; i < h; i++) {
 		b = *data++;
-		reverse_order(&b);
-		
+		b = reverse_order(b);
+
 		for (j = 0; j < w/2; j++) {
 			tmp = 0;
 #if defined (__BIG_ENDIAN)
@@ -1545,7 +1538,7 @@ static void rivafb_imageblit(struct fb_info *info,
 		for (i = 0; i < 16; i++) {
 			tmp = *((u32 *)cdat);
 			cdat = (u8 *)((u32 *)cdat + 1);
-			reverse_order(&tmp);
+			tmp = reverse_order(tmp);
 			NV_WR32(d, i*4, tmp);
 		}
 		size -= 16;
@@ -1555,7 +1548,7 @@ static void rivafb_imageblit(struct fb_info *info,
 		for (i = 0; i < size; i++) {
 			tmp = *((u32 *) cdat);
 			cdat = (u8 *)((u32 *)cdat + 1);
-			reverse_order(&tmp);
+			tmp = reverse_order(tmp);
 			NV_WR32(d, i*4, tmp);
 		}
 	}
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2015-08-24 13:53 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-08-10 10:12 [RFC] fbdev/riva:change to use generice function to implement reverse_order() yalin wang
2015-08-20 11:02 ` Tomi Valkeinen
2015-08-20 11:30   ` yalin wang
2015-08-21  6:41     ` Tomi Valkeinen
2015-08-21  7:46       ` yalin wang
2015-08-21  8:01         ` Tomi Valkeinen
2015-08-22  7:53           ` Afzal Mohammed
2015-08-24  8:31             ` yalin wang
2015-08-24 13:53               ` Afzal Mohammed

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).