#include "nouveau_drv.h"
#include "nouveau_drm.h"
-static u32
-nv04_crystal_freq(struct drm_device *dev)
-{
- struct drm_nouveau_private *dev_priv = dev->dev_private;
- u32 extdev_boot0 = nv_rd32(dev, 0x101000);
- int type;
-
- type = !!(extdev_boot0 & 0x00000040);
- if ((dev_priv->chipset >= 0x17 && dev_priv->chipset < 0x20) ||
- dev_priv->chipset >= 0x25)
- type |= (extdev_boot0 & 0x00400000) ? 2 : 0;
-
- switch (type) {
- case 0: return 13500000;
- case 1: return 14318180;
- case 2: return 27000000;
- case 3: return 25000000;
- default:
- break;
- }
-
- return 0;
-}
-
int
nv04_timer_init(struct drm_device *dev)
{
nv_wr32(dev, NV04_PTIMER_INTR_0, 0xFFFFFFFF);
/* aim for 31.25MHz, which gives us nanosecond timestamps */
- d = 1000000000 / 32;
+ d = 1000000 / 32;
/* determine base clock for timer source */
if (dev_priv->chipset < 0x40) {
/*XXX: figure this out */
n = 0;
} else {
- n = nv04_crystal_freq(dev);
+ n = dev_priv->crystal;
m = 1;
while (n < (d * 2)) {
n += (n / m);