From: "Raju Rameshwar Uprade" <rajsingh@ncra.tifr.res.in>
To: Greg KH <gregkh@suse.de>
Cc: linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org
Subject: pl2303_ttyUSB0 userspace application not able to control RTS line
Date: Tue, 5 Oct 2010 16:33:16 +0530 [thread overview]
Message-ID: <20101005104403.M28756@admin-gateway.ncra.tifr.res.in> (raw)
In-Reply-To: <20101004042924.M50398@admin-gateway.ncra.tifr.res.in>
[-- Attachment #1: Type: text/plain, Size: 4844 bytes --]
Hi,
I am using a prolific tech USB-to-serial converter on linux kernel version 2.6.35.
I wrote a userspace program to enable/disable RTS line which is working fine with
standard serial port like ttyS0 and ttyS1.
But when I used the USB-to-serial port (ttyUSB0) to enable/disable the RTS line,ttyUSB0
is not able to do that as well as some times gives
pl2303_ttyUSB0 : pl2303_open-failed submitting read urb -error 22.
Attached is the userspace application and kernel log is also given below,
/home/teleset/Desktop/USB-Serial/pl2303.c: pl2303_open - port 0
/home/teleset/Desktop/USB-Serial/pl2303.c: 0x40:0x1:0x8:0x0 0
/home/teleset/Desktop/USB-Serial/pl2303.c: 0x40:0x1:0x9:0x0 0
/home/teleset/Desktop/USB-Serial/pl2303.c: pl2303_set_termios - port 0
/home/teleset/Desktop/USB-Serial/pl2303.c: 0xa1:0x21:0:0 7 - 80 25 0 0 0 0 8
/home/teleset/Desktop/USB-Serial/pl2303.c: pl2303_set_termios - data bits = 8
/home/teleset/Desktop/USB-Serial/pl2303.c: pl2303_set_termios - baud = 9600
/home/teleset/Desktop/USB-Serial/pl2303.c: pl2303_set_termios - stop bits = 1
/home/teleset/Desktop/USB-Serial/pl2303.c: pl2303_set_termios - parity = none
/home/teleset/Desktop/USB-Serial/pl2303.c: 0x21:0x20:0:0 7
/home/teleset/Desktop/USB-Serial/pl2303.c: 0xa1:0x21:0:0 7 - 80 25 0 0 0 0 8
/home/teleset/Desktop/USB-Serial/pl2303.c: 0x40:0x1:0x0:0x0 0
/home/teleset/Desktop/USB-Serial/pl2303.c: pl2303_open - submitting read urb
/home/teleset/Desktop/USB-Serial/pl2303.c: pl2303_open - submitting interrupt urb
/home/teleset/Desktop/USB-Serial/pl2303.c: pl2303_ioctl (0) cmd = 0x5401
/home/teleset/Desktop/USB-Serial/pl2303.c: pl2303_ioctl not supported = 0x5401
/home/teleset/Desktop/USB-Serial/pl2303.c: pl2303_ioctl (0) cmd = 0x540b
/home/teleset/Desktop/USB-Serial/pl2303.c: pl2303_ioctl not supported = 0x540b
/home/teleset/Desktop/USB-Serial/pl2303.c: pl2303_ioctl (0) cmd = 0x5402
/home/teleset/Desktop/USB-Serial/pl2303.c: pl2303_ioctl not supported = 0x5402
/home/teleset/Desktop/USB-Serial/pl2303.c: pl2303_set_termios - port 0
/home/teleset/Desktop/USB-Serial/pl2303.c: 0xa1:0x21:0:0 7 - 80 25 0 0 0 0 8
/home/teleset/Desktop/USB-Serial/pl2303.c: pl2303_set_termios - data bits = 8
/home/teleset/Desktop/USB-Serial/pl2303.c: pl2303_set_termios - baud = 9600
/home/teleset/Desktop/USB-Serial/pl2303.c: pl2303_set_termios - stop bits = 1
/home/teleset/Desktop/USB-Serial/pl2303.c: pl2303_set_termios - parity = none
/home/teleset/Desktop/USB-Serial/pl2303.c: 0x21:0x20:0:0 7
/home/teleset/Desktop/USB-Serial/pl2303.c: 0xa1:0x21:0:0 7 - 80 25 0 0 0 0 8
/home/teleset/Desktop/USB-Serial/pl2303.c: 0x40:0x1:0x0:0x61 0
/home/teleset/Desktop/USB-Serial/pl2303.c: pl2303_ioctl (0) cmd = 0x5401
/home/teleset/Desktop/USB-Serial/pl2303.c: pl2303_ioctl not supported = 0x5401
/home/teleset/Desktop/USB-Serial/pl2303.c: pl2303_tiocmget (0)
/home/teleset/Desktop/USB-Serial/pl2303.c: pl2303_tiocmget - result = 6
/home/teleset/Desktop/USB-Serial/pl2303.c: set_control_lines - value = 3, retval = 0
/home/teleset/Desktop/USB-Serial/pl2303.c: pl2303_tiocmget (0)
/home/teleset/Desktop/USB-Serial/pl2303.c: pl2303_tiocmget - result = 6
/home/teleset/Desktop/USB-Serial/pl2303.c: set_control_lines - value = 1, retval = 0
/home/teleset/Desktop/USB-Serial/pl2303.c: pl2303_ioctl (0) cmd = 0x5402
/home/teleset/Desktop/USB-Serial/pl2303.c: pl2303_ioctl not supported = 0x5402
/home/teleset/Desktop/USB-Serial/pl2303.c: pl2303_set_termios - port 0
/home/teleset/Desktop/USB-Serial/pl2303.c: 0xa1:0x21:0:0 7 - 80 25 0 0 0 0 8
/home/teleset/Desktop/USB-Serial/pl2303.c: pl2303_set_termios - data bits = 8
/home/teleset/Desktop/USB-Serial/pl2303.c: pl2303_set_termios - baud = 9600
/home/teleset/Desktop/USB-Serial/pl2303.c: pl2303_set_termios - stop bits = 1
/home/teleset/Desktop/USB-Serial/pl2303.c: pl2303_set_termios - parity = none
/home/teleset/Desktop/USB-Serial/pl2303.c: 0x21:0x20:0:0 7
/home/teleset/Desktop/USB-Serial/pl2303.c: set_control_lines - value = 3, retval = 0
/home/teleset/Desktop/USB-Serial/pl2303.c: 0xa1:0x21:0:0 7 - 80 25 0 0 0 0 8
/home/teleset/Desktop/USB-Serial/pl2303.c: 0x40:0x1:0x0:0x0 0
/home/teleset/Desktop/USB-Serial/pl2303.c: pl2303_ioctl (0) cmd = 0x5401
/home/teleset/Desktop/USB-Serial/pl2303.c: pl2303_ioctl not supported = 0x5401
/home/teleset/Desktop/USB-Serial/pl2303.c: pl2303_close - port 0
/home/teleset/Desktop/USB-Serial/pl2303.c: pl2303_close - shutting down urbs
/home/teleset/Desktop/USB-Serial/pl2303.c: pl2303_read_bulk_callback - port 0
/home/teleset/Desktop/USB-Serial/pl2303.c: pl2303_read_bulk_callback - urb status = -2
/home/teleset/Desktop/USB-Serial/pl2303.c: pl2303_read_bulk_callback - port is closed,
exiting.
/home/teleset/Desktop/USB-Serial/pl2303.c: pl2303_read_int_callback (0)
/home/teleset/Desktop/USB-Serial/pl2303.c: pl2303_read_int_callback - urb shutting do
Thanks-
Raj
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: Test.c --]
[-- Type: text/x-csrc; name="Test.c", Size: 1632 bytes --]
#include <stdio.h>
#include <stdlib.h>
#include <termios.h>
#include <unistd.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
static struct termios oldterminfo;
void closeserial(int fd)
{
tcsetattr(fd, TCSANOW, &oldterminfo);
if (close(fd) < 0)
perror("closeserial()");
}
int openserial(char *devicename)
{
int fd;
struct termios attr;
if ((fd = open(devicename, O_RDWR)) == -1) {
perror("openserial(): open()");
return 0;
}
if (tcgetattr(fd, &oldterminfo) == -1) {
perror("openserial(): tcgetattr()");
return 0;
}
attr = oldterminfo;
attr.c_cflag |= CRTSCTS | CLOCAL;
attr.c_oflag = 0;
if (tcflush(fd, TCIOFLUSH) == -1) {
perror("openserial(): tcflush()");
return 0;
}
if (tcsetattr(fd, TCSANOW, &attr) == -1) {
perror("initserial(): tcsetattr()");
return 0;
}
return fd;
}
int setRTS(int fd, int level)
{
int status;
if (ioctl(fd, TIOCMGET, &status) == -1) {
perror("setRTS(): TIOCMGET");
return 0;
}
if (level)
status |= TIOCM_RTS;
else
status &= ~TIOCM_RTS;
if (ioctl(fd, TIOCMSET, &status) == -1) {
perror("setRTS(): TIOCMSET");
return 0;
}
return 1;
}
int main()
{
int fd;
char *serialdev = "/dev/ttyUSB0";
fd = openserial(serialdev);
if (!fd) {
fprintf(stderr, "Error while initializing %s.\n", serialdev);
return 1;
}
setRTS(fd,1);
usleep(10000);
setRTS(fd, 0);
closeserial(fd);
return 0;
}
next prev parent reply other threads:[~2010-10-05 11:03 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-09-13 9:17 Regarding USB-to-Serial device driver Raju Rameshwar Uprade
2010-09-13 13:56 ` Alan Stern
2010-09-13 15:48 ` Greg KH
2010-09-14 6:11 ` Raju Rameshwar Uprade
2010-09-14 13:19 ` Greg KH
2010-09-22 5:32 ` Regarding USB-to-serial " Raju Rameshwar Uprade
2010-09-22 14:56 ` Greg KH
2010-09-23 10:15 ` Raju Rameshwar Uprade
2010-09-23 14:02 ` Greg KH
2010-09-28 9:21 ` Raju Rameshwar Uprade
2010-09-28 11:30 ` Greg KH
2010-09-28 11:56 ` Raju Rameshwar Uprade
2010-09-28 12:07 ` Greg KH
2010-10-04 4:33 ` Raju Rameshwar Uprade
2010-10-05 11:03 ` Raju Rameshwar Uprade [this message]
2010-10-05 13:33 ` pl2303_ttyUSB0 userspace application not able to control RTS line Greg KH
2010-10-06 4:14 ` Raju Rameshwar Uprade
2010-10-06 4:30 ` Greg Oliver
2010-10-06 5:01 ` Raju Rameshwar Uprade
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=20101005104403.M28756@admin-gateway.ncra.tifr.res.in \
--to=rajsingh@ncra.tifr.res.in \
--cc=gregkh@suse.de \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
/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
all inboxes | Powered by JetHome®