public inbox for linux-serial@vger.kernel.org
 help / color / mirror / Atom feed
From: Colin Laplace <haiku@bloodshed.net>
To: malk@sidehack.sat.gweep.net
Cc: linux-serial@vger.kernel.org
Subject: Re: Possible bug in serial driver 8250/8250-fourport
Date: Mon, 6 Mar 2006 13:04:15 +0100	[thread overview]
Message-ID: <200603061304.15331.haiku@bloodshed.net> (raw)
In-Reply-To: <20060303191701.48315.qmail@sidehack.sat.gweep.net>

Hello,

Thank you for your reply. Please find my answers below :

> Did you try monitoring /proc/tty/driver/serial for the ports in question
> (byte counts in and out, and any errors (framing, parity, etc)) are in
> there, you can confirm your setserial settings there too, account for all
> bytes in and out.

The number of bytes sent to TX doesn't increase when the problem occurs.
4: uart:16550A port:0000D100 irq:177 tx:99925 rx:558 RTS|DTR

> Also -- do you have software or hardware flow control going?
> i.e. how are your tty's configured?  sounds like they should be a
> raw setup -- if canonical mode or otherwise are consuming characters
> that should normally pass through to your equipment it may cause
> problems.  I have no clue what protocol your music equipment speaks.
> Might be worthwhile sending your code snippet that configures your ttys
> and if hardware flow control is involved etc.

I use the following code to open and configure the serial ports :

        port->fd = open(port->device, O_RDWR | O_NONBLOCK, 0);
        if (port->fd < 0) {
                fprintf(stderr, "Cannot open %s: ", port->device);
                perror("midiseq");
                return -errno;
        }

 cflag = B38400 | CREAD | CSIZE | CS8 | HUPCL;

        if (tcgetattr(port->fd, &tio) < 0)
                perror("tcgetattr");
        cfmakeraw(&tio);
        tio.c_lflag |= NOFLSH;
        tio.c_iflag |= IGNBRK | IGNPAR;
        tio.c_cflag |= cflag;
        tio.c_cc[VEOL] = 0; /* '\r'; */
        tio.c_cc[VERASE] = 0;
        tio.c_cc[VKILL] = 0;
        tio.c_cc[VMIN] = 0;
        tio.c_cc[VTIME] = 0;
        if (tcsetattr(port->fd, TCSANOW, &tio) < 0)
                perror("tcsetattr");

> The serial and tty layer (I've found) have been very robust for a bunch
> of multiport stuff I've been doing in the last 6 months (albeit a 2.4
> kernel).  The tty stuff really has to work right as a lot of stuff
> besides just serial ports are tty based (duh).

I didn't have this problem on 2.4 kernel. But for some reasons (preemptive 
kernel, optimized i/o scheduling...) i need to stick with 2.6.
If you need other information please let me know.

Greetings,
Colin


> Good luck w/ your project.
>
> > Hello,
> >
> > I am writing to this list because i am now clueless on a problem i am
> > having with writing data on a serial port, and now the only thing i can
> > think of is a serial driver bug.
> > The situation is the following :
> > I have a NetMos Technology PCI 9845 Multi-I/O Controller (rev 01), which
> > has four ports. Each of its ports are connected as follow :
> > - port 1 TX connected to a Midi Chipset DREAM SAM9708 port 1
> >   port 1 RX connected to FATAR midi keyboard
> > - port 2 TX connected to a Midi Chipset DREAM SAM9708 port 2
> > - port 3 connected to an external midi in/out (1)
> > - port 4 connected to an external midi in/out (2)
> >
> > This configuration has been tested on both kernel 2.6.10 with 8250
> > module, and 2.6.15 with 8250-fourport module, the problem arises on both.
> > Each of the serial ports are configured this way :
> > setserial /dev/tts/$id uart 16550A port 0x$addr irq $irq
> > ^fourport spd_cust divisor 8 low_latency
> >
> > The problem is as follow :
> > When playing MIDI data over port 1, sometimes the output just stops, the
> > data doesn't go anymore to the Dream 1 port. Then (and that's the strange
> > part), if we press a key of the FATAR keyboard (connected to the same
> > serial port but on RX), all the data that was not played comes out all of
> > a sudden, and the playback continues to be output normally. This problem
> > does *NOT* happen on any of the other serial ports, only on the one where
> > TX is connected to the dream 1 and RX to the FATAR midi keyboard.
> > I have been trying with both snd-serialmidi alsa driver, as well with a
> > homemade user-land program which drives midi events to the serial port,
> > and the problems happens on both ways. Also, very important to note : NO
> > error messages are given by write() calls when the problem arises, nor do
> > i get kernel messages.
> >
> > This situation happens very often. If you need any other information
> > please let me know. I would really appreciate any feedback you could have
> > about this matter.
> >
> > Best regards,
> > Colin Laplace
> > -
> > To unsubscribe from this list: send the line "unsubscribe linux-serial"
> > in the body of a message to majordomo@vger.kernel.org
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-serial" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

      reply	other threads:[~2006-03-06 12:04 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-03-03 16:14 Possible bug in serial driver 8250/8250-fourport Colin Laplace
2006-03-03 19:17 ` malk
2006-03-06 12:04   ` Colin Laplace [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200603061304.15331.haiku@bloodshed.net \
    --to=haiku@bloodshed.net \
    --cc=linux-serial@vger.kernel.org \
    --cc=malk@sidehack.sat.gweep.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox