From: Krzysztof Helt This patch replaces busy waiting with the cpu_relax() call. This makes scrolling faster. Signed-off-by: Krzysztof Helt Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton --- drivers/video/pm3fb.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff -puN drivers/video/pm3fb.c~pm3fb-replace-busy-waiting-with-cpu_relax drivers/video/pm3fb.c --- a/drivers/video/pm3fb.c~pm3fb-replace-busy-waiting-with-cpu_relax +++ a/drivers/video/pm3fb.c @@ -110,7 +110,8 @@ static inline void PM3_WRITE_REG(struct static inline void PM3_WAIT(struct pm3_par *par, u32 n) { - while (PM3_READ_REG(par, PM3InFIFOSpace) < n); + while (PM3_READ_REG(par, PM3InFIFOSpace) < n) + cpu_relax(); } static inline void PM3_WRITE_DAC_REG(struct pm3_par *par, unsigned r, u8 v) @@ -209,8 +210,8 @@ static int pm3fb_sync(struct fb_info *in PM3_WRITE_REG(par, PM3Sync, 0); mb(); do { - while ((PM3_READ_REG(par, PM3OutFIFOWords)) == 0); - rmb(); + while ((PM3_READ_REG(par, PM3OutFIFOWords)) == 0) + cpu_relax(); } while ((PM3_READ_REG(par, PM3OutputFifo)) != PM3Sync_Tag); return 0; _