X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=drivers%2Fvideo%2Fpm3fb.c;h=070659992c1841bd6fccac6f9d2abd56ec174011;hb=0c326331c8b107abc0a160e8899d749150b8f76a;hp=6a64b934133aec4f15874ac3b9190c4feaaf6460;hpb=1d677a6dfaac1d1cf51a7f58847077240985faf2;p=~andy%2Flinux diff --git a/drivers/video/pm3fb.c b/drivers/video/pm3fb.c index 6a64b934133..070659992c1 100644 --- a/drivers/video/pm3fb.c +++ b/drivers/video/pm3fb.c @@ -110,7 +110,8 @@ static inline void PM3_WRITE_REG(struct pm3_par *par, s32 off, u32 v) 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 *info) 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;