]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - sound/isa/gus/gus_mem_proc.c
Merge branch 'topic/jack' into for-linus
[mv-sheeva.git] / sound / isa / gus / gus_mem_proc.c
index 7f96ac237f3c346ae7ecc5bfcdbbdc09ad190b41..2ccb3fadd7bed2eb7bdab1acb84b753abaa9d423 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
  *
  *
  *
  */
 
-#include <sound/driver.h>
 #include <linux/slab.h>
 #include <sound/core.h>
 #include <sound/gus.h>
 #include <sound/info.h>
 
-typedef struct gus_proc_private {
+struct gus_proc_private {
        int rom;                /* data are in ROM */
        unsigned int address;
        unsigned int size;
-       snd_gus_card_t * gus;
-} gus_proc_private_t;
+       struct snd_gus_card * gus;
+};
 
-static long snd_gf1_mem_proc_dump(snd_info_entry_t *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;
-       gus_proc_private_t *priv = entry->private_data;
-       snd_gus_card_t *gus = priv->gus;
+       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(snd_info_entry_t *entry,
-                                       void *private_file_data,
-                                       struct file *file,
-                                       long long offset,
-                                       int orig)
-{
-       gus_proc_private_t *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(snd_info_entry_t *entry)
+static void snd_gf1_mem_proc_free(struct snd_info_entry *entry)
 {
-       gus_proc_private_t *priv = entry->private_data;
+       struct gus_proc_private *priv = entry->private_data;
        kfree(priv);
 }
 
 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(snd_gus_card_t * gus)
+int snd_gf1_mem_proc_init(struct snd_gus_card * gus)
 {
        int idx;
        char name[16];
-       gus_proc_private_t *priv;
-       snd_info_entry_t *entry;
+       struct gus_proc_private *priv;
+       struct snd_info_entry *entry;
 
        for (idx = 0; idx < 4; idx++) {
                if (gus->gf1.mem_alloc.banks_8[idx].size > 0) {