patch-2_6_7-vs1_9_1_12
[linux-2.6.git] / sound / oss / pas2_pcm.c
index 6805962..4af6aaf 100644 (file)
@@ -17,6 +17,7 @@
 
 #include <linux/init.h>
 #include <linux/spinlock.h>
+#include <asm/timex.h>
 #include "sound_config.h"
 
 #include "pas2.h"
@@ -62,13 +63,13 @@ static int pcm_set_speed(int arg)
 
        if (pcm_channels & 2)
        {
-               foo = (596590 + (arg / 2)) / arg;
-               arg = (596590 + (foo / 2)) / foo;
+               foo = ((CLOCK_TICK_RATE / 2) + (arg / 2)) / arg;
+               arg = ((CLOCK_TICK_RATE / 2) + (foo / 2)) / foo;
        }
        else
        {
-               foo = (1193180 + (arg / 2)) / arg;
-               arg = (1193180 + (foo / 2)) / foo;
+               foo = (CLOCK_TICK_RATE + (arg / 2)) / arg;
+               arg = (CLOCK_TICK_RATE + (foo / 2)) / foo;
        }
 
        pcm_speed = arg;
@@ -150,16 +151,17 @@ static int pcm_set_bits(int arg)
        return pcm_bits;
 }
 
-static int pas_audio_ioctl(int dev, unsigned int cmd, caddr_t arg)
+static int pas_audio_ioctl(int dev, unsigned int cmd, void __user *arg)
 {
        int val, ret;
+       int __user *p = arg;
 
        DEB(printk("pas2_pcm.c: static int pas_audio_ioctl(unsigned int cmd = %X, unsigned int arg = %X)\n", cmd, arg));
 
        switch (cmd) 
        {
        case SOUND_PCM_WRITE_RATE:
-               if (get_user(val, (int *)arg)) 
+               if (get_user(val, p)) 
                        return -EFAULT;
                ret = pcm_set_speed(val);
                break;
@@ -169,13 +171,13 @@ static int pas_audio_ioctl(int dev, unsigned int cmd, caddr_t arg)
                break;
                
        case SNDCTL_DSP_STEREO:
-               if (get_user(val, (int *)arg)) 
+               if (get_user(val, p)) 
                        return -EFAULT;
                ret = pcm_set_channels(val + 1) - 1;
                break;
 
        case SOUND_PCM_WRITE_CHANNELS:
-               if (get_user(val, (int *)arg)) 
+               if (get_user(val, p)) 
                        return -EFAULT;
                ret = pcm_set_channels(val);
                break;
@@ -185,7 +187,7 @@ static int pas_audio_ioctl(int dev, unsigned int cmd, caddr_t arg)
                break;
 
        case SNDCTL_DSP_SETFMT:
-               if (get_user(val, (int *)arg))
+               if (get_user(val, p))
                        return -EFAULT;
                ret = pcm_set_bits(val);
                break;
@@ -197,7 +199,7 @@ static int pas_audio_ioctl(int dev, unsigned int cmd, caddr_t arg)
        default:
                return -EINVAL;
        }
-       return put_user(ret, (int *)arg);
+       return put_user(ret, p);
 }
 
 static void pas_audio_reset(int dev)