Dynamic clock cause hard lockup on Radeon 7000 + SMP

Alex Deucher alexdeucher at gmail.com
Sat Nov 27 12:29:00 PST 2004


On Sat, 27 Nov 2004 09:30:31 +1100, Benjamin Herrenschmidt
<benh at kernel.crashing.org> wrote:
> On Wed, 2004-11-24 at 20:38 -0500, Alex Deucher wrote:
> 
> >
> > See if this works for you (also added to bugzilla).
> 
> Can you inline patches so they can be quoted ? :)

Sorry will do.  I wasn't sure how gmail dealt with attachments.

> 
> +           /* some non-mobility VE chips seem to have problems with the method of
> +            * forcing everything on as per below; thus we revert to the old
> +            * forceON behavior
> +            */
> +           if ((info->ChipFamily == CHIP_FAMILY_RV100) && (!info->IsMobility)) {
> +               if (info->HasCRTC2) {
> +                       tmp = INPLL(pScrn, RADEON_SCLK_CNTL);
> +                       OUTPLL(RADEON_SCLK_CNTL, ((tmp & ~RADEON_DYN_STOP_LAT_MASK) |
> +                                               RADEON_CP_MAX_DYN_STOP_LAT |
> +                                               RADEON_SCLK_FORCEON_MASK));
> +
> +                       if (info->ChipFamily == CHIP_FAMILY_RV200) {
> 
> This if if() cannot be reached...

Whoops.  I just cut and pasted the old forceON code from
radeon_accel.c.  That RV200 section should be removed.   I'll try and
come up with a cleaned up patch later this weekend.

Alex

> 
> +                               tmp = INPLL(pScrn, RADEON_SCLK_MORE_CNTL);
> +                               OUTPLL(RADEON_SCLK_MORE_CNTL, tmp
> +                                               | RADEON_SCLK_MORE_FORCEON);
> +                       }
> +               }
> 
>   .../...
> 
>



More information about the xorg mailing list