[alsa-devel] Swissonic TS22PCI / Teratec Phase 22 / driver problems with ice1724
Hi,
we had a Teratec Phase 22 on our transmitter line which works great under Linux, using the ice1724 driver from alsa. As the original sound card broke due to electrical surge on the transmitter line, we had to replace it. The Phase 22 is not available anymore, so we bought a Swissonic TS22PCI which is based on the Phase 22: http://www.thomann.de/gb/swissonic_ts22pci.htm
The PCB looks exactly the same as the Phase 22, but the driver does not initialize the card correctly:
--- dmesg: ice1724: No matching model found for ID 0x3b157b11 ice1724: Invalid EEPROM version 0 AC'97 0 does not respond - RESET AC'97 0 access is not valid [0xffffffff], removing mixer. ice1712: cannot initialize pro ac97, skipped ---
I already updated to Linux 2.6.25 and tried the current alsa-drivers package (1.0.17), but I get always the same errors in the kernel log. I also deleted /etc/asound.* and /var/lib/alsa/asound.state, ran alsa-conf - no luck.
Do you have any ideas how I can get this card to work?
Thanks a lot for your suggestions, more information see attached.
Manuel
--- -:[~]#> lspci -vv
00:0a.0 Multimedia audio controller: VIA Technologies Inc. VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller (rev 01) Subsystem: TERRATEC Electronic GmbH Unknown device 117b Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium
TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 32 Interrupt: pin A routed to IRQ 18 Region 0: I/O ports at c000 [size=32] Region 1: I/O ports at bc00 [size=128] Capabilities: [80] Power Management version 1 Flags: PMEClk- DSI- D1- D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-) Status: D0 PME-Enable- DSel=0 DScale=0 PME-
--- -:[~]#> cat /etc/modules.d/alsa
alias /dev/mixer snd-mixer-oss alias /dev/dsp snd-pcm-oss alias /dev/midi snd-seq-oss
# --- BEGIN: Generated by ALSACONF, do not edit. --- # --- ALSACONF version 1.0.16 --- alias snd-card-0 snd-ice1724 alias sound-slot-0 snd-ice1724 # --- END: Generated by ALSACONF, do not edit. ---
--- -:[~]#> lsmod Module Size Used by snd_pcm_oss 24224 0 snd_mixer_oss 14720 1 snd_pcm_oss snd_ice1724 92328 0 snd_ice17xx_ak4xxx 3648 1 snd_ice1724 snd_ac97_codec 105704 1 snd_ice1724 snd_ak4114 8448 1 snd_ice1724 snd_pcm 59660 4 snd_pcm_oss,snd_ice1724,snd_ac97_codec,snd_ak4114 snd_timer 19272 1 snd_pcm snd_page_alloc 8272 1 snd_pcm snd_pt2258 4032 1 snd_ice1724 snd_i2c 5312 2 snd_ice1724,snd_pt2258 snd_ak4xxx_adda 8512 2 snd_ice1724,snd_ice17xx_ak4xxx snd_mpu401_uart 6912 1 snd_ice1724 snd_rawmidi 19808 1 snd_mpu401_uart snd 49288 12 snd_pcm_oss,snd_mixer_oss,snd_ice1724,snd_ac97_codec,snd_ak4114,snd_pcm,snd_timer,snd_pt2258,snd_i2c,snd_ak4xxx_adda,snd_mpu401_uart,snd_rawmidi capi 14272 0 capifs 5072 2 capi kernelcapi 31936 1 capi nfs 118264 3 lockd 62064 2 nfs sunrpc 167432 17 nfs,lockd rtc 11384 0 via_rhine 19976 0 mii 4928 1 via_rhine ac97_bus 1984 1 snd_ac97_codec soundcore 6624 1 snd
--- -:[~]#> modinfo snd_ice1724 filename: /lib/modules/2.6.25-gentoo-r7/kernel/sound/pci/ice1712/snd-ice1724.ko license: GPL description: VIA ICEnsemble ICE1724/1720 (Envy24HT/PT) author: Jaroslav Kysela perex@perex.cz alias: pci:v00001412d00001724sv*sd*bc*sc*i* depends: snd,snd-ac97-codec,snd-pcm,snd-i2c,snd-mpu401-uart,snd-ice17xx-ak4xxx,snd-pt2258,snd-ak4xxx-adda,snd-ak4114 vermagic: 2.6.25-gentoo-r7 mod_unload parm: index:Index value for ICE1724 soundcard. (array of int) parm: id:ID string for ICE1724 soundcard. (array of charp) parm: enable:Enable ICE1724 soundcard. (array of bool) parm: model:Use the given board model. (array of charp)
--- -:[~]#> cat /proc/asound/cards 0 [ICE1724 ]: ICE1724 - ICEnsemble ICE1724 ICEnsemble ICE1724 at 0xc000, irq 18
--- -:[~]#> cat /proc/asound/ICE1724/ice1724 ICEnsemble ICE1724 at 0xc000, irq 18
EEPROM: Subvendor : 0x3b157b11 Size : 32 bytes Version : 0 System Config : 0x0 ACLink : 0x0 I2S : 0x0 S/PDIF : 0x0 GPIO direction : 0xffff00 GPIO mask : 0xffffff GPIO state : 0xffffff Extra #18 : 0xff Extra #19 : 0xff Extra #20 : 0xff Extra #21 : 0xff Extra #22 : 0xff Extra #23 : 0xff Extra #24 : 0xff Extra #25 : 0xff Extra #26 : 0x0 Extra #27 : 0x0 Extra #28 : 0x0 Extra #29 : 0x0 Extra #30 : 0x0 Extra #31 : 0x0
... ---
At Thu, 14 Aug 2008 15:29:18 +0200, Manuel Schneider wrote:
Hi,
we had a Teratec Phase 22 on our transmitter line which works great under Linux, using the ice1724 driver from alsa. As the original sound card broke due to electrical surge on the transmitter line, we had to replace it. The Phase 22 is not available anymore, so we bought a Swissonic TS22PCI which is based on the Phase 22: http://www.thomann.de/gb/swissonic_ts22pci.htm
The PCB looks exactly the same as the Phase 22, but the driver does not initialize the card correctly:
dmesg: ice1724: No matching model found for ID 0x3b157b11 ice1724: Invalid EEPROM version 0 AC'97 0 does not respond - RESET AC'97 0 access is not valid [0xffffffff], removing mixer. ice1712: cannot initialize pro ac97, skipped
I already updated to Linux 2.6.25 and tried the current alsa-drivers package (1.0.17), but I get always the same errors in the kernel log. I also deleted /etc/asound.* and /var/lib/alsa/asound.state, ran alsa-conf - no luck.
Do you have any ideas how I can get this card to work?
Pass model=phase22 module option to snd-ice1724 driver. Then it handles the card as if it's phase22.
Takashi
Takashi Iwai schrieb, Am 14.08.2008 15:47:
Pass model=phase22 module option to snd-ice1724 driver. Then it handles the card as if it's phase22.
Thanks for this hin. Unfortunately it changes nothing - still kernel error message, still no usable sound device.
I also tried the following kernel patch, which gives me an accessible sound device and usable mixer (and no kernel error), but recording does not work (just noise). The patch is quite simple - it just adds the subvendor ID of the Swissonic card and adds all phase22 functionality to it.
Manuel
--- -:[/usr/src/linux/sound/pci/ice1712]#> diff -uN phase.h.bak phase.h --- phase.h.bak 2008-08-12 10:13:49.000000000 +0200 +++ phase.h 2008-08-12 09:49:23.000000000 +0200 @@ -25,9 +25,11 @@ */
#define PHASE_DEVICE_DESC "{Terratec,Phase 22},"\ + "{Swissonic,TS22PCI},"\ "{Terratec,Phase 28},"
#define VT1724_SUBDEVICE_PHASE22 0x3b155011 +#define VT1724_SUBDEVICE_TS22PCI 0x3b157b11 #define VT1724_SUBDEVICE_PHASE28 0x3b154911
/* entry point */ ---
--- -:[/usr/src/linux/sound/pci/ice1712]#> diff -uN phase.c.bak phase.c --- phase.c.bak 2008-08-12 09:51:28.000000000 +0200 +++ phase.c 2008-08-12 09:51:28.000000000 +0200 @@ -124,6 +124,11 @@ ice->num_total_adcs = 2; ice->vt1720 = 1; // Envy24HT-S have 16 bit wide GPIO break; + case VT1724_SUBDEVICE_TS22PCI: + ice->num_total_dacs = 2; + ice->num_total_adcs = 2; + ice->vt1720 = 1; // Envy24HT-S have 16 bit wide GPIO + break; default: snd_BUG(); return -EINVAL; @@ -139,6 +144,10 @@ if ((err = snd_ice1712_akm4xxx_init(ak, &akm_phase22, &akm_phase22_priv, ice)) < 0) return err; break; + case VT1724_SUBDEVICE_TS22PCI: + if ((err = snd_ice1712_akm4xxx_init(ak, &akm_phase22, &akm_phase22_priv, ice)) < 0) + return err; + break; }
return 0; @@ -153,6 +162,10 @@ err = snd_ice1712_akm4xxx_build_controls(ice); if (err < 0) return err; + case VT1724_SUBDEVICE_TS22PCI: + err = snd_ice1712_akm4xxx_build_controls(ice); + if (err < 0) + return err; } return 0; } @@ -896,6 +909,15 @@ .eeprom_data = phase22_eeprom, }, { + .subvendor = VT1724_SUBDEVICE_TS22PCI, + .name = "Swissonic TS22PCI", + .model = "phase22", + .chip_init = phase22_init, + .build_controls = phase22_add_controls, + .eeprom_size = sizeof(phase22_eeprom), + .eeprom_data = phase22_eeprom, + }, + { .subvendor = VT1724_SUBDEVICE_PHASE28, .name = "Terratec PHASE 28", .model = "phase28", ---
participants (2)
-
Manuel Schneider
-
Takashi Iwai