int nv04_pm_clocks_set(struct drm_device *dev, void *pre_state) { struct nouveau_device *device = nouveau_dev(dev); struct nouveau_timer *ptimer = nouveau_timer(device); struct nv04_pm_state *state = pre_state; prog_pll(dev, &state->core); if (state->memory.pll.reg) { prog_pll(dev, &state->memory); if (device->card_type < NV_30) { if (device->card_type == NV_20) nv_mask(device, 0x1002c4, 0, 1 << 20); /* Reset the DLLs */ nv_mask(device, 0x1002c0, 0, 1 << 8); } } nv_ofuncs(ptimer)->init(nv_object(ptimer)); kfree(state); return 0; }
int nv04_pm_clocks_set(struct drm_device *dev, void *pre_state) { struct drm_nouveau_private *dev_priv = dev->dev_private; struct nouveau_timer_engine *ptimer = &dev_priv->engine.timer; struct nv04_pm_state *state = pre_state; prog_pll(dev, &state->core); if (state->memory.pll.reg) { prog_pll(dev, &state->memory); if (dev_priv->card_type < NV_30) { if (dev_priv->card_type == NV_20) nv_mask(dev, 0x1002c4, 0, 1 << 20); /* Reset the DLLs */ nv_mask(dev, 0x1002c0, 0, 1 << 8); } } ptimer->init(dev); kfree(state); return 0; }