diff --git a/include/sound/info.h b/include/sound/info.h
index 1d76bf3..df03e60 100644
--- a/include/sound/info.h
+++ b/include/sound/info.h
@@ -34,8 +34,6 @@
 	int error;		/* error code */
 };
 
-typedef struct snd_info_buffer snd_info_buffer_t;
-
 #define SNDRV_INFO_CONTENT_TEXT		0
 #define SNDRV_INFO_CONTENT_DATA		1
 
@@ -44,28 +42,28 @@
 struct snd_info_entry_text {
 	unsigned long read_size;
 	unsigned long write_size;
-	void (*read) (snd_info_entry_t *entry, snd_info_buffer_t * buffer);
-	void (*write) (snd_info_entry_t *entry, snd_info_buffer_t * buffer);
+	void (*read) (struct snd_info_entry *entry, struct snd_info_buffer *buffer);
+	void (*write) (struct snd_info_entry *entry, struct snd_info_buffer *buffer);
 };
 
 struct snd_info_entry_ops {
-	int (*open) (snd_info_entry_t *entry,
+	int (*open) (struct snd_info_entry *entry,
 		     unsigned short mode, void **file_private_data);
-	int (*release) (snd_info_entry_t * entry,
+	int (*release) (struct snd_info_entry * entry,
 			unsigned short mode, void *file_private_data);
-	long (*read) (snd_info_entry_t *entry, void *file_private_data,
+	long (*read) (struct snd_info_entry *entry, void *file_private_data,
 		      struct file * file, char __user *buf,
 		      unsigned long count, unsigned long pos);
-	long (*write) (snd_info_entry_t *entry, void *file_private_data,
+	long (*write) (struct snd_info_entry *entry, void *file_private_data,
 		       struct file * file, const char __user *buf,
 		       unsigned long count, unsigned long pos);
-	long long (*llseek) (snd_info_entry_t *entry, void *file_private_data,
+	long long (*llseek) (struct snd_info_entry *entry, void *file_private_data,
 			    struct file * file, long long offset, int orig);
-	unsigned int (*poll) (snd_info_entry_t *entry, void *file_private_data,
+	unsigned int (*poll) (struct snd_info_entry *entry, void *file_private_data,
 			      struct file * file, poll_table * wait);
-	int (*ioctl) (snd_info_entry_t *entry, void *file_private_data,
+	int (*ioctl) (struct snd_info_entry *entry, void *file_private_data,
 		      struct file * file, unsigned int cmd, unsigned long arg);
-	int (*mmap) (snd_info_entry_t *entry, void *file_private_data,
+	int (*mmap) (struct snd_info_entry *entry, void *file_private_data,
 		     struct inode * inode, struct file * file,
 		     struct vm_area_struct * vma);
 };
@@ -80,20 +78,20 @@
 		struct snd_info_entry_text text;
 		struct snd_info_entry_ops *ops;
 	} c;
-	snd_info_entry_t *parent;
-	snd_card_t *card;
+	struct snd_info_entry *parent;
+	struct snd_card *card;
 	struct module *module;
 	void *private_data;
-	void (*private_free)(snd_info_entry_t *entry);
+	void (*private_free)(struct snd_info_entry *entry);
 	struct proc_dir_entry *p;
 	struct semaphore access;
 };
 
-extern int snd_info_check_reserved_words(const char *str);
+int snd_info_check_reserved_words(const char *str);
 
 #if defined(CONFIG_SND_OSSEMUL) && defined(CONFIG_PROC_FS)
-extern int snd_info_minor_register(void);
-extern int snd_info_minor_unregister(void);
+int snd_info_minor_register(void);
+int snd_info_minor_unregister(void);
 #else
 #define snd_info_minor_register() /* NOP */
 #define snd_info_minor_unregister() /* NOP */
@@ -102,42 +100,42 @@
 
 #ifdef CONFIG_PROC_FS
 
-extern snd_info_entry_t *snd_seq_root;
+extern struct snd_info_entry *snd_seq_root;
 #ifdef CONFIG_SND_OSSEMUL
-extern snd_info_entry_t *snd_oss_root;
+extern struct snd_info_entry *snd_oss_root;
 #else
 #define snd_oss_root NULL
 #endif
 
-int snd_iprintf(snd_info_buffer_t * buffer, char *fmt,...) __attribute__ ((format (printf, 2, 3)));
+int snd_iprintf(struct snd_info_buffer * buffer, char *fmt,...) __attribute__ ((format (printf, 2, 3)));
 int snd_info_init(void);
 int snd_info_done(void);
 
-int snd_info_get_line(snd_info_buffer_t * buffer, char *line, int len);
+int snd_info_get_line(struct snd_info_buffer * buffer, char *line, int len);
 char *snd_info_get_str(char *dest, char *src, int len);
-snd_info_entry_t *snd_info_create_module_entry(struct module * module,
+struct snd_info_entry *snd_info_create_module_entry(struct module * module,
 					       const char *name,
-					       snd_info_entry_t * parent);
-snd_info_entry_t *snd_info_create_card_entry(snd_card_t * card,
+					       struct snd_info_entry * parent);
+struct snd_info_entry *snd_info_create_card_entry(struct snd_card * card,
 					     const char *name,
-					     snd_info_entry_t * parent);
-void snd_info_free_entry(snd_info_entry_t * entry);
-int snd_info_store_text(snd_info_entry_t * entry);
-int snd_info_restore_text(snd_info_entry_t * entry);
+					     struct snd_info_entry * parent);
+void snd_info_free_entry(struct snd_info_entry * entry);
+int snd_info_store_text(struct snd_info_entry * entry);
+int snd_info_restore_text(struct snd_info_entry * entry);
 
-int snd_info_card_create(snd_card_t * card);
-int snd_info_card_register(snd_card_t * card);
-int snd_info_card_free(snd_card_t * card);
-int snd_info_register(snd_info_entry_t * entry);
-int snd_info_unregister(snd_info_entry_t * entry);
+int snd_info_card_create(struct snd_card * card);
+int snd_info_card_register(struct snd_card * card);
+int snd_info_card_free(struct snd_card * card);
+int snd_info_register(struct snd_info_entry * entry);
+int snd_info_unregister(struct snd_info_entry * entry);
 
 /* for card drivers */
-int snd_card_proc_new(snd_card_t *card, const char *name, snd_info_entry_t **entryp);
+int snd_card_proc_new(struct snd_card *card, const char *name, struct snd_info_entry **entryp);
 
-static inline void snd_info_set_text_ops(snd_info_entry_t *entry, 
+static inline void snd_info_set_text_ops(struct snd_info_entry *entry, 
 					 void *private_data,
 					 long read_size,
-					 void (*read)(snd_info_entry_t *, snd_info_buffer_t *))
+					 void (*read)(struct snd_info_entry *, struct snd_info_buffer *))
 {
 	entry->private_data = private_data;
 	entry->c.text.read_size = read_size;
@@ -150,21 +148,21 @@
 #define snd_seq_root NULL
 #define snd_oss_root NULL
 
-static inline int snd_iprintf(snd_info_buffer_t * buffer, char *fmt,...) { return 0; }
+static inline int snd_iprintf(struct snd_info_buffer * buffer, char *fmt,...) { return 0; }
 static inline int snd_info_init(void) { return 0; }
 static inline int snd_info_done(void) { return 0; }
 
-static inline int snd_info_get_line(snd_info_buffer_t * buffer, char *line, int len) { return 0; }
+static inline int snd_info_get_line(struct snd_info_buffer * buffer, char *line, int len) { return 0; }
 static inline char *snd_info_get_str(char *dest, char *src, int len) { return NULL; }
-static inline snd_info_entry_t *snd_info_create_module_entry(struct module * module, const char *name, snd_info_entry_t * parent) { return NULL; }
-static inline snd_info_entry_t *snd_info_create_card_entry(snd_card_t * card, const char *name, snd_info_entry_t * parent) { return NULL; }
-static inline void snd_info_free_entry(snd_info_entry_t * entry) { ; }
+static inline struct snd_info_entry *snd_info_create_module_entry(struct module * module, const char *name, struct snd_info_entry * parent) { return NULL; }
+static inline struct snd_info_entry *snd_info_create_card_entry(struct snd_card * card, const char *name, struct snd_info_entry * parent) { return NULL; }
+static inline void snd_info_free_entry(struct snd_info_entry * entry) { ; }
 
-static inline int snd_info_card_create(snd_card_t * card) { return 0; }
-static inline int snd_info_card_register(snd_card_t * card) { return 0; }
-static inline int snd_info_card_free(snd_card_t * card) { return 0; }
-static inline int snd_info_register(snd_info_entry_t * entry) { return 0; }
-static inline int snd_info_unregister(snd_info_entry_t * entry) { return 0; }
+static inline int snd_info_card_create(struct snd_card * card) { return 0; }
+static inline int snd_info_card_register(struct snd_card * card) { return 0; }
+static inline int snd_info_card_free(struct snd_card * card) { return 0; }
+static inline int snd_info_register(struct snd_info_entry * entry) { return 0; }
+static inline int snd_info_unregister(struct snd_info_entry * entry) { return 0; }
 
 #define snd_card_proc_new(card,name,entryp)  0 /* always success */
 #define snd_info_set_text_ops(entry,private_data,read_size,read) /*NOP*/
@@ -185,7 +183,7 @@
 
 #define SNDRV_OSS_INFO_DEV_COUNT	6
 
-extern int snd_oss_info_register(int dev, int num, char *string);
+int snd_oss_info_register(int dev, int num, char *string);
 #define snd_oss_info_unregister(dev, num) snd_oss_info_register(dev, num, NULL)
 
 #endif /* CONFIG_SND_OSSEMUL && CONFIG_PROC_FS */
