diff -urpN --exclude-from=/home/davej/.exclude bk-linus/sound/oss/i810_audio.c linux-2.5/sound/oss/i810_audio.c
--- bk-linus/sound/oss/i810_audio.c	2002-11-21 02:26:05.000000000 +0000
+++ linux-2.5/sound/oss/i810_audio.c	2002-11-21 18:06:19.000000000 +0000
@@ -2686,6 +2705,14 @@ static int __init i810_ac97_init(struct 
 			break;
 		}
 		
+		codec->codec_write(codec, AC97_EXTENDED_MODEM_ID, 0L);
+		if(codec->codec_read(codec, AC97_EXTENDED_MODEM_ID))
+		{
+			printk(KERN_WARNING "i810_audio: codec %d is a softmodem - skipping.\n", num_ac97);
+			kfree(codec);
+			continue;
+		}
+	
 		card->ac97_features = eid;
 				
 		/* Now check the codec for useful features to make up for
