public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Thomas Stewart <thomas@stewarts.org.uk>
To: Paul Fulghum <paulkf@microgate.com>
Cc: Linux Kernel list <linux-kernel@vger.kernel.org>
Subject: Re: belkin usb serial converter (mct_u232), break not working
Date: Thu, 21 Oct 2004 11:06:37 +0100	[thread overview]
Message-ID: <20041021100637.GA7003@diamond> (raw)
In-Reply-To: <1098326278.6017.19.camel@at2.pipehead.org>

On Wed, Oct 20, 2004 at 09:37:58PM -0500, Paul Fulghum wrote:
> static int send_break(struct tty_struct *tty, int duration)
> {
> 	set_current_state(TASK_INTERRUPTIBLE);
> 
> 	tty->driver->break_ctl(tty, -1);
> 	if (!signal_pending(current))
> 		schedule_timeout(duration);
> 	tty->driver->break_ctl(tty, 0);
> 	if (signal_pending(current))
> 		return -EINTR;
> 	return 0;
> }
> 
> The USB serial driver break_ctl() sends a URB which does
> a sleep and wakeup changing the task state back to TASK_RUNNING.
> Because of this, schedule_timeout() above gets short circuited
> and the break condition is not maintained long enough.
> 
> The normal serial driver break_ctl() leaves the task state
> as TASK_INTERRUPTIBLE so you get the proper delay.
> 
> Thomas: try the patch below and let me know the results.

I tryed again with your patch applyed, with both minicom and porttest

porttest.c:
#include <sys/fcntl.h>
#include <sys/ioctl.h>
main(int argc, char ** argv) {
        int r, fd = open(argv[1], O_RDWR|O_NOCTTY);
        r=ioctl(fd, TCSBRKP, 20);
        printf("%d\n", r);
        close(fd);
}

$ time ./porttest /dev/ttyS0
0

real    0m2.001s
user    0m0.000s
sys     0m0.001s
$ time ./porttest /dev/ttyUSB0
0

real    0m2.003s
user    0m0.000s
sys     0m0.001s

As you can see, this time there is the correct pause. However
it still does not send the break.

To add the mix, I dug about and found a differnt type of USB serial
converter, a no-brand one that uses the pl2303 module. Both minicom
and porttest with either stock 2.6.8.1 or 2.6.8.1 with your patch
send the break fine with this different converter.

This makes me think it is a problem with the mct_u232 driver?

Regards
-- 
Tom

PGP Fingerprint [DCCD 7DCB A74A 3E3B 60D5  DF4C FC1D 1ECA 68A7 0C48]
PGP Publickey   [http://www.stewarts.org.uk/public-key.asc]
PGP ID		[0x68A70C48]

  reply	other threads:[~2004-10-21 10:11 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-10-20 18:46 belkin usb serial converter (mct_u232), break not working Thomas Stewart
2004-10-20 20:48 ` Paul Fulghum
2004-10-20 21:22 ` Paul Fulghum
2004-10-20 22:08   ` Thomas Stewart
2004-10-20 22:15     ` Paul Fulghum
2004-10-20 22:21     ` Paul Fulghum
2004-10-20 22:27     ` Paul Fulghum
2004-10-20 23:04       ` Thomas Stewart
2004-10-21  2:37         ` Paul Fulghum
2004-10-21 10:06           ` Thomas Stewart [this message]
2004-10-21 12:41             ` Paul Fulghum
2004-10-21 19:44               ` Paul Fulghum
2004-11-04 18:20                 ` Thomas Stewart
2004-11-04 19:21                   ` Paul Fulghum

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=20041021100637.GA7003@diamond \
    --to=thomas@stewarts.org.uk \
    --cc=linux-kernel@vger.kernel.org \
    --cc=paulkf@microgate.com \
    /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