This commit was manufactured by cvs2svn to create tag
[linux-2.6.git] / drivers / video / aty / radeon_pm.c
index c26f43c..c5e37bd 100644 (file)
@@ -319,30 +319,24 @@ static void radeon_pm_disable_iopad(struct radeonfb_info *rinfo)
 
 static void radeon_pm_program_v2clk(struct radeonfb_info *rinfo)
 {
-       /* we use __INPLL and _OUTPLL and do the locking ourselves... */
-       unsigned long flags;
-       spin_lock_irqsave(&rinfo->reg_lock, flags);
        /* Set v2clk to 65MHz */
-       __OUTPLL(pllPIXCLKS_CNTL,
-               __INPLL(rinfo, pllPIXCLKS_CNTL) & ~PIXCLKS_CNTL__PIX2CLK_SRC_SEL_MASK);
+       OUTPLL(pllPIXCLKS_CNTL,
+               INPLL(pllPIXCLKS_CNTL) & ~PIXCLKS_CNTL__PIX2CLK_SRC_SEL_MASK);
         
-       __OUTPLL(pllP2PLL_REF_DIV, 0x0000000c);
-       __OUTPLL(pllP2PLL_CNTL, 0x0000bf00);
-       __OUTPLL(pllP2PLL_DIV_0, 0x00020074 | P2PLL_DIV_0__P2PLL_ATOMIC_UPDATE_W);
+       OUTPLL(pllP2PLL_REF_DIV, 0x0000000c);
+       OUTPLL(pllP2PLL_CNTL, 0x0000bf00);
+       OUTPLL(pllP2PLL_DIV_0, 0x00020074 | P2PLL_DIV_0__P2PLL_ATOMIC_UPDATE_W);
        
-       __OUTPLL(pllP2PLL_CNTL,
-               __INPLL(rinfo, pllP2PLL_CNTL) & ~P2PLL_CNTL__P2PLL_SLEEP);
+       OUTPLL(pllP2PLL_CNTL, INPLL(pllP2PLL_CNTL) & ~P2PLL_CNTL__P2PLL_SLEEP);
        mdelay(1);
 
-       __OUTPLL(pllP2PLL_CNTL,
-               __INPLL(rinfo, pllP2PLL_CNTL) & ~P2PLL_CNTL__P2PLL_RESET);
+       OUTPLL(pllP2PLL_CNTL, INPLL(pllP2PLL_CNTL) & ~P2PLL_CNTL__P2PLL_RESET);         
        mdelay( 1);
 
-       __OUTPLL(pllPIXCLKS_CNTL,
-               (__INPLL(rinfo, pllPIXCLKS_CNTL) & ~PIXCLKS_CNTL__PIX2CLK_SRC_SEL_MASK)
+       OUTPLL(pllPIXCLKS_CNTL,
+               (INPLL(pllPIXCLKS_CNTL) & ~PIXCLKS_CNTL__PIX2CLK_SRC_SEL_MASK)
                | (0x03 << PIXCLKS_CNTL__PIX2CLK_SRC_SEL__SHIFT));
        mdelay( 1);     
-       spin_unlock_irqrestore(&rinfo->reg_lock, flags);
 }
 
 static void radeon_pm_low_current(struct radeonfb_info *rinfo)
@@ -397,7 +391,7 @@ static void radeon_pm_setup_for_suspend(struct radeonfb_info *rinfo)
        u32 pixclks_cntl;
        u32 disp_mis_cntl;
        u32 disp_pwr_man;
-       u32 tmp;
+
        
        /* Force Core Clocks */
        sclk_cntl = INPLL( pllSCLK_CNTL_M6);
@@ -502,10 +496,7 @@ static void radeon_pm_setup_for_suspend(struct radeonfb_info *rinfo)
        clk_pin_cntl = INPLL( pllCLK_PIN_CNTL);
        
        clk_pin_cntl &= ~CLK_PIN_CNTL__ACCESS_REGS_IN_SUSPEND;
-
-       /* because both INPLL and OUTPLL take the same lock, that's why. */
-       tmp = INPLL( pllMCLK_MISC) | MCLK_MISC__EN_MCLK_TRISTATE_IN_SUSPEND;
-       OUTPLL( pllMCLK_MISC, tmp);
+       OUTPLL( pllMCLK_MISC, INPLL( pllMCLK_MISC) | MCLK_MISC__EN_MCLK_TRISTATE_IN_SUSPEND);   
        
        /* AGP PLL control */
        OUTREG(BUS_CNTL1, INREG(BUS_CNTL1) |  BUS_CNTL1__AGPCLK_VALID);
@@ -525,9 +516,7 @@ static void radeon_pm_setup_for_suspend(struct radeonfb_info *rinfo)
                | (0x20<<AGP_CNTL__MAX_IDLE_CLK__SHIFT));
 
        /* ACPI mode */
-       /* because both INPLL and OUTPLL take the same lock, that's why. */
-       tmp = INPLL( pllPLL_PWRMGT_CNTL) & ~PLL_PWRMGT_CNTL__PM_MODE_SEL;
-       OUTPLL( pllPLL_PWRMGT_CNTL, tmp);
+       OUTPLL( pllPLL_PWRMGT_CNTL, INPLL( pllPLL_PWRMGT_CNTL) & ~PLL_PWRMGT_CNTL__PM_MODE_SEL);                                        
 
 
        disp_mis_cntl = INREG(DISP_MISC_CNTL);
@@ -778,7 +767,6 @@ static void radeon_pm_full_reset_sdram(struct radeonfb_info *rinfo)
 static void radeon_set_suspend(struct radeonfb_info *rinfo, int suspend)
 {
        u16 pwr_cmd;
-       u32 tmp;
 
        if (!rinfo->pm_reg)
                return;
@@ -814,9 +802,7 @@ static void radeon_set_suspend(struct radeonfb_info *rinfo, int suspend)
                        radeon_pm_setup_for_suspend(rinfo);
 
                        /* Reset the MDLL */
-                       /* because both INPLL and OUTPLL take the same lock, that's why. */
-                       tmp = INPLL( pllMDLL_CKO) | MDLL_CKO__MCKOA_RESET | MDLL_CKO__MCKOB_RESET;
-                       OUTPLL( pllMDLL_CKO, tmp );
+                       OUTPLL( pllMDLL_CKO, INPLL( pllMDLL_CKO) | MDLL_CKO__MCKOA_RESET | MDLL_CKO__MCKOB_RESET);
                }
 
                /* Switch PCI power managment to D2. */
@@ -873,7 +859,7 @@ int radeonfb_pci_suspend(struct pci_dev *pdev, u32 state)
 
        fb_set_suspend(info, 1);
 
-       if (!(info->flags & FBINFO_HWACCEL_DISABLED)) {
+       if (!radeon_accel_disabled()) {
                /* Make sure engine is reset */
                radeon_engine_idle();
                radeonfb_engine_reset(rinfo);
@@ -922,7 +908,7 @@ int radeonfb_pci_resume(struct pci_dev *pdev)
        /* Restore display & engine */
        radeonfb_set_par(info);
        fb_pan_display(info, &info->var);
-       fb_set_cmap(&info->cmap, info);
+       fb_set_cmap(&info->cmap, 1, info);
 
        /* Refresh */
        fb_set_suspend(info, 0);