[alsa-devel] PATCH - MIDI on ice1724 - real-time kernel problem SOLVED(?)
Pavel Hofman
pavel.hofman at insite.cz
Thu May 29 11:35:35 CEST 2008
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 at 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.
More information about the Alsa-devel
mailing list