* ice1724 - TerraTec PHASE 22 no MIDI ports get created
@ 2008-08-25 14:50 Vedran Miletić
2008-08-25 15:18 ` Pavel Hofman
0 siblings, 1 reply; 6+ messages in thread
From: Vedran Miletić @ 2008-08-25 14:50 UTC (permalink / raw)
To: alsa-devel
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).
--
Vedran Miletić
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: ice1724 - TerraTec PHASE 22 no MIDI ports get created
2008-08-25 14:50 ice1724 - TerraTec PHASE 22 no MIDI ports get created Vedran Miletić
@ 2008-08-25 15:18 ` Pavel Hofman
2008-08-25 15:53 ` Vedran Miletić
0 siblings, 1 reply; 6+ messages in thread
From: Pavel Hofman @ 2008-08-25 15:18 UTC (permalink / raw)
To: Vedran Miletić; +Cc: alsa-devel
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 list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: ice1724 - TerraTec PHASE 22 no MIDI ports get created
2008-08-25 15:18 ` Pavel Hofman
@ 2008-08-25 15:53 ` Vedran Miletić
2008-08-25 16:03 ` Takashi Iwai
2008-08-25 16:06 ` Pavel Hofman
0 siblings, 2 replies; 6+ messages in thread
From: Vedran Miletić @ 2008-08-25 15:53 UTC (permalink / raw)
To: alsa-devel
Thanks a lot for your response, Pavel. You saved me from installing
Windows to verify that my card isn't broken :-)
Still, I don't understand:
1) Why is in phase.c ICE_EEP2_SYSCONF set to 0x00? What do different
values do here, and how do you know which is the correct value?
2) When I looked up juli.c for 0x20, there is only:
#define AK4114_ADDR 0x20 /* S/PDIF receiver */
How come that 0x20 means MIDI?
3) How come that juli.c has 0x2b and prodigy192.c has 0x6a in
ICE_EEP2_SYSCONF? Does that differ because of the "amount" of stuff on
that board, or some other reason? Again, how did you find out which is
the correct value to set here?
4) Does the fact that 0x2b and 0x6a are larger than 0x20 makes MIDI
get created? Or is it something else entirely?
I apologize if my questions are not apropriate, but I have just
started exploring the depths of low-level coding and I still have very
basic understanding of stuff that is going around. Thanks for any
help.
2008/8/25 Pavel Hofman <pavel.hofman@insite.cz>:
> 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.
>
--
Vedran Miletić
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: ice1724 - TerraTec PHASE 22 no MIDI ports get created
2008-08-25 15:53 ` Vedran Miletić
@ 2008-08-25 16:03 ` Takashi Iwai
2008-08-25 16:06 ` Pavel Hofman
1 sibling, 0 replies; 6+ messages in thread
From: Takashi Iwai @ 2008-08-25 16:03 UTC (permalink / raw)
To: Vedran Miletić; +Cc: alsa-devel
At Mon, 25 Aug 2008 17:53:12 +0200,
=?UTF-8?Q?Vedran_Mileti=C4=87?= wrote:
>
> Thanks a lot for your response, Pavel. You saved me from installing
> Windows to verify that my card isn't broken :-)
>
> Still, I don't understand:
> 1) Why is in phase.c ICE_EEP2_SYSCONF set to 0x00? What do different
> values do here, and how do you know which is the correct value?
The MIDI support on VT172x was (still partly is) broken.
That's why many setups don't include it.
Also, it's possible that the original EEPROM value is so.
The Windows drivers tend to override everything with *.INI files.
> 2) When I looked up juli.c for 0x20, there is only:
> #define AK4114_ADDR 0x20 /* S/PDIF receiver */
> How come that 0x20 means MIDI?
0x20 is a bitmask. juli has 0x2b there, so it's enabled.
> 3) How come that juli.c has 0x2b and prodigy192.c has 0x6a in
> ICE_EEP2_SYSCONF? Does that differ because of the "amount" of stuff on
> that board, or some other reason? Again, how did you find out which is
> the correct value to set here?
Check the datasheet of VT172x. Or you can guess the meaning of each
bit via VT1724_CFG_* in envy24ht.h.
> 4) Does the fact that 0x2b and 0x6a are larger than 0x20 makes MIDI
> get created? Or is it something else entirely?
The size doesn't matter. It's bit flags.
HTH,
Takashi
>
> I apologize if my questions are not apropriate, but I have just
> started exploring the depths of low-level coding and I still have very
> basic understanding of stuff that is going around. Thanks for any
> help.
>
> 2008/8/25 Pavel Hofman <pavel.hofman@insite.cz>:
> > 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.
> >
>
>
>
> --
> Vedran Miletić
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel@alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: ice1724 - TerraTec PHASE 22 no MIDI ports get created
2008-08-25 15:53 ` Vedran Miletić
2008-08-25 16:03 ` Takashi Iwai
@ 2008-08-25 16:06 ` Pavel Hofman
2008-08-26 16:03 ` Vedran Miletić
1 sibling, 1 reply; 6+ messages in thread
From: Pavel Hofman @ 2008-08-25 16:06 UTC (permalink / raw)
To: Vedran Miletić; +Cc: alsa-devel
Vedran Miletić wrote:
> Thanks a lot for your response, Pavel. You saved me from installing
> Windows to verify that my card isn't broken :-)
>
> Still, I don't understand:
> 1) Why is in phase.c ICE_EEP2_SYSCONF set to 0x00? What do different
> values do here, and how do you know which is the correct value?
> 2) When I looked up juli.c for 0x20, there is only:
> #define AK4114_ADDR 0x20 /* S/PDIF receiver */
> How come that 0x20 means MIDI?
That has nothing to do with midi, see below.
> 3) How come that juli.c has 0x2b and prodigy192.c has 0x6a in
> ICE_EEP2_SYSCONF? Does that differ because of the "amount" of stuff on
> that board, or some other reason? Again, how did you find out which is
> the correct value to set here?
Each bit represents a setting in a specific configuration register of
ICE1724HT, see the datasheet
http://alsa.cybermirror.org/manuals/icensemble/Envy24HT091DS.pdf
page 4-4, register CCS04 (called ICE_EEP2_SYSCONF in alsa)
Use a decent calculator with base conversions (kcalc) and find in the
datasheet table the meaning of 0x2b (hexadecimal) or 0x6a in CCS04.
> 4) Does the fact that 0x2b and 0x6a are larger than 0x20 makes MIDI
> get created? Or is it something else entirely?
see above
>
> I apologize if my questions are not apropriate, but I have just
> started exploring the depths of low-level coding and I still have very
> basic understanding of stuff that is going around. Thanks for any
> help.
I hope we can make another card work flawlessly in alsa.
Pavel.
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: ice1724 - TerraTec PHASE 22 no MIDI ports get created
2008-08-25 16:06 ` Pavel Hofman
@ 2008-08-26 16:03 ` Vedran Miletić
0 siblings, 0 replies; 6+ messages in thread
From: Vedran Miletić @ 2008-08-26 16:03 UTC (permalink / raw)
To: Pavel Hofman, alsa-devel
OK, I downloaded lastest git, Changed 0x00 to 0x28 (MIDI enabled, ADC
and SPDIF reciever see below). MIDI ports get created, and playing
something to output doesn't hang the system or anything. However, I
have no MIDI input devices besides PHASE 22 itself, and no MIDI cable.
When I buy MIDI cable later today, I will report how it works. Is
looping output to input a good way to test it?
What is SPDIF reciever? Is it SPDIF in? Looking at the source, I have
two questions:
1) Why is it disabled, specifiying you only have ADC? This card has
SPDIF input and it works even at 0x00 (that is 1xADC) at
ICE_EEP2_SYSCONF (I have tried connecting a source and recording it
with arecord). Does this card have SPDIF reciever?
2) It says [ICE_EEP2_I2S] = 0xf8, /* vol, 96k, 24bit */ for PHASE 22
and [ICE_EEP2_I2S] = 0xfc, /* vol, 96k, 24bit, 192k */ for PHASE 28
However, both (according to VT1724 documentation) seem to enable 192k.
Is it just that the comment is wrong?
2008/8/25 Pavel Hofman <pavel.hofman@insite.cz>:
> Vedran Miletić wrote:
>>
>> Thanks a lot for your response, Pavel. You saved me from installing
>> Windows to verify that my card isn't broken :-)
>>
>> Still, I don't understand:
>> 1) Why is in phase.c ICE_EEP2_SYSCONF set to 0x00? What do different
>> values do here, and how do you know which is the correct value?
>> 2) When I looked up juli.c for 0x20, there is only:
>> #define AK4114_ADDR 0x20 /* S/PDIF receiver */
>> How come that 0x20 means MIDI?
>
> That has nothing to do with midi, see below.
>
>> 3) How come that juli.c has 0x2b and prodigy192.c has 0x6a in
>> ICE_EEP2_SYSCONF? Does that differ because of the "amount" of stuff on
>> that board, or some other reason? Again, how did you find out which is
>> the correct value to set here?
>
> Each bit represents a setting in a specific configuration register of
> ICE1724HT, see the datasheet
> http://alsa.cybermirror.org/manuals/icensemble/Envy24HT091DS.pdf
>
> page 4-4, register CCS04 (called ICE_EEP2_SYSCONF in alsa)
>
> Use a decent calculator with base conversions (kcalc) and find in the
> datasheet table the meaning of 0x2b (hexadecimal) or 0x6a in CCS04.
>
>
>> 4) Does the fact that 0x2b and 0x6a are larger than 0x20 makes MIDI
>> get created? Or is it something else entirely?
>
> see above
>>
>> I apologize if my questions are not apropriate, but I have just
>> started exploring the depths of low-level coding and I still have very
>> basic understanding of stuff that is going around. Thanks for any
>> help.
>
> I hope we can make another card work flawlessly in alsa.
>
> Pavel.
>
>
>
--
Vedran Miletić
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2008-08-26 16:03 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-08-25 14:50 ice1724 - TerraTec PHASE 22 no MIDI ports get created Vedran Miletić
2008-08-25 15:18 ` Pavel Hofman
2008-08-25 15:53 ` Vedran Miletić
2008-08-25 16:03 ` Takashi Iwai
2008-08-25 16:06 ` Pavel Hofman
2008-08-26 16:03 ` Vedran Miletić
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.