From alsa-devel-owner@alsa.jcu.cz  Mon Jul  6 20:32:41 1998
Received: from obelix.fvdpol.inter.nl.net (frank@bd99-18.Breda.NL.net [193.79.246.243])
	by marvin.jcu.cz (8.8.8/8.8.8) with ESMTP id UAA11997
	for <alsa-devel@jcu.cz>; Mon, 6 Jul 1998 20:32:21 +0200
Received: (from frank@localhost) by obelix.fvdpol.inter.nl.net (8.8.7/8.7.3) id UAA00456 for alsa-devel@jcu.cz; Mon, 6 Jul 1998 20:30:52 +0200
From: Frank van de Pol <F.K.W.van.de.Pol@Inter.NL.net>
Message-Id: <199807061830.UAA00456@obelix.fvdpol.inter.nl.net>
Subject: Lockups with GUS MIDI
To: alsa-devel@jcu.cz (alsa)
Date: Mon, 6 Jul 1998 20:30:52 +0200 (MET DST)
Content-Type: text
Reply-To: alsa-devel@alsa.jcu.cz
Sender: alsa-devel-owner@alsa.jcu.cz
Precedence: list


Hi,

I've run into another case where the GUS MIDI seems to cause lockups. With
this lockup the machine freezes completely, even the alt-sysreq doesn't work
anymore (interrupts disabled?).  I'm using a Gravis Ultrasound MAX card,
ALSA driver 0.1.3, kernel 2.1.96. The next test program shows the behaviour.
Please make sure you sync'ed your filesystems before running it!

Regards,
Frank.


==== test program =========== cut here ====
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/ioctl.h>
#include <sys/stat.h>                     
#include <sys/time.h>
#include <sys/types.h>
#include <unistd.h>
#include "seq.h"


void main(void) {
	int fd;
	snd_seq_client_info_t	inf;
	char *name;
	int c;
	fd_set reads,writes;
	int have_data;
	int l;
	int written;
	
	unsigned char midi[100];

	
	fd = open("/dev/sndmidi00",O_RDWR);
	if (fd < 0) {
		perror("open /dev/sndmidi00");
                exit(1);
        }

        
        midi[0] = 0xfa;	/* start */
        written = write(fd, &midi, 1);
        printf("written = %d\n",written);

        
        
        midi[0] = 0 | 0x90;	/* note on */
        midi[1] = 60;
        midi[2] = 100;
        written = write(fd, &midi, 3);
        printf("written = %d\n",written);
        
        sleep(1);
                                        
        
        /* note off */
        midi[0] = 0 | 0x80;	/* note on */
        midi[1] = 60;
        midi[2] = 100;
        written = write(fd, &midi, 3);
        printf("written = %d\n",written);
        

	close(fd);
}

==== test program =========== cut here ====                                                        
                                                         

+---- --- -- -  -   -    - 
|Frank van de Pol                  -o)
|F.K.W.van.de.Pol@inter.NL.net     /\\
|                                 _\_v
|Linux - Why use Windows, since there is a door?

--SAB00230.899741419/obelix.fvdpol.inter.nl.net--


+---- --- -- -  -   -    - 
|Frank van de Pol                  -o)
|F.K.W.van.de.Pol@inter.NL.net     /\\
|                                 _\_v
|Linux - Why use Windows, since there is a door?

