aboutsummaryrefslogtreecommitdiff
path: root/shared-core/mga_state.c
diff options
context:
space:
mode:
authorEric Anholt <anholt@freebsd.org>2002-10-30 06:10:34 +0000
committerEric Anholt <anholt@freebsd.org>2002-10-30 06:10:34 +0000
commite656655a361acf73c5652fcef8cf6ba61dfe7a50 (patch)
tree96775fd22bd84a7030a114b108235ca07e12934c /shared-core/mga_state.c
parent344c7f6b412c19c963c33709f0d4a3a7205e1d79 (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.c33
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;
+}