Re: [build bug] sound/drivers/opl3/opl3_synth.c

From: Takashi Iwai
Date: Fri Feb 01 2008 - 05:40:35 EST


At Fri, 1 Feb 2008 11:17:23 +0100,
Ingo Molnar wrote:
>
> today's upstream ALSA merge brought us build failures (exposed by
> randconfig testing):
>
> sound/drivers/opl3/opl3_synth.c: In function 'snd_opl3_find_patch':
> sound/drivers/opl3/opl3_synth.c:308: error: 'OPL3_PATCH_HASH_SIZE' undeclared (first use in this function)
> sound/drivers/opl3/opl3_synth.c:308: error: (Each undeclared identifier is reported only once
> sound/drivers/opl3/opl3_synth.c:308: error: for each function it appears in.)
>
> config attached.

Thanks. Could you try the fix patch below?


Takashi


[PATCH] Fix compilation of opl3 driver without sequencer support

Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>

---
diff -r a4c88cbfe2f1 sound/drivers/opl3/opl3_synth.c
--- a/sound/drivers/opl3/opl3_synth.c Wed Jan 30 09:06:47 2008 +0100
+++ b/sound/drivers/opl3/opl3_synth.c Fri Feb 01 11:42:12 2008 +0100
@@ -21,6 +21,10 @@

#include <sound/opl3.h>
#include <sound/asound_fm.h>
+
+#if defined(CONFIG_SND_SEQUENCER) || defined(CONFIG_SND_SEQUENCER_MODULE)
+#define OPL3_SUPPORT_SYNTH
+#endif

/*
* There is 18 possible 2 OP voices
@@ -155,9 +159,11 @@ int snd_opl3_ioctl(struct snd_hwdep * hw
#endif
return snd_opl3_set_connection(opl3, (int) arg);

+#ifdef OPL3_SUPPORT_SYNTH
case SNDRV_DM_FM_IOCTL_CLEAR_PATCHES:
snd_opl3_clear_patches(opl3);
return 0;
+#endif

#ifdef CONFIG_SND_DEBUG
default:
@@ -178,6 +184,7 @@ int snd_opl3_release(struct snd_hwdep *
return 0;
}

+#ifdef OPL3_SUPPORT_SYNTH
/*
* write the device - load patches
*/
@@ -341,6 +348,7 @@ void snd_opl3_clear_patches(struct snd_o
}
memset(opl3->patch_table, 0, sizeof(opl3->patch_table));
}
+#endif /* OPL3_SUPPORT_SYNTH */

/* ------------------------------ */

diff -r a4c88cbfe2f1 include/sound/opl3.h
--- a/include/sound/opl3.h Wed Jan 30 09:06:47 2008 +0100
+++ b/include/sound/opl3.h Fri Feb 01 11:42:12 2008 +0100
@@ -370,12 +370,13 @@ int snd_opl3_open(struct snd_hwdep * hw,
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,
@@ -384,5 +385,9 @@ struct fm_patch *snd_opl3_find_patch(str
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 */
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/