Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
[pandora-kernel.git] / sound / isa / gus / gus_mem_proc.c
index 4080255..2ccb3fa 100644 (file)
@@ -1,5 +1,5 @@
 /*
- *  Copyright (c) by Jaroslav Kysela <perex@suse.cz>
+ *  Copyright (c) by Jaroslav Kysela <perex@perex.cz>
  *  GUS's memory access via proc filesystem
  *
  *
@@ -19,7 +19,6 @@
  *
  */
 
-#include <sound/driver.h>
 #include <linux/slab.h>
 #include <sound/core.h>
 #include <sound/gus.h>
@@ -32,52 +31,21 @@ struct gus_proc_private {
        struct snd_gus_card * gus;
 };
 
-static long snd_gf1_mem_proc_dump(struct snd_info_entry *entry, void *file_private_data,
-                                 struct file *file, char __user *buf,
-                                 unsigned long count, unsigned long pos)
+static ssize_t snd_gf1_mem_proc_dump(struct snd_info_entry *entry,
+                                    void *file_private_data,
+                                    struct file *file, char __user *buf,
+                                    size_t count, loff_t pos)
 {
-       long size;
        struct gus_proc_private *priv = entry->private_data;
        struct snd_gus_card *gus = priv->gus;
        int err;
 
-       size = count;
-       if (pos + size > priv->size)
-               size = (long)priv->size - pos;
-       if (size > 0) {
-               if ((err = snd_gus_dram_read(gus, buf, pos, size, priv->rom)) < 0)
-                       return err;
-               return size;
-       }
-       return 0;
+       err = snd_gus_dram_read(gus, buf, pos, count, priv->rom);
+       if (err < 0)
+               return err;
+       return count;
 }                      
 
-static long long snd_gf1_mem_proc_llseek(struct snd_info_entry *entry,
-                                       void *private_file_data,
-                                       struct file *file,
-                                       long long offset,
-                                       int orig)
-{
-       struct gus_proc_private *priv = entry->private_data;
-
-       switch (orig) {
-       case 0: /* SEEK_SET */
-               file->f_pos = offset;
-               break;
-       case 1: /* SEEK_CUR */
-               file->f_pos += offset;
-               break;
-       case 2: /* SEEK_END, offset is negative */
-               file->f_pos = priv->size + offset;
-               break;
-       default:
-               return -EINVAL;
-       }
-       if (file->f_pos > priv->size)
-               file->f_pos = priv->size;
-       return file->f_pos;
-}
-
 static void snd_gf1_mem_proc_free(struct snd_info_entry *entry)
 {
        struct gus_proc_private *priv = entry->private_data;
@@ -86,7 +54,6 @@ static void snd_gf1_mem_proc_free(struct snd_info_entry *entry)
 
 static struct snd_info_entry_ops snd_gf1_mem_proc_ops = {
        .read = snd_gf1_mem_proc_dump,
-       .llseek = snd_gf1_mem_proc_llseek,
 };
 
 int snd_gf1_mem_proc_init(struct snd_gus_card * gus)