/* i810_load_pll - loads values for the hardware PLL clock  */
static void i810_load_pll(struct i810fb_par *par)
/* i810_load_pll - loads values for the hardware PLL clock  */
static void i810_load_pll(struct i810fb_par *par)
{
	u32 tmp1, tmp2;
	u8 __iomem *mmio = par->mmio_start_virtual;
	tmp1 = par->regs.M | par->regs.N << 16;
	tmp2 = i810_readl(DCLK_2D, mmio);
	tmp2 &= ~MN_MASK;
	i810_writel(DCLK_2D, mmio, tmp1 | tmp2);
	tmp1 = par->regs.P;
	tmp2 = i810_readl(DCLK_0DS, mmio);
	tmp2 &= ~(P_OR << 16);
	i810_writel(DCLK_0DS, mmio, (tmp1 << 16) | tmp2);
	i810_writeb(MSR_WRITE, mmio, par->regs.msr | 0xC8 | 1);
}