summaryrefslogtreecommitdiffstats
path: root/drivers/sound/dmasound/dmasound_core.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/sound/dmasound/dmasound_core.c')
-rw-r--r--drivers/sound/dmasound/dmasound_core.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/sound/dmasound/dmasound_core.c b/drivers/sound/dmasound/dmasound_core.c
index 21f54bdb1..5550ee2c9 100644
--- a/drivers/sound/dmasound/dmasound_core.c
+++ b/drivers/sound/dmasound/dmasound_core.c
@@ -936,6 +936,7 @@ static int sq_release(struct inode *inode, struct file *file)
static int sq_ioctl(struct inode *inode, struct file *file, u_int cmd,
u_long arg)
{
+ int val;
u_long fmt;
int data;
int size, nbufs;
@@ -1013,7 +1014,7 @@ static int sq_ioctl(struct inode *inode, struct file *file, u_int cmd,
} else
size = write_sq.bufSize;
sq_setup(&write_sq, write_sq.numBufs, nbufs, size);
- return 0;
+ return IOCTL_OUT(arg,write_sq.bufSize | write_sq.numBufs << 16);
case SNDCTL_DSP_GETOSPACE:
info.fragments = write_sq.max_active - write_sq.count;
info.fragstotal = write_sq.max_active;
@@ -1022,6 +1023,9 @@ static int sq_ioctl(struct inode *inode, struct file *file, u_int cmd,
if (copy_to_user((void *)arg, &info, sizeof(info)))
return -EFAULT;
return 0;
+ case SNDCTL_DSP_GETCAPS:
+ val = 1; /* Revision level of this ioctl() */
+ return IOCTL_OUT(arg,val);
default:
return mixer_ioctl(inode, file, cmd, arg);