Martin Krüger wrote:
Martin Krüger schrieb:
Takashi Iwai schrieb:
At Mon, 26 May 2008 12:54:32 +0200, Martin Krüger wrote:
Pavel Hofman wrote:
Martin Krüger wrote:
Hello Pavel,
i just compiled a new 2.6.25.4 kernel with realtime support. the kernel is from kernel.org, so without any patches except the realtime patch from the alsa wiki.
To be sure -- does 2.6.25.4 without realtime support work?
Takashi
No. Not with an unpatched kernel set to "Preemptible Kernel (Low-Latency Desktop) PREEMPT_DESKTOP". I didn't test the lower preemption modes.
Martin _______________________________________________ Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
Hi,
i just compiled a 2.6.25-3 with Preemption disabled and i still get the the same.
Midi in works, Midi out leads to a complete system freeze. Is there a workaroud of disabling just Midi out? That would solve the bug for me, and would prevent other users from freezing their system...
Hi Martin,
I will try a newer kernel on my home Ubuntu 7.10.
We really need to find out what freezes your system. Is it a complete freeze, or just heavy overload?
Originally, I experienced a complete freeze caused by infinite loop in IRQ handler ice1724.c:snd_vt1724_interrupt. This loop is already avoided by the timeout variable. Do you run with CONFIG_SND_DEBUG? Does dmesg list any of the "ice1724: Too long irq loop..." messages?
Later on, I experienced an IRQ flood, caused by intermittent throwing ICE1724 IRQ (MPU transmit). I could see the IRQxx "process" hogging the CPU in top. If that is the case, please add some debug statements to ice1724.c:snd_vt1724_interrupt and look which IRQ gets fired (variable status).
In any case, please make sure you are using the latest GIT version with all the patches, so that we all work on the same code.
Disabling MIDI OUT - I have not tested the following patch, perhaps it needs some changes:
diff --git a/pci/ice1712/ice1724.c b/pci/ice1712/ice1724.c index e596d77..13695de 100644 --- a/pci/ice1712/ice1724.c +++ b/pci/ice1712/ice1724.c @@ -2546,7 +2546,7 @@ static int __devinit snd_vt1724_probe(struct pci_dev *pci, if (ice->eeprom.data[ICE_EEP2_SYSCONF] & VT1724_CFG_MPU401) { struct snd_rawmidi *rmidi;
- err = snd_rawmidi_new(card, "MIDI", 0, 1, 1, &rmidi); + err = snd_rawmidi_new(card, "MIDI", 0, 0, 1, &rmidi); if (err < 0) { snd_card_free(card); return err; @@ -2554,11 +2554,7 @@ static int __devinit snd_vt1724_probe(struct pci_dev *pci ice->rmidi[0] = rmidi; rmidi->private_data = ice; strcpy(rmidi->name, "ICE1724 MIDI"); - rmidi->info_flags = SNDRV_RAWMIDI_INFO_OUTPUT | - SNDRV_RAWMIDI_INFO_INPUT | - SNDRV_RAWMIDI_INFO_DUPLEX; - snd_rawmidi_set_ops(rmidi, SNDRV_RAWMIDI_STREAM_OUTPUT, - &vt1724_midi_output_ops); + rmidi->info_flags = SNDRV_RAWMIDI_INFO_INPUT; snd_rawmidi_set_ops(rmidi, SNDRV_RAWMIDI_STREAM_INPUT, &vt1724_midi_input_ops);
Regards,
Pavel.