DMX6fire Consumer AC97 not used

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Another little 'tidy-up':

Have always had the following log message with DMX6fire:

 linux kernel: Consumer PCM code does not work well at the moment --jk
 linux kernel: ALSA ac97_codec.c:1671: AC'97 0:0 does not respond - RESET
 linux kernel: ALSA ac97_codec.c:1682: AC'97 0:0 access is not valid 
[0xffffffff], removing mixer.
 linux kernel: ice1712: cannot initialize ac97 for consumer, skipped

and thought the last 3 were due to the first.  However, after comparing 
DMX6fire with STDSP24 card, it seems to me that the 6fire doesn't have an 
AC97 chip, nor anywhere to connect to one in the standard front box, and the 
W2K drivers from Terratec don't support it.  It is remotely possible that 
other extension boxes may use it -but they do not have alsa support at 
present.

BUT the eeprom data has it enabled.  As the value is checked at several places 
in the code, the attached patch changes the stored value for this and the 
previous 'Limit ADACs to 6' bits.

As a result, the log now shows no evidence of ice1712 driver at all, so I 
added 'init...done' as in the attached 'init-message' patch.  It may be the 
wrong place, or not wanted at all, so I kept it separate from the AC97 patch.  
Hope it's OK in this case to attach both here.

BTW, re 'Consumer PCM code does not work well at the moment --jk',  will it be 
fixed?

Alan

ice1712.c-disable-6fire-AC97.patch

Summary:  Disable AC97 for DMX6fire

Consumer AC97 is not used by the Terratec DMX6fire, but eeprom bit indicates 
it is; change the stored value to disable failling consumer mode.

Signed-off-by: Alan Horstmann <gineera@xxxxxxxxxxxxxxx>

ice1712.c-init-message.patch

Adds init message to the ice1712 driver.


--- alsa-driver-1.0.11-orig/alsa-kernel/pci/ice1712/ice1712.c	2006-04-18 12:38:03.000000000 +0100
+++ alsa-driver-1.0.11/alsa-kernel/pci/ice1712/ice1712.c	2006-05-20 17:09:53.000000000 +0100
@@ -2398,13 +2398,11 @@
 	udelay(200);
 	outb(ICE1712_NATIVE, ICEREG(ice, CONTROL));
 	udelay(200);
-	if (ice->eeprom.subvendor == ICE1712_SUBDEVICE_DMX6FIRE && !ice->dxr_enable) {
-                /* Limit active ADCs and DACs to 6;  */
-                /* Note: DXR extension not supported */
-		pci_write_config_byte(ice->pci, 0x60, 0x2a);
-	} else {
-		pci_write_config_byte(ice->pci, 0x60, ice->eeprom.data[ICE_EEP1_CODEC]);
-	}
+	if (ice->eeprom.subvendor == ICE1712_SUBDEVICE_DMX6FIRE && !ice->dxr_enable)
+		/*  Limit active ADCs and DACs to 6;  Note: DXR extensions are not currently supported */
+		/*  Also AC97 Consumer hardware is not provided in standard 6fire front box            */
+		ice->eeprom.data[ICE_EEP1_CODEC] = 0x3a;  /*  Correct eeprom value  */
+	pci_write_config_byte(ice->pci, 0x60, ice->eeprom.data[ICE_EEP1_CODEC]);
 	pci_write_config_byte(ice->pci, 0x61, ice->eeprom.data[ICE_EEP1_ACLINK]);
 	pci_write_config_byte(ice->pci, 0x62, ice->eeprom.data[ICE_EEP1_I2SID]);
 	pci_write_config_byte(ice->pci, 0x63, ice->eeprom.data[ICE_EEP1_SPDIF]);
--- alsa-driver-1.0.11-orig/alsa-kernel/pci/ice1712/ice1712.c	2006-04-18 12:38:03.000000000 +0100
+++ alsa-driver-1.0.11/alsa-kernel/pci/ice1712/ice1712.c	2006-05-20 21:57:03.000000000 +0100
@@ -2394,7 +2394,6 @@
 
 static int __devinit snd_ice1712_chip_init(struct snd_ice1712 *ice)
 {
+	printk("ice1712: Init...");
 	outb(ICE1712_RESET | ICE1712_NATIVE, ICEREG(ice, CONTROL));
 	udelay(200);
 	outb(ICE1712_NATIVE, ICEREG(ice, CONTROL));
@@ -2434,6 +2433,7 @@
 		snd_ice1712_write(ice, ICE1712_IREG_CONSUMER_POWERDOWN, 0);
 	}
 	snd_ice1712_set_pro_rate(ice, 48000, 1);
+	printk("done\n");
 
 	return 0;
 }

[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux