Vedran Miletić wrote:> Hi guys,> > There was "MIDI on ice1724" thread not-so-recently, and it had a patch> attached. Changelog says that the patch was added to ALSA in 1.0.17.> > So I took out my dusty TerraTec PHASE 22 out of the closet (and> removed the dust, of course :-) ), but I can't get MIDI to work there.> Regardless of ALSA version (1.0.15 - 1.0.17, even 1.0.18rc1), I get no> MIDI ports at all:> vedran@kalopsia:~$ amidi -l> Dir Device Name> vedran@kalopsia:~$> > Why don't MIDI ports get created? I tried looking at the source, but I> couldn't figure out how this "creation of midi ports" happens (or> doesn't happen, as in this case).> See ice1724.c:snd_vt1724_probe line 2546: if (! c->no_mpu401) { if (ice->eeprom.data[ICE_EEP2_SYSCONF] & VT1724_CFG_MPU401) { struct snd_rawmidi *rmidi; err = snd_rawmidi_new(card, "MIDI", 0, 0, 1, &rmidi);.................. The Phase cards in phase.c have no no_mpu401 defined BUT they do not have the VT1724_CFG_MPU401 bit defined in their ICE_EEP2_SYSCONF eeprom byte. As a result, the code creating midi device gets skipped. Take a look at juli.c and prodigy192c code (juli_eeprom[], prodigy71_eeprom[]). They have the VT1724_CFG_MPU401 bit (0x20) set. You should fix that by: --- a/pci/ice1712/phase.c+++ b/pci/ice1712/phase.c@@ -161,7 +161,8 @@ static int __devinit phase22_add_controls(struct snd_ice1712 } static unsigned char phase22_eeprom[] __devinitdata = {- [ICE_EEP2_SYSCONF] = 0x00, /* 1xADC, 1xDACs */+ [ICE_EEP2_SYSCONF] = 0x00 | VT1724_CFG_MPU401, /* 1xADC,+ 1xDACs, mpu401 */ [ICE_EEP2_ACLINK] = 0x80, /* I2S */ [ICE_EEP2_I2S] = 0xf8, /* vol, 96k, 24bit */ [ICE_EEP2_SPDIF] = 0xc3, /* out-en, out-int, spdif-in */ The same applies for phase28 if it offers midi. Regards, Pavel._______________________________________________Alsa-devel mailing listAlsa-devel@xxxxxxxxxxxxxxxxxxxx://mailman.alsa-project.org/mailman/listinfo/alsa-devel