diff options
author | Eric Anholt <anholt@freebsd.org> | 2002-10-30 06:10:34 +0000 |
---|---|---|
committer | Eric Anholt <anholt@freebsd.org> | 2002-10-30 06:10:34 +0000 |
commit | e656655a361acf73c5652fcef8cf6ba61dfe7a50 (patch) | |
tree | 96775fd22bd84a7030a114b108235ca07e12934c /shared-core/mga_state.c | |
parent | 344c7f6b412c19c963c33709f0d4a3a7205e1d79 (diff) |
Kernel support for vblank syncing on Rage 128 and Matrox.
Diffstat (limited to 'shared-core/mga_state.c')
-rw-r--r-- | shared-core/mga_state.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/shared-core/mga_state.c b/shared-core/mga_state.c index 26ea3e7f..61077220 100644 --- a/shared-core/mga_state.c +++ b/shared-core/mga_state.c @@ -1075,3 +1075,36 @@ int mga_dma_blit( DRM_IOCTL_ARGS ) return 0; } + +int mga_getparam( DRM_IOCTL_ARGS ) +{ + DRM_DEVICE; + drm_mga_private_t *dev_priv = dev->dev_private; + drm_mga_getparam_t param; + int value; + + if ( !dev_priv ) { + DRM_ERROR( "%s called with no initialization\n", __FUNCTION__ ); + return DRM_ERR(EINVAL); + } + + DRM_COPY_FROM_USER_IOCTL( param, (drm_mga_getparam_t *)data, + sizeof(param) ); + + DRM_DEBUG( "pid=%d\n", DRM_CURRENTPID ); + + switch( param.param ) { + case MGA_PARAM_IRQ_NR: + value = dev->irq; + break; + default: + return DRM_ERR(EINVAL); + } + + if ( DRM_COPY_TO_USER( param.value, &value, sizeof(int) ) ) { + DRM_ERROR( "copy_to_user\n" ); + return DRM_ERR(EFAULT); + } + + return 0; +} |