drm_dbg_kms(dev, "clock: %ld vco: %ld m: %d n: %d p: %d s: %d\n",
                    clock, f_vco, m, n, p, s);
 
+       WREG_MISC_MASKED(MGAREG_MISC_CLKSEL_MGA, MGAREG_MISC_CLKSEL_MASK);
+
        WREG_DAC(MGA1064_PIX_PLLC_M, m);
        WREG_DAC(MGA1064_PIX_PLLC_N, n);
        WREG_DAC(MGA1064_PIX_PLLC_P, (p | (s << 3)));
                return 1;
        }
 
+       WREG_MISC_MASKED(MGAREG_MISC_CLKSEL_MGA, MGAREG_MISC_CLKSEL_MASK);
+
        WREG_DAC(MGA1064_PIX_PLLC_M, m);
        WREG_DAC(MGA1064_PIX_PLLC_N, n);
        WREG_DAC(MGA1064_PIX_PLLC_P, p);
                }
        }
 
+       WREG_MISC_MASKED(MGAREG_MISC_CLKSEL_MGA, MGAREG_MISC_CLKSEL_MASK);
+
        for (i = 0; i <= 32 && pll_locked == false; i++) {
                if (i > 0) {
                        WREG8(MGAREG_CRTC_INDEX, 0x1e);
                }
        }
 
+       WREG_MISC_MASKED(MGAREG_MISC_CLKSEL_MGA, MGAREG_MISC_CLKSEL_MASK);
+
        WREG8(DAC_INDEX, MGA1064_PIX_CLK_CTL);
        tmp = RREG8(DAC_DATA);
        tmp |= MGA1064_PIX_CLK_CTL_CLK_DIS;
                        }
                }
        }
+
+       WREG_MISC_MASKED(MGAREG_MISC_CLKSEL_MGA, MGAREG_MISC_CLKSEL_MASK);
+
        for (i = 0; i <= 32 && pll_locked == false; i++) {
                WREG8(DAC_INDEX, MGA1064_PIX_CLK_CTL);
                tmp = RREG8(DAC_DATA);
                }
        }
 
+       WREG_MISC_MASKED(MGAREG_MISC_CLKSEL_MGA, MGAREG_MISC_CLKSEL_MASK);
+
        WREG8(DAC_INDEX, MGA1064_PIX_CLK_CTL);
        tmp = RREG8(DAC_DATA);
        tmp |= MGA1064_PIX_CLK_CTL_CLK_DIS;
 
 static int mgag200_crtc_set_plls(struct mga_device *mdev, long clock)
 {
-       u8 misc;
-
        switch(mdev->type) {
        case G200_PCI:
        case G200_AGP:
                return mga_g200er_set_plls(mdev, clock);
        }
 
-       misc = RREG8(MGA_MISC_IN);
-       misc &= ~MGAREG_MISC_CLK_SEL_MASK;
-       misc |= MGAREG_MISC_CLK_SEL_MGA_MSK;
-       WREG8(MGA_MISC_OUT, misc);
-
        return 0;
 }
 
 
 
 #define MGAREG_MISC_IOADSEL    (0x1 << 0)
 #define MGAREG_MISC_RAMMAPEN   (0x1 << 1)
-#define MGAREG_MISC_CLK_SEL_MASK       GENMASK(3, 2)
-#define MGAREG_MISC_CLK_SEL_VGA25      (0x0 << 2)
-#define MGAREG_MISC_CLK_SEL_VGA28      (0x1 << 2)
-#define MGAREG_MISC_CLK_SEL_MGA_PIX    (0x2 << 2)
-#define MGAREG_MISC_CLK_SEL_MGA_MSK    (0x3 << 2)
+#define MGAREG_MISC_CLKSEL_MASK                GENMASK(3, 2)
+#define MGAREG_MISC_CLKSEL_VGA25       (0x0 << 2)
+#define MGAREG_MISC_CLKSEL_VGA28       (0x1 << 2)
+#define MGAREG_MISC_CLKSEL_MGA         (0x3 << 2)
 #define MGAREG_MISC_VIDEO_DIS  (0x1 << 4)
 #define MGAREG_MISC_HIGH_PG_SEL        (0x1 << 5)
 #define MGAREG_MISC_HSYNCPOL           BIT(6)