It beeps, but immediately panics with the first call.

Hmm. Works for me...(tm)

Here is what I did to test it:
--- linux-1.02/arch/arm/special/empeg_audio2.c  Sun Jan 28 00:58:34 2001

+++ linux-1.02-beep/arch/arm/special/empeg_audio2.c Mon Mar 19 01:57:41 2001
@@ -1167,6 +1167,11 @@
return(0);
}

+void beep(void)
+{
+ audio_beep(&audio[0], 60, 500, 50);
+}
+
void audio_beep(audio_dev *dev, int pitch, int length, int volume)
{
/* Section 9.8 */
diff -Nur linux-1.02/drivers/char/empeg_ir.c linux-1.02-beep/drivers/char/empeg_ir.c
--- linux-1.02/drivers/char/empeg_ir.c Sun Jan 28 00:58:44 2001
+++ linux-1.02-beep/drivers/char/empeg_ir.c Sun Mar 18 15:50:58 2001
@@ -178,6 +178,8 @@
#define IR_STATE_DATA1 0x0a
#define IR_STATE_DATA2 0x0c

+extern void beep(void);
+
static void ir_append_data(struct ir_dev *dev, ir_code data)
{
/* Now this is called from the bottom half we need to make
@@ -186,6 +188,11 @@
ir_code *new_wp;
unsigned long flags;
save_flags_cli(flags);
+
+ if (data == 0xb91c) {
+ beep();
+ return;
+ }

new_wp = dev->buf_wp + 1;
if (new_wp == dev->buf_end)
The "tuner" button on the remote triggers it.

Can you do a similar patch of your mods? Send them over and I'll try to figure out why it's bombing out.

Borislav