diff options
author | Alan Hourihane <alanh@fairlite.demon.co.uk> | 2003-04-22 12:52:17 +0000 |
---|---|---|
committer | Alan Hourihane <alanh@fairlite.demon.co.uk> | 2003-04-22 12:52:17 +0000 |
commit | 879e3d335c09bfe069948754600543291e8f8475 (patch) | |
tree | dc664107d8dd232d2205d80b399e757496df81cb /linux/gamma_dma.c | |
parent | 9c5d16216d35d4b815471ff62de79f7fff2b2a2c (diff) |
change PREINSTALL/POSTINSTALL/UNINSTALL irq code to real functions as per
the other drivers
Diffstat (limited to 'linux/gamma_dma.c')
-rw-r--r-- | linux/gamma_dma.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/linux/gamma_dma.c b/linux/gamma_dma.c index af64d371..baa6b287 100644 --- a/linux/gamma_dma.c +++ b/linux/gamma_dma.c @@ -811,3 +811,35 @@ int gamma_setsareactx(struct inode *inode, struct file *filp, up(&dev->struct_sem); return 0; } + +void DRM(driver_irq_preinstall)( drm_device_t *dev ) { + drm_gamma_private_t *dev_priv = + (drm_gamma_private_t *)dev->dev_private; + + while(GAMMA_READ(GAMMA_INFIFOSPACE) < 2); + + GAMMA_WRITE( GAMMA_GCOMMANDMODE, 0x00000004 ); + GAMMA_WRITE( GAMMA_GDMACONTROL, 0x00000000 ); +} + +void DRM(driver_irq_postinstall)( drm_device_t *dev ) { + drm_gamma_private_t *dev_priv = + (drm_gamma_private_t *)dev->dev_private; + + while(GAMMA_READ(GAMMA_INFIFOSPACE) < 3); + + GAMMA_WRITE( GAMMA_GINTENABLE, 0x00002001 ); + GAMMA_WRITE( GAMMA_COMMANDINTENABLE, 0x00000008 ); + GAMMA_WRITE( GAMMA_GDELAYTIMER, 0x00039090 ); +} + +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) < 3); + + GAMMA_WRITE( GAMMA_GDELAYTIMER, 0x00000000 ); + GAMMA_WRITE( GAMMA_COMMANDINTENABLE, 0x00000000 ); + GAMMA_WRITE( GAMMA_GINTENABLE, 0x00000000 ); +} |