[alsa-devel] ice1724 - TerraTec PHASE 22 no MIDI ports get created
Pavel Hofman
pavel.hofman at insite.cz
Mon Aug 25 17:18:29 CEST 2008
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 at kalopsia:~$ amidi -l
> Dir Device Name
> vedran at 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.
More information about the Alsa-devel
mailing list