diff options
author | Eric Anholt <anholt@freebsd.org> | 2002-09-26 07:45:07 +0000 |
---|---|---|
committer | Eric Anholt <anholt@freebsd.org> | 2002-09-26 07:45:07 +0000 |
commit | 97961e2c65773328fe9c2e1d66e4a0b8a253d54d (patch) | |
tree | 3b81fbbe9ebef5f2398964df7dc392c73646add1 /bsd/gamma_dma.c | |
parent | 770d045d25728be51534b930afdfa36f3ffddbfc (diff) |
BSD vblank framework.
Diffstat (limited to 'bsd/gamma_dma.c')
-rw-r--r-- | bsd/gamma_dma.c | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/bsd/gamma_dma.c b/bsd/gamma_dma.c index 20b29793..714554d2 100644 --- a/bsd/gamma_dma.c +++ b/bsd/gamma_dma.c @@ -567,3 +567,45 @@ int gamma_dma( DRM_IOCTL_ARGS ) return retcode; } + +void DRM(driver_irq_preinstall)(drm_device_t *dev) { + drm_gamma_private_t *dev_priv = + (drm_gamma_private_t *)dev->dev_private; +#if 1 + while(GAMMA_READ(GAMMA_INFIFOSPACE) < 2); + GAMMA_WRITE( GAMMA_GCOMMANDMODE, 0x00000004 ); + GAMMA_WRITE( GAMMA_GDMACONTROL, 0x00000000 ); +#else + while(GAMMA_READ(GAMMA_INFIFOSPACE) < 2); + while(GAMMA_READ(GAMMA_INFIFOSPACE) < 2); + GAMMA_WRITE( GAMMA_GCOMMANDMODE, GAMMA_QUEUED_DMA_MODE ); + GAMMA_WRITE( GAMMA_GDMACONTROL, 0x00000000 ); +#endif +} + +void DRM(driver_irq_postinstall)(drm_device_t *dev) { + drm_gamma_private_t *dev_priv = + (drm_gamma_private_t *)dev->dev_private; +#if 1 + while(GAMMA_READ(GAMMA_INFIFOSPACE) < 2); + while(GAMMA_READ(GAMMA_INFIFOSPACE) < 3); + GAMMA_WRITE( GAMMA_GINTENABLE, 0x00002001 ); + GAMMA_WRITE( GAMMA_COMMANDINTENABLE, 0x00000008 ); + GAMMA_WRITE( GAMMA_GDELAYTIMER, 0x00039090 ); +#else + while(GAMMA_READ(GAMMA_INFIFOSPACE) < 2); + while(GAMMA_READ(GAMMA_INFIFOSPACE) < 2); + GAMMA_WRITE( GAMMA_GINTENABLE, 0x00002000 ); + GAMMA_WRITE( GAMMA_COMMANDINTENABLE, 0x00000004 ); +#endif +} + +void DRM(driver_irq_uninstall)( drm_device_t *dev ) { + drm_gamma_private_t *dev_priv = + (drm_gamma_private_t *)dev->dev_private; + while(GAMMA_READ(GAMMA_INFIFOSPACE) < 2); + while(GAMMA_READ(GAMMA_INFIFOSPACE) < 3); + GAMMA_WRITE( GAMMA_GDELAYTIMER, 0x00000000 ); + GAMMA_WRITE( GAMMA_COMMANDINTENABLE, 0x00000000 ); + GAMMA_WRITE( GAMMA_GINTENABLE, 0x00000000 ); +} |