Commit:     8690ba446defe2e2b81803756c099d2943dfd5fd
Parent:     8f485612231792373580e8b2fe8ceb3791549aa5
Author:     David Miller <[EMAIL PROTECTED]>
AuthorDate: Mon Mar 5 01:35:36 2007 -0800
Committer:  Linus Torvalds <[EMAIL PROTECTED]>
CommitDate: Mon Mar 5 08:12:54 2007 -0800

    [PATCH] video/aty/mach64_ct.c: fix bogus delay loop
    CT based mach64 cards were reported to hang on sparc64 boxes when
    compiled with gcc-4.1.x and later.
    Looking at this piece of code, it's no surprise.  A critical
    delay was implemented as an empty for() loop, and gcc 4.0.x
    and previous did not optimize it away, so we did get a delay.
    But gcc-4.1.x and later can optimize it away, and we get crashes.
    Use a real udelay() to fix this.  Fix verified on SunBlade100.
    Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
    Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>
 drivers/video/aty/mach64_ct.c |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)

diff --git a/drivers/video/aty/mach64_ct.c b/drivers/video/aty/mach64_ct.c
index f3b487b..1fdcfdb 100644
--- a/drivers/video/aty/mach64_ct.c
+++ b/drivers/video/aty/mach64_ct.c
@@ -598,7 +598,6 @@ static void aty_resume_pll_ct(const struct fb_info *info,
        struct atyfb_par *par = info->par;
        if (par->mclk_per != par->xclk_per) {
-               int i;
                * This disables the sclk, crashes the computer as reported:
                * aty_st_pll_ct(SPLL_CNTL2, 3, info);
@@ -614,7 +613,7 @@ static void aty_resume_pll_ct(const struct fb_info *info,
                 * helps for Rage Mobilities that sometimes crash when
                 * we switch to sclk. (Daniel Mantione, 13-05-2003)
-               for (i=0;i<=0x1ffff;i++);
+               udelay(500);
        aty_st_pll_ct(PLL_REF_DIV, pll->ct.pll_ref_div, par);
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at

Reply via email to