aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/sound/opl3.h9
-rw-r--r--sound/drivers/opl3/opl3_synth.c8
2 files changed, 15 insertions, 2 deletions
diff --git a/include/sound/opl3.h b/include/sound/opl3.h
index a0c5febdc4ea..6ba670707831 100644
--- a/include/sound/opl3.h
+++ b/include/sound/opl3.h
@@ -370,12 +370,13 @@ int snd_opl3_hwdep_new(struct snd_opl3 * opl3, int device, int seq_device,
370int snd_opl3_open(struct snd_hwdep * hw, struct file *file); 370int snd_opl3_open(struct snd_hwdep * hw, struct file *file);
371int snd_opl3_ioctl(struct snd_hwdep * hw, struct file *file, 371int snd_opl3_ioctl(struct snd_hwdep * hw, struct file *file,
372 unsigned int cmd, unsigned long arg); 372 unsigned int cmd, unsigned long arg);
373long snd_opl3_write(struct snd_hwdep *hw, const char __user *buf, long count,
374 loff_t *offset);
375int snd_opl3_release(struct snd_hwdep * hw, struct file *file); 373int snd_opl3_release(struct snd_hwdep * hw, struct file *file);
376 374
377void snd_opl3_reset(struct snd_opl3 * opl3); 375void snd_opl3_reset(struct snd_opl3 * opl3);
378 376
377#if defined(CONFIG_SND_SEQUENCER) || defined(CONFIG_SND_SEQUENCER_MODULE)
378long snd_opl3_write(struct snd_hwdep *hw, const char __user *buf, long count,
379 loff_t *offset);
379int snd_opl3_load_patch(struct snd_opl3 *opl3, 380int snd_opl3_load_patch(struct snd_opl3 *opl3,
380 int prog, int bank, int type, 381 int prog, int bank, int type,
381 const char *name, 382 const char *name,
@@ -384,5 +385,9 @@ int snd_opl3_load_patch(struct snd_opl3 *opl3,
384struct fm_patch *snd_opl3_find_patch(struct snd_opl3 *opl3, int prog, int bank, 385struct fm_patch *snd_opl3_find_patch(struct snd_opl3 *opl3, int prog, int bank,
385 int create_patch); 386 int create_patch);
386void snd_opl3_clear_patches(struct snd_opl3 *opl3); 387void snd_opl3_clear_patches(struct snd_opl3 *opl3);
388#else
389#define snd_opl3_write NULL
390static inline void snd_opl3_clear_patches(struct snd_opl3 *opl3) {}
391#endif
387 392
388#endif /* __SOUND_OPL3_H */ 393#endif /* __SOUND_OPL3_H */
diff --git a/sound/drivers/opl3/opl3_synth.c b/sound/drivers/opl3/opl3_synth.c
index a7bf7a4b1f85..fb64c890109b 100644
--- a/sound/drivers/opl3/opl3_synth.c
+++ b/sound/drivers/opl3/opl3_synth.c
@@ -22,6 +22,10 @@
22#include <sound/opl3.h> 22#include <sound/opl3.h>
23#include <sound/asound_fm.h> 23#include <sound/asound_fm.h>
24 24
25#if defined(CONFIG_SND_SEQUENCER) || defined(CONFIG_SND_SEQUENCER_MODULE)
26#define OPL3_SUPPORT_SYNTH
27#endif
28
25/* 29/*
26 * There is 18 possible 2 OP voices 30 * There is 18 possible 2 OP voices
27 * (9 in the left and 9 in the right). 31 * (9 in the left and 9 in the right).
@@ -155,9 +159,11 @@ int snd_opl3_ioctl(struct snd_hwdep * hw, struct file *file,
155#endif 159#endif
156 return snd_opl3_set_connection(opl3, (int) arg); 160 return snd_opl3_set_connection(opl3, (int) arg);
157 161
162#ifdef OPL3_SUPPORT_SYNTH
158 case SNDRV_DM_FM_IOCTL_CLEAR_PATCHES: 163 case SNDRV_DM_FM_IOCTL_CLEAR_PATCHES:
159 snd_opl3_clear_patches(opl3); 164 snd_opl3_clear_patches(opl3);
160 return 0; 165 return 0;
166#endif
161 167
162#ifdef CONFIG_SND_DEBUG 168#ifdef CONFIG_SND_DEBUG
163 default: 169 default:
@@ -178,6 +184,7 @@ int snd_opl3_release(struct snd_hwdep * hw, struct file *file)
178 return 0; 184 return 0;
179} 185}
180 186
187#ifdef OPL3_SUPPORT_SYNTH
181/* 188/*
182 * write the device - load patches 189 * write the device - load patches
183 */ 190 */
@@ -341,6 +348,7 @@ void snd_opl3_clear_patches(struct snd_opl3 *opl3)
341 } 348 }
342 memset(opl3->patch_table, 0, sizeof(opl3->patch_table)); 349 memset(opl3->patch_table, 0, sizeof(opl3->patch_table));
343} 350}
351#endif /* OPL3_SUPPORT_SYNTH */
344 352
345/* ------------------------------ */ 353/* ------------------------------ */
346 354