Skip to contentSkip to conversation

Sound on Nautilus Alpha (UP1000, UP1100)

PATCH New Michal Jaegermann 1 participant 1 message Jun 15, 2001

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Sound on Nautilus Alpha (UP1000, UP1100)

Somehow a code which does Nautilus specific magic to a Trident card was forgotten for cases when a "generic" Alpha kernel is in use. After a transfer of these few lines from 2.2.19 my sound card started to play again. Nautilus specific kernel should work but this is not always in use.

Header comments in trident.c indicate that "#define DRIVER_VERSION" was simply forgotten so I updated that as well.

This patch was done with 2.4.5-ac13 but it should fit all trident.c from 2.4 kernels possibly with some small line offsets. Alan, will you push that to Linus?

Michal

drivers/sound/trident.c renamed from drivers/sound/trident.c.orig +15 -4
@@ -136,11 +136,15 @@
 #include <linux/bitops.h>
 #include <linux/proc_fs.h>
 
+#if defined CONFIG_ALPHA_NAUTILUS || CONFIG_ALPHA_GENERIC
+#include <asm/hwrpb.h>
+#endif
+
 #include "trident.h"
 
 #include <linux/pm.h>
 
-#define DRIVER_VERSION "0.14.6"
+#define DRIVER_VERSION "0.14.7a"
 
 /* magic numbers to protect our data structures */
 #define TRIDENT_CARD_MAGIC	0x5072696E /* "Prin" */
@@ -3607,10 +3611,17 @@
 
 	if (card->pci_id == PCI_DEVICE_ID_ALI_5451) {
 		/* edited by HMSEO for GT sound */
-#ifdef CONFIG_ALPHA_NAUTILUS
+#if defined CONFIG_ALPHA_NAUTILUS || CONFIG_ALPHA_GENERIC
 		u16 ac97_data;
-		ac97_data = ali_ac97_get (card->ac97_codec[0], AC97_POWER_CONTROL);
-		ali_ac97_set (card->ac97_codec[0], AC97_POWER_CONTROL, ac97_data | ALI_EAPD_POWER_DOWN);
+		extern struct hwrpb_struct *hwrpb;
+		
+		if ((hwrpb->sys_type) == 201) {
+			printk(KERN_INFO "trident: Running on Alpha system type Nautilus\n");
+			ac97_data = ali_ac97_get (card->ac97_codec[0],
+						  AC97_POWER_CONTROL);
+			ali_ac97_set (card->ac97_codec[0], AC97_POWER_CONTROL,
+				      ac97_data | ALI_EAPD_POWER_DOWN);
+		}
 #endif
 		/* edited by HMSEO for GT sound*/
 	}