[ALSA] Add missing PAUSE ioctl [Linux 2.6.13]

This Linux kernel change "[ALSA] Add missing PAUSE ioctl" is included in the Linux 2.6.13 release. This change is authored by Takashi Iwai <tiwai [at] suse.de> on Sun May 15 15:04:14 2005 +0200. The commit for this change in Linux stable tree is 15790a6 (patch).

[ALSA] Add missing PAUSE ioctl

Timer Midlevel
Added the missing implemenation of TIMER PAUSE ioctl.

Signed-off-by: Takashi Iwai <tiwai@suse.de>

There are 13 lines of Linux source code added/deleted in this change. Code changes to Linux kernel are as follows.

 sound/core/timer.c        | 12 ++++++++++++
 sound/core/timer_compat.c |  1 +
 2 files changed, 13 insertions(+)

diff --git a/sound/core/timer.c b/sound/core/timer.c
index be6d37a..48aebdf 100644
--- a/sound/core/timer.c
+++ b/sound/core/timer.c
@@ -1680,6 +1680,16 @@ static int snd_timer_user_continue(struct file *file)
    return (err = snd_timer_continue(tu->timeri)) < 0 ? err : 0;
 }

+static int snd_timer_user_pause(struct file *file)
+{
+   int err;
+   snd_timer_user_t *tu;
+       
+   tu = file->private_data;
+   snd_assert(tu->timeri != NULL, return -ENXIO);
+   return (err = snd_timer_continue(tu->timeri)) < 0 ? err : 0;
+}
+
 static long snd_timer_user_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
 {
    snd_timer_user_t *tu;
@@ -1729,6 +1739,8 @@ static long snd_timer_user_ioctl(struct file *file, unsigned int cmd, unsigned l
        return snd_timer_user_stop(file);
    case SNDRV_TIMER_IOCTL_CONTINUE:
        return snd_timer_user_continue(file);
+   case SNDRV_TIMER_IOCTL_PAUSE:
+       return snd_timer_user_pause(file);
    }
    return -ENOTTY;
 }
diff --git a/sound/core/timer_compat.c b/sound/core/timer_compat.c
index 9fbc395..420817d 100644
--- a/sound/core/timer_compat.c
+++ b/sound/core/timer_compat.c
@@ -108,6 +108,7 @@ static long snd_timer_user_ioctl_compat(struct file *file, unsigned int cmd, uns
    case SNDRV_TIMER_IOCTL_START:
    case SNDRV_TIMER_IOCTL_STOP:
    case SNDRV_TIMER_IOCTL_CONTINUE:
+   case SNDRV_TIMER_IOCTL_PAUSE:
    case SNDRV_TIMER_IOCTL_NEXT_DEVICE:
        return snd_timer_user_ioctl(file, cmd, (unsigned long)argp);
    case SNDRV_TIMER_IOCTL_INFO32:

Leave a Reply

Your email address will not be published. Required fields are marked *