}
static int
-ad1816_mixer_ioctl (int dev, unsigned int cmd, caddr_t arg)
+ad1816_mixer_ioctl (int dev, unsigned int cmd, void __user * arg)
{
ad1816_info *devc = mixer_devs[dev]->devc;
int val;
+ int __user *p = arg;
DEBUGNOISE(printk(KERN_DEBUG "ad1816: mixer_ioctl called!\n"));
switch (cmd & 0xff){
case SOUND_MIXER_RECSRC:
- if (get_user(val, (int *)arg))
+ if (get_user(val, p))
return -EFAULT;
val=ad1816_set_recmask (devc, val);
- return put_user(val, (int *)arg);
+ return put_user(val, p);
break;
default:
- if (get_user(val, (int *)arg))
+ if (get_user(val, p))
return -EFAULT;
if ((val=ad1816_mixer_set (devc, cmd & 0xff, val))<0)
return val;
else
- return put_user(val, (int *)arg);
+ return put_user(val, p);
}
} else {
/* read ioctl */
case SOUND_MIXER_RECSRC:
val=devc->recmask;
- return put_user(val, (int *)arg);
+ return put_user(val, p);
break;
case SOUND_MIXER_DEVMASK:
val=devc->supported_devices;
- return put_user(val, (int *)arg);
+ return put_user(val, p);
break;
case SOUND_MIXER_STEREODEVS:
val=devc->supported_devices & ~(SOUND_MASK_SPEAKER | SOUND_MASK_IMIX);
- return put_user(val, (int *)arg);
+ return put_user(val, p);
break;
case SOUND_MIXER_RECMASK:
val=devc->supported_rec_devices;
- return put_user(val, (int *)arg);
+ return put_user(val, p);
break;
case SOUND_MIXER_CAPS:
val=SOUND_CAP_EXCL_INPUT;
- return put_user(val, (int *)arg);
+ return put_user(val, p);
break;
default:
if ((val=ad1816_mixer_get (devc, cmd & 0xff))<0)
return val;
else
- return put_user(val, (int *)arg);
+ return put_user(val, p);
}
}
} else