nfsd: nfsd should drop CAP_MKNOD for non-root
[safe/jmp/linux-2.6] / include / sound / opl3.h
index 7ee865d..6ba6707 100644 (file)
  *
  */
 
-#include "driver.h"
-#include <linux/time.h>
-#include <linux/mutex.h>
-#include "core.h"
-#include "hwdep.h"
-#include "timer.h"
-#include "seq_midi_emul.h"
+#include <sound/core.h>
+#include <sound/hwdep.h>
+#include <sound/timer.h>
+#include <sound/seq_midi_emul.h>
 #ifdef CONFIG_SND_SEQUENCER_OSS
-#include "seq_oss.h"
-#include "seq_oss_legacy.h"
+#include <sound/seq_oss.h>
+#include <sound/seq_oss_legacy.h>
 #endif
-#include "seq_device.h"
-#include "asound_fm.h"
+#include <sound/seq_device.h>
+#include <sound/asound_fm.h>
 
 /*
  *    Register numbers for the global registers
@@ -318,9 +315,9 @@ struct snd_opl3 {
        void *private_data;
        void (*private_free)(struct snd_opl3 *);
 
+       struct snd_hwdep *hwdep;
        spinlock_t reg_lock;
        struct snd_card *card;          /* The card that this belongs to */
-       int used;                       /* usage flag - exclusive */
        unsigned char fm_mode;          /* OPL mode, see SNDRV_DM_FM_MODE_XXX */
        unsigned char rhythm;           /* percussion mode flag */
        unsigned char max_voices;       /* max number of voices */
@@ -353,7 +350,6 @@ struct snd_opl3 {
        int sys_timer_status;           /* system timer run status */
        spinlock_t sys_timer_lock;      /* Lock for system timer access */
 #endif
-       struct mutex access_mutex;      /* locking */
 };
 
 /* opl3.c */
@@ -374,12 +370,13 @@ int snd_opl3_hwdep_new(struct snd_opl3 * opl3, int device, int seq_device,
 int snd_opl3_open(struct snd_hwdep * hw, struct file *file);
 int snd_opl3_ioctl(struct snd_hwdep * hw, struct file *file,
                   unsigned int cmd, unsigned long arg);
-long snd_opl3_write(struct snd_hwdep *hw, const char __user *buf, long count,
-                   loff_t *offset);
 int snd_opl3_release(struct snd_hwdep * hw, struct file *file);
 
 void snd_opl3_reset(struct snd_opl3 * opl3);
 
+#if defined(CONFIG_SND_SEQUENCER) || defined(CONFIG_SND_SEQUENCER_MODULE)
+long snd_opl3_write(struct snd_hwdep *hw, const char __user *buf, long count,
+                   loff_t *offset);
 int snd_opl3_load_patch(struct snd_opl3 *opl3,
                        int prog, int bank, int type,
                        const char *name,
@@ -388,5 +385,9 @@ int snd_opl3_load_patch(struct snd_opl3 *opl3,
 struct fm_patch *snd_opl3_find_patch(struct snd_opl3 *opl3, int prog, int bank,
                                     int create_patch);
 void snd_opl3_clear_patches(struct snd_opl3 *opl3);
+#else
+#define snd_opl3_write NULL
+static inline void snd_opl3_clear_patches(struct snd_opl3 *opl3) {}
+#endif
 
 #endif /* __SOUND_OPL3_H */