Skip to contentSkip to conversation

pm2fb: replace busy waiting with cpu_relax

PATCH New Antonino A. Daplas 1 participant 1 message Sep 15, 2007 Framebuffer layer

lore
Share & tools
lore
#0 lore raw

PATCH 10/12 pm2fb: replace busy waiting with cpu_relax

From: Krzysztof Helt <[email protected]>

This patch replaces busy waiting with the cpu_relax() call. This makes scrolling faster.

---

 drivers/video/pm2fb.c |    9 ++++-----
 1 files changed, 4 insertions(+), 5 deletions(-)
drivers/video/pm2fb.c +4 -5
index 9db1f2e..5591dfb 100644
@@ -193,8 +193,8 @@ #define WAIT_FIFO(p, a)
 #else
 static inline void WAIT_FIFO(struct pm2fb_par *p, u32 a)
 {
-	while (pm2_RD(p, PM2R_IN_FIFO_SPACE) < a);
-	mb();
+	while (pm2_RD(p, PM2R_IN_FIFO_SPACE) < a)
+		cpu_relax();
 }
 #endif
 
@@ -328,7 +328,7 @@ static void reset_card(struct pm2fb_par 
 	pm2_WR(p, PM2R_RESET_STATUS, 0);
 	mb();
 	while (pm2_RD(p, PM2R_RESET_STATUS) & PM2F_BEING_RESET)
-		;
+		cpu_relax();
 	mb();
 #ifdef CONFIG_FB_PM2_FIFO_DISCONNECT
 	DPRINTK("FIFO disconnect enabled\n");
@@ -1041,8 +1041,7 @@ static int pm2fb_sync(struct fb_info *in
 	mb();
 	do {
 		while (pm2_RD(par, PM2R_OUT_FIFO_WORDS) == 0)
-			udelay(10);
-		rmb();
+			cpu_relax();
 	} while (pm2_RD(par, PM2R_OUT_FIFO) != PM2TAG(PM2R_SYNC));
 
 	return 0;

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/