History log of /drivers/usb/serial/pl2303.c
Revision Date Author Comments
ce5c9851855bab190c9a142761d54ba583ab094c 23-Mar-2012 Johan Hovold <jhovold@gmail.com> USB: pl2303: fix DTR/RTS being raised on baud rate change

DTR/RTS should only be raised when changing baudrate from B0 and not on
any baud rate change (> B0).

Reported-by: Søren Holm <sgh@sgh.dk>
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Johan Hovold <jhovold@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
d1cddb4a8e9b09c33158acae05c48069d74fa4d0 25-Feb-2012 Greg KH <gregkh@linuxfoundation.org> USB: create module_usb_serial_driver macro

Now that Alan Stern has cleaned up the usb serial driver registration,
we have the ability to create a module_usb_serial_driver macro to make
things a bit simpler, like the other *_driver macros created.

But, as we need two functions here, we can't reuse the existing
module_driver() macro, so we need to roll our own.

Here's a patch implementing module_usb_serial_driver() and it converts
the pl2303 driver to use it, showing a nice cleanup.

Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
f667ddad41e303ebc2c6d5bf3105dffe2fbdd717 23-Feb-2012 Alan Stern <stern@rowland.harvard.edu> usb-serial: use new registration API in [n-p]* drivers

This patch (as1527) modifies the following usb-serial drivers to
utilize the new usb_serial_{de}register_drivers() routines:

navman, omninet, opticon, option, oti6858, and pl2303.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
90ab5ee94171b3e28de6bb42ee30b527014e0be7 13-Jan-2012 Rusty Russell <rusty@rustcorp.com.au> module_param: make bool parameters really bool (drivers & misc)

module_param(bool) used to counter-intuitively take an int. In
fddd5201 (mid-2009) we allowed bool or int/unsigned int using a messy
trick.

It's time to remove the int/unsigned int option. For this version
it'll simply give a warning, but it'll break next kernel version.

Acked-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
f5230a53c1d551811b077ccad219105786da1bec 06-Nov-2011 Johan Hovold <jhovold@gmail.com> USB: pl2303: use usb_serial_generic_open

Use generic open rather than calling usb_serial_submit_read_urb
directly.

Signed-off-by: Johan Hovold <jhovold@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
d4691c3fa3d371835b1eacb39066ab113c4b9d8c 06-Nov-2011 Johan Hovold <jhovold@gmail.com> USB: pl2302: clean up error handling in open

Reorder urb submission and simply kill interrupt urb should read-urb
submission fail (rather than calling close).

Signed-off-by: Johan Hovold <jhovold@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
db6e9186c90188edea20aaa5161ea073440cc2a1 06-Nov-2011 Johan Hovold <jhovold@gmail.com> USB: pl2303: return errors from usb_submit_urb in open

Return errors from usb_submit_urb rather than EPROTO on errors in open.

Signed-off-by: Johan Hovold <jhovold@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
0c16595539b612fe948559433dda08ff96a8bdc7 10-Nov-2011 wangyanqing <udknight@gmail.com> USB: serial: pl2303: rm duplicate id

I get report from customer that his usb-serial
converter doesn't work well,it sometimes work,
but sometimes it doesn't.

The usb-serial converter's id:
vendor_id product_id
0x4348 0x5523

Then I search the usb-serial codes, and there are
two drivers announce support this device, pl2303
and ch341, commit 026dfaf1 cause it. Through many
times to test, ch341 works well with this device,
and pl2303 doesn't work quite often(it just work quite little).

ch341 works well with this device, so we doesn't
need pl2303 to support.I try to revert 026dfaf1 first,
but it failed. So I prepare this patch by hand to revert it.

Signed-off-by: Wang YanQing <Udknight@gmail.com>
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
598f0b703506da841d3459dc0c48506be14d1778 24-Sep-2011 Eric Benoit <eric@ecks.ca> USB: pl2303: add id for SMART device

Add vendor and product ID for the SMART USB to serial adapter. These
were meant to be used with their SMART Board whiteboards, but can be
re-purposed for other tasks. Tested and working (at at least 9600 bps).

Signed-off-by: Eric Benoit <eric@ecks.ca>
Cc: stable <stable@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
55a46269ccedec140e2487a2344e8a247d48b385 25-Aug-2011 Michał Sroczyński <msroczyn@gmail.com> USB: pl2303: remove unreachable code

Signed-off-by: Michal Sroczynski <msroczyn@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
026dfaf18973404a01f488d6aa556a8c466e06a4 19-Jul-2011 Wolfgang Denk <wd@denx.de> USB: serial: add IDs for WinChipHead USB->RS232 adapter

Add ID 4348:5523 for WinChipHead USB->RS 232 adapter with
Prolifec PL2303 chipset

Signed-off-by: Wolfgang Denk <wd@denx.de>
Cc: stable <stable@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
8d48fdf689fed2c73c493e5146d1463689246442 05-Jul-2011 Michał Sroczyński <msroczyn@gmail.com> USB: PL2303: correctly handle baudrates above 115200

PL2303: correctly handle baudrates above 115200

Signed-off-by: Michal Sroczynski <msroczyn@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
00a0d0d65b61241a718d0aee96f46b9a2d93bf26 14-Feb-2011 Alan Cox <alan@linux.intel.com> tty: remove filp from the USB tty ioctls

We don't use it so we can trim it from here as we try and stamp the file
object dependencies out of the serial code.

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
20b9d17715017ae4dd4ec87fabc36d33b9de708e 14-Feb-2011 Alan Cox <alan@linux.intel.com> tiocmset: kill the file pointer argument

Doing tiocmget was such fun we should do tiocmset as well for the same
reasons

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
60b33c133ca0b7c0b6072c87234b63fee6e80558 14-Feb-2011 Alan Cox <alan@linux.intel.com> tiocmget: kill off the passing of the struct file

We don't actually need this and it causes problems for internal use of
this functionality. Currently there is a single use of the FILE * pointer.
That is the serial core which uses it to check tty_hung_up_p. However if
that is true then IO_ERROR is also already set so the check may be removed.

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
d14fc1a74e846d7851f24fc9519fe87dc12a1231 14-Jan-2011 Libor Pechacek <lpechacek@suse.cz> USB: serial: handle Data Carrier Detect changes

Alan's commit 335f8514f200e63d689113d29cb7253a5c282967 introduced
.carrier_raised function in several drivers. That also means
tty_port_block_til_ready can now suspend the process trying to open the serial
port when Carrier Detect is low and put it into tty_port.open_wait queue. We
need to wake up the process when Carrier Detect goes high and trigger TTY
hangup when CD goes low.

Some of the devices do not report modem status line changes, or at least we
don't understand the status message, so for those we remove .carrier_raised
again.

Signed-off-by: Libor Pechacek <lpechacek@suse.cz>
Cc: stable <stable@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
96a3e79edff6f41b0f115a82f1a39d66218077a7 21-Jan-2011 Dario Lombardo <dario.lombardo@libero.it> drivers: update to pl2303 usb-serial to support Motorola cables

Added 0x0307 device id to support Motorola cables to the pl2303 usb
serial driver. This cable has a modified chip that is a pl2303, but
declares itself as 0307. Fixed by adding the right device id to the
supported devices list, assigning it the code labeled
PL2303_PRODUCT_ID_MOTOROLA.

Signed-off-by: Dario Lombardo <dario.lombardo@libero.it>
Cc: stable <stable@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
f36ecd5de93e4c85a9e3d25100c6e233155b12e5 09-Aug-2010 Jef Driesen <jefdriesen@telenet.be> USB: pl2303: New vendor and product id

Add support for the Zeagle N2iTiON3 dive computer interface. Since
Zeagle devices are actually manufactured by Seiko, this patch will
support other Seiko based models as well.

Signed-off-by: Jef Driesen <jefdriesen@telenet.be>
Cc: stable <stable@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
6ee9f4b4affe751d313d2538999aeec134d413a6 18-Aug-2010 Dmitry Torokhov <dmitry.torokhov@gmail.com> USB: drop tty argument from usb_serial_handle_sysrq_char()

Since handle_sysrq() does not take tty as argument anymore we can
drop it from usb_serial_handle_sysrq_char() as well.

Acked-by: Alan Cox <alan@lxorguk.ukuu.org.uk>
Acked-by: Jason Wessel <jason.wessel@windriver.com>
Acked-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
d45cc8df7f59eb4db28408076ce979cd5e18f2b7 08-May-2010 Johan Hovold <jhovold@gmail.com> USB: pl2303: use tty_insert_flip_string_fixed_flag

Use tty_insert_flip_string_fixed_flag to report errors to line
discipline.

Signed-off-by: Johan Hovold <jhovold@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
8b0127b2082601e40295045414a8318f2c8ee5a0 17-Mar-2010 Johan Hovold <jhovold@gmail.com> USB: pl2303: use generic close

Use usb_serial_generic_close to kill the read and write urbs and to
reset the write fifo.

Signed-off-by: Johan Hovold <jhovold@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
684c6e30d389f67ef727c8f5a7b23a09b4cb02e4 17-Mar-2010 Johan Hovold <jhovold@gmail.com> USB: pl2303: switch to generic write implementation

Replace custom fifo-based write implementation with the generic
kfifo-based one.

Signed-off-by: Johan Hovold <jhovold@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
f08e07ac8b87b1a4b8ff88a061195e99282dfbbd 17-Mar-2010 Johan Hovold <jhovold@gmail.com> USB: pl2303: switch to generic read implementation

Use generic read implementation and use process_read_urb to do device
specific processing (handle line status).

Signed-off-by: Johan Hovold <jhovold@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
7919c2fd9e07276403b9a4d9ae52305e0d70f923 17-Mar-2010 Johan Hovold <jhovold@gmail.com> USB: pl2303: increase bulk-in buffer size to 256 byte

The pl2303 requires a bulk-in buffer larger than endpoint size to keep
up at high baudrates without loosing data.

Signed-off-by: Johan Hovold <jhovold@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
3efeaff6298290b36499532f0b4c87aa4bae8aef 17-Mar-2010 Johan Hovold <jhovold@gmail.com> USB: pl2303: increase the bulk-out buffer size to 256 byte

Increase the bulk-out buffer size from 64 to 256 byte.

This gives a significant increase in throughput already at 1Mbaud as well
as lowered CPU usage. The buffer is big enough to keep up also at 3Mbaud
(128b would not suffice).

64b 256b
921k: 640 KB/s 870 KB/s
3M: 640 KB/s 2520 KB/s

Signed-off-by: Johan Hovold <jhovold@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
bd5afa9eac6daa408412a31a6c69e87e8bd28c7e 09-Mar-2010 Jason Wessel <jason.wessel@windriver.com> usb-serial: Use tty_port version console instead of usb_serial_port

Replace all instances of using the console variable in struct
usb_serial_port with the struct tty_port version.

CC: Alan Cox <alan@linux.intel.com>
CC: Alan Stern <stern@rowland.harvard.edu>
CC: Oliver Neukum <oliver@neukum.org>
CC: Andrew Morton <akpm@linux-foundation.org>
CC: linux-usb@vger.kernel.org
CC: linux-kernel@vger.kernel.org
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
18344a1cd5889d48dac67229fcf024ed300030d5 12-Apr-2010 Simone Contini <s.contini@oltrelinux.com> USB: serial: pl2303: Hybrid reader Uniform HCR331

I tried a magnetic stripe reader
(http://www.kimaldi.com/kimaldi_eng/productos/lectores_de_tarjetas/lectores_tarjeta_chip_y_dni/lector_hibrido_uniform_hcr_331)
and I see that it is interfaced with a PL2303. I wrote a patch to use
your driver which simply adds the product ID for the device and it
seems working fine.


From: Simone Contini <s.contini@oltrelinux.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
9a61d72602771906e11a5944e8571f8006387b39 29-Mar-2010 Manuel Jander <manuel.jander@gmail.com> USB: pl2303: add AdLink ND-6530 USB IDs

I read a rumor that the AdLink ND6530 USB RS232, RS422 and RS485
isolated adapter is actually a PL2303 based usb serial adapter. I
tried it out, and as far as I can tell it works.

Signed-off-by: Manuel Jander <manuel.jander@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
124d255382ddd37ffa920e9f5183efa54bbfe4f2 25-Feb-2010 Johan Hovold <jhovold@gmail.com> USB: pl2303: remove unnecessary reset of usb_device in urbs

URBs are initialised at probe and do not change.

Signed-off-by: Johan Hovold <jhovold@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
67b9946dd07eeef8188e4cab816d2c370bcaa7b2 25-Feb-2010 John Tsiombikas <nuclear@member.fsf.org> USB: pl2303: initial TIOCGSERIAL support

I've got a trivial patch for the pl2303 driver, that's what I needed to
make the wacom serial tablet driver work properly. It uses the
TIOCGSERIAL ioctl to determine if it's talking to a serial device or
not, which I gather is rather common, but the pl2303 driver didn't
implement that ioctl.

Here's a patch, I'm not sure it's absolutely correct, I mostly looked at
other similar usbserial drivers to see what I must do, but it works for
me.

Signed-off-by: John Tsiombikas <nuclear@member.fsf.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
1f87158e44e79e62c8250f278c225ce4ab695f4b 17-Feb-2010 Alan Stern <stern@rowland.harvard.edu> USB: remove references to port->port.count from the serial drivers

This patch (as1344) removes references to port->port.count from the
USB serial drivers. Now that serial ports are properly reference
counted, port.count checking is unnecessary and incorrect. Drivers
should assume that the port is in use from the time the open method
runs until the close method is called.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
a108bfcb372d8c4452701039308fb95747911c59 18-Feb-2010 Alan Cox <alan@linux.intel.com> USB: tty: Prune uses of tty_request_room in the USB layer

We have lots of callers that do not need to do this in the first place.
Remove the calls as they both cost CPU and for big buffers can mess up the
multi-page allocation avoidance.

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
7d40d7e85a25e01948bcb4dc3eda1355af318337 10-Jan-2010 Németh Márton <nm127@freemail.hu> USB serial: make USB device id constant

The id_table field of the struct usb_device_id is constant in <linux/usb.h>
so it is worth to make the initialization data also constant.

The semantic match that finds this kind of pattern is as follows:
(http://coccinelle.lip6.fr/)

// <smpl>
@r@
disable decl_init,const_decl_init;
identifier I1, I2, x;
@@
struct I1 {
...
const struct I2 *x;
...
};
@s@
identifier r.I1, y;
identifier r.x, E;
@@
struct I1 y = {
.x = E,
};
@c@
identifier r.I2;
identifier s.E;
@@
const struct I2 E[] = ... ;
@depends on !c@
identifier r.I2;
identifier s.E;
@@
+ const
struct I2 E[] = ...;
// </smpl>

Signed-off-by: Németh Márton <nm127@freemail.hu>
Cc: Julia Lawall <julia@diku.dk>
Cc: cocci@diku.dk
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
9388e2e71a51fab0aa2309bbb45e8a23d89a95a9 08-Oct-2009 Johan Hovold <jhovold@gmail.com> USB: pl2303: fix error characters not being reported to ldisc

Fix regression introduced by commit
d4fc4a7bfc2dee626f4fec1e209e58eaa4312de6 (tty: Fix the PL2303 private
methods for sysrq).

Signed-off-by: Johan Hovold <jhovold@gmail.com>
Cc: stable <stable@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
29cf1b72f34519413b3fafbccc9ac776eb948ede 18-Aug-2009 Frank Schaefer <schaefer.frank@gmx.net> USB-serial: pl2303: use 1.5 instead of 2 stop bits with 5 data bits

This is how "real" UARTs (e.g. 16550) work and AFAIK what RS232 specifies, too.
Make the driver more compliant.

Signed-off-by: Frank Schaefer <schaefer.frank@gmx.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
6dd81b45fd7628f3eb308f387aee696366718f25 18-Aug-2009 Frank Schaefer <schaefer.frank@gmx.net> USB-serial: pl2303: add space/mark parity

The device supports it, so why not use it ? Works fine !

Signed-off-by: Frank Schaefer <schaefer.frank@gmx.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
25b8286805e856c8c7fda127018e31032c918015 18-Aug-2009 Frank Schaefer <schaefer.frank@gmx.net> USB-serial: pl2303: fix baud rate handling in case of unsupported values

According to the datasheets, the PL2303 supports a set of 25 baudrates.
The baudrate is set as a 4 byte value directly.

During my experiments with device 067b:2303 (PL2303X), I noticed that
- the bridge-controller always uses 9600 baud if invalid/unsupported baud rate
values are set
- the baud rate value returned by usb_control_msg(..., GET_LINE_REQUEST, ...)
does not reflect the actually used baudrate. Always the last set value is
returned, even if it was invalid and not used by the controller.

This patch fixes the following issues with the current code:
1.) make sure that only supported baudrates are set (are there any buggy
chip revisions out there which don't "like" other values... ?).
2.) always set the baudrate to the next nearest supported baudrate.
3.) applications can now read back the resulting baudrate properly, because
tty_encode_baud_rate(...) is now fed with the actually used baudrate.

Signed-off-by: Frank Schaefer <schaefer.frank@gmx.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
35904e6b5106fda51b04c8b8080c04466865415f 27-Aug-2009 Pawel Ludwikow <pludwiko@rab.ict.pwr.wroc.pl> USB: serial: pl2303: new hardware support - sanwa multimeter

I'd like to present my small patch enabling to use Sanwa PC5000
mulitimeter with linux.

Signed-off-by: Pawel Ludwikow <pludwiko@rab.ict.pwr.wroc.pl>
Cc: stable <stable@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
a509a7e478e4766114d69f12d19d644ac63e9765 19-Sep-2009 Alan Cox <alan@linux.intel.com> tty: USB does not need the filp argument in the drivers

And indeed none of them use it. Clean this up as it will make moving to a
standard open method rather easier.

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
49276560c9004fce24c42e3c0ad75f34d956fc63 28-Jul-2009 Khanh-Dang Nguyen Thu Lam <kdntl@yahoo.fr> USB: pl2303: New vendor and product id

I am submitting a patch for the pl2303 driver. This patch adds support
for the "Sony QN-3USB" cable (vendor=0x054c, product=0x0437). This USB
cable is a so-called data cable used to connect a Sony mobile phone to a
computer. Supported models are Sony CMD-J5, J6, J7, J16, J26, J70 and
Z7.

I have used this patch with my Sony CMD-J70 for several days and I
haven't encountered any kernel/hardware issue.


From: Khanh-Dang Nguyen Thu Lam <kdntl@yahoo.fr>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
8540d66615c39010168ab97eaafb476ec2851298 05-Jun-2009 Gianpaolo Cugola <gianpaoloc@gmail.com> USB: pl2303: New vendor and product id for the prolific driver

I recently bought a PC interface for the Cressi Edy dive computer
(www.cressi.it) and discovered that it uses the pl2303 chip, albeit
with ad-hoc vendor and product ids (04b8, 0521 respectively). Being in
the process of writing a linux software for such device (cressi only
provides a windows software), I patched the pl2303 linux driver to
have the interface recognized. I am submitting you the patch (very
basic) for inclusion in next kernel version.

From: Gianpaolo Cugola <gianpaoloc@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
d4fc4a7bfc2dee626f4fec1e209e58eaa4312de6 09-Jul-2009 Alan Cox <alan@linux.intel.com> tty: Fix the PL2303 private methods for sysrq

PL2303 has private data shovelling methods that also have no fast path. Fix
them to work the same way as the default handler.

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
24a15a62dcb1968bf4ffdae55c88fa934d971180 09-Jul-2009 Alan Cox <alan@linux.intel.com> tty: Fix USB kref leak

The sysrq code acquired a kref leak. Fix it by passing the tty separately
from the caller (thus effectively using the callers kref which all the
callers hold anyway)

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
f9c99bb8b3a1ec81af68d484a551307326c2e933 02-Jun-2009 Alan Stern <stern@rowland.harvard.edu> USB: usb-serial: replace shutdown with disconnect, release

This patch (as1254) splits up the shutdown method of usb_serial_driver
into a disconnect and a release method.

The problem is that the usb-serial core was calling shutdown during
disconnect handling, but drivers didn't expect it to be called until
after all the open file references had been closed. The result was an
oops when the close method tried to use memory that had been
deallocated by shutdown.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
430eb0d27c1b36c5191c16b2472b26137673a8d4 29-May-2009 Jason Wessel <jason.wessel@windriver.com> USB: pl2303 usb_serial: implement sysrq handling on break

Add callbacks to process the sysrq when using a pl2303 usb device as a
console.

Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
335f8514f200e63d689113d29cb7253a5c282967 11-Jun-2009 Alan Cox <alan@lxorguk.ukuu.org.uk> tty: Bring the usb tty port structure into more use

This allows us to clean stuff up, but is probably also going to cause
some app breakage with buggy apps as we now implement proper POSIX behaviour
for USB ports matching all the other ports. This does also mean other apps
that break on USB will now work properly.

Signed-off-by: Alan Cox <alan@lxorguk.ukuu.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
912299f6f0587bb6c221705ed9949709b36b3c56 06-Apr-2009 Alan Cox <alan@lxorguk.ukuu.org.uk> tty: pl2303 needs identifiers for Siemens S81 as well as EF81

Closes bug 9065

Signed-off-by: Alan Cox <alan@lxorguk.ukuu.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
af4b8514aafd53d97b05a0a30b7d4cfd2cbb7b81 16-Dec-2008 Mike Provencher <mike.provencher@hp.com> USB: pl2303: add id for Hewlett-Packard LD220-HP POS pole display

Add id for the Hewlett-Packard LD220-HP POS pole display.

Bus 002 Device 002: ID 03f0:3524 Hewlett-Packard

Signed-off-by: Mike Provencher <mike.provencher@hp.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
7c99200142c04d0f1ed3f048014591f841efdaed 13-Dec-2008 Matthew Arnold <Matthew.Arnold-1@uts.edu.au> USB: add 5372:2303 to pl2303

This patch adds the "Superial" USB-Serial converter to pl2303 so that it
is detected, by the correct driver. Adds the relevant vendor:product
(5372:2303) to the device tables in pl2303.c & pl2303.h. The patch has
been tested against 2.6.24-22-generic.

Signed-off-by: Matthew D Arnold <matthew.arnold-1@uts.edu.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
c197a8db59daf06dc5e77acd5a9681329cb22458 18-Aug-2008 Greg Kroah-Hartman <gregkh@suse.de> USB: remove info() macro from usb/serial drivers

USB should not be having it's own printk macros, so remove info() and
use the system-wide standard of dev_info() wherever possible.

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
4a90f09b20f4622dcbff1f0e1e6bae1704f8ad8c 13-Oct-2008 Alan Cox <alan@redhat.com> tty: usb-serial krefs

Use kref in the USB serial drivers so that we don't free tty structures
from under the URB receive handlers as has historically been the case if
you were unlucky. This also gives us a framework for general tty drivers to
use tty_port objects and refcount.

Contains two err->dev_err changes merged together to fix clashes in the
-next tree.

Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
4ad6de0b3f5d050b70e4c94a0cc8b26503f8cf28 13-Oct-2008 Jason Wessel <jason.wessel@windriver.com> usb: fix pl2303 initialization

This patch removes the private check for the termios_initialized for
the pl2303 usb driver. It forced the baud to 9600 on the first call
to pl2303_set_termios()

Based on the tty changes in the 2.6.27 kernel, the termios passed to
the *_set_termios functions is always populated the first time.

This means there is no need to privately initialize the settings the
first time, and doing so will not allow the use of the kernel
parameter "console=ttyUSB0,115200" as an example.

Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
8c809681ba0289afd0ed7bbb63679a0568dd441d 22-Jul-2008 Tollef Fog Heen <tfheen@err.no> USB: pl2023: Remove USB id (4348:5523) handled by ch341

USB ID 4348:5523 is handled by the ch341 driver. Remove it from the
pl2023 driver.

Reverts 002e8f2c80c6be76bb312940bc278fc10b2b2487.

Signed-off-by: Tollef Fog Heen <tfheen@err.no>
Cc: stable <stable@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
3a0f43e9deffd9619ac34e3b6b9ba7089aa1e511 22-Jul-2008 Alan Cox <alan@redhat.com> tty-usb-pl2303: Coding style

Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
95da310e66ee8090119596c70ca8432e57f9a97f 22-Jul-2008 Alan Cox <alan@redhat.com> usb_serial: API all change

USB serial likes to use port->tty back pointers for the real work it does and
to do so without any actual locking. Unfortunately when you consider hangup
events, hangup/parallel reopen or even worse hangup followed by parallel close
events the tty->port and port->tty pointers are not guaranteed to be the same
as port->tty is the active tty while tty->port is the port the tty may or
may not still be attached to.

So rework the entire API to pass the tty struct. For console cases we need
to pass both for now. This shows up multiple drivers that immediately crash
with USB console some of which have been fixed in the process.

Longer term we need a proper tty as console abstraction

Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
727df3569b358ef440683787c2b9fe8cc55a0954 02-Jul-2008 Greg Kroah-Hartman <gregkh@suse.de> USB: add a pl2303 device id

As reported by Ken A Scott <kscott9@sent.com>

Cc: Ken A Scott <kscott9@sent.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
4be2fa186d54758296d30c565d7b5111dd45b000 23-May-2008 Steve Murphy <steve@gnusis.org> USB: pl2303: another product ID

I've just got a USB GPRS/EDGE modem branded Manufacturer Micromax Model
MMX610U (see http://www.airtel.in/level2_t3data.aspx?path=1/106/179)
working by adding another product ID to pl2303. Modem info reports same
module as Max Arnold's i.e.SIMCOM SIM600 but with product ID 0x0612
(cf Ox0611).

From: Steve Murphy <steve@gnusis.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
26ab705396b65a469233a8327ecb51b8aebb6be0 16-May-2008 Atsushi Nemoto <anemo@mba.ocn.ne.jp> usb-serial: Use ftdi_sio driver for RATOC REX-USB60F

This patch reverts 57833ea6b95a3995149f1f6d1a8d8862ab7a0ba2
("usb-serial: pl2303: add support for RATOC REX-USB60F") and adds
support for the device to ftdi_sio driver.

Cc: Akira Tsukamoto <akirat@rd.scei.sony.co.jp>
Cc: stable <stable@kernel.org>
Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
cdc97792289179974af6dda781c855696358d307 24-Feb-2008 Ming Lei <tom.leiming@gmail.com> USB: remove unnecessary type casting of urb->context

urb->context code cleanup

Signed-off-by: Ming Lei <tom.leiming@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
a5b6f60c5a30c494017c7a2d11c4067f90d3d0df 08-Apr-2008 Alan Cox <alan@lxorguk.ukuu.org.uk> usb serial: more fixes and groundwork for tty changes

- If a termios change fails due to lack of memory we should copy the
old settings back over as the device has not changed
- Note various locking problems
- kl5kusb105 had various remaining tty flag handling problems
- Make safe_serial use tty_insert_flip_string not open coded loops
- set termios speed properly in usb_serial

Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
441b62c1edb986827154768d89bbac0ba779984f 04-Mar-2008 Harvey Harrison <harvey.harrison@gmail.com> USB: replace remaining __FUNCTION__ occurrences

__FUNCTION__ is gcc-specific, use __func__

Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
0ba4034e20abf372dae6c6cabeeeab600acb5889 16-Apr-2008 Greg Kroah-Hartman <gregkh@suse.de> USB: serial: remove unneeded number endpoints settings

The usb-serial core no longer checks these fields so remove them from
all of the individual drivers. They will be removed from the usb-serial
core in a patch later in the series.

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
b483b6aaa56f0db72fa50e85b6499a32d82009bf 20-Mar-2008 Max Arnold <lwarxx@gmail.com> USB: pl2303: another product ID

Device like this http://aldiga.com/english/A-100-USB-EDGE10.htm
contains Prolific 2303 chip.
Actually their site a bit outdated - I have AlDiga AL-11U
GSM/GPRS/EDGE modem and it works with pl2303 module after adding
corresponding product ID.

By default modem uses baud rate 460800. GSM chipset - SIMCom SIM600,
quad band 850/900/1800/1900 MHz

Device info:

T: Bus=04 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 5 Spd=12 MxCh= 0
D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=067b ProdID=0611 Rev= 0.00
C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=500mA
I:* If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=pl2303
E: Ad=81(I) Atr=03(Int.) MxPS= 10 Ivl=1ms
E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=83(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms

From: Max Arnold <lwarxx@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
0915f490d81c1a5098b399ec6c0be45bd421ee1d 23-Jan-2008 Oliver Neukum <oliver@neukum.org> USB: last abuses of intfdata in close for usb-serial drivers

these drivers abused intfdata in close() as flags for binding.
That races with reprobing of those devices. This patch fixes that by using
the flag and the locks introduced with the patch against mos7720.

Signed-off-by: Oliver Neukum <oneukum@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
fcf9e55e066d12c18add7c8a292bf879b45b1d55 14-Dec-2007 Sarah Sharp <saharabeara@gmail.com> USB: pl2303: Add autosuspend support to pl2303 usb serial converter.

Signed-off-by: Sarah Sharp <saharabeara@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
3e152505a57db6622deb1322c22551c046e33d16 14-Dec-2007 Sarah Sharp <saharabeara@gmail.com> USB: pl2303: Move pl2303 vendor specific init to probe function.

Without this fix, the pl2303 usb-serial adapter would not suspend properly
unless it had been opened first. A pl2303 type_1 chip will still break if the
system is hibernated while the RS-232 connector is powered by another system.
This was broken before, and a reset resume does not fix it. All other suspend
and autosuspend scenarios work with ATEN pl2303 adaptors with HX and type_1 chips.

Signed-off-by: Sarah Sharp <saharabeara@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
eb44da0b3aa0105cb38d81c5747a8feae64834be 14-Dec-2007 Sarah Sharp <saharabeara@gmail.com> USB: pl2303: Cleanup FISH and SOUP macros in pl2303 driver.

Replace the FISH and SOUP macros that violated the macro guidelines in CodingStyle.
Turn them into function calls with clearer variable names.

Signed-off-by: Sarah Sharp <saharabeara@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
57833ea6b95a3995149f1f6d1a8d8862ab7a0ba2 18-Jan-2008 Akira Tsukamoto <akirat@rd.scei.sony.co.jp> USB: pl2303: add support for RATOC REX-USB60F

pl2303: add support for RATOC REX-USB60F

This patch adds support for RATOC REX-USB60F Serial Adapters,
which is widely used in Japan recently.

Cc: stable <stable@kernel.org>
Signed-off-by: Akira Tsukamoto <akirat@rd.scei.sony.co.jp>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
94cb373a75a903a6246d3e671cabd3e7b7084105 12-Jan-2008 Daniel Kozák <kozzi11@gmail.com> USB: remove duplicate entry in Option driver and Pl2303 driver for Huawei modem

Remove entry for Huawei E620 UMTS/HSDPA card (ID: 12d1:1001) in pl2303 driver
Option driver is use instead

Cc: stable <stable@kernel.org>
Signed-off-by: Daniel Kozák <kozzi11@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
cc311ee7d29d96f0bf15599f4456012d6f5ea23c 06-Jan-2008 Damien Stuart <dstuart@dstuart.org> USB: Adding YC Cable USB Serial device to pl2303

This simply adds the "YC Cable" as a vendor and its pl2303-based
USB<->Serial adapter as a product. This particular adapter is sold by
Radio Shack. I've done limited testing on a few different systems with
no issues.

Cc: stable <stable@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
002e8f2c80c6be76bb312940bc278fc10b2b2487 02-Jan-2008 Piotr Roszatycki <dexter@debian.org> USB: add support for 4348:5523 WinChipHead USB->RS 232 adapter

add support for:

4348:5523 WinChipHead USB->RS 232 adapter with Prolifec PL 2303 chipset

[ mingo@elte.hu: merged it and nursed it upstream ]

Cc: stable <stable@kernel.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
bf5e5834bffc62b50cd4a201804506eb11ef1af8 08-Jan-2008 Alan Cox <alan@lxorguk.ukuu.org.uk> pl2303: Fix mode switching regression

Cleaning out all the incorrect 'no change made' checks for termios
settings showed up a problem with the PL2303. The hardware here seems to
lose sync and bits if you tell it to make no changes. This shows up with
a real world application.

To fix this the driver check for meaningful hardware changes is restored
but doing the tests correctly and as a tty layer function so it doesn't
get duplicated wrongly everywhere if other drivers turn out to need it.

Signed-off-by: Alan Cox <alan@redhat.com>
Tested-by: Mirko Parthey <mirko.parthey@informatik.tu-chemnitz.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
9e3285dba5cac12d656da66fd7d420ff1bc0ecc0 08-Nov-2007 Magnus Damm <magnus.damm@gmail.com> USB: pl2303: add support for Corega CG-USBRS232R

pl2303: add support for Corega CG-USBRS232R

This patch adds support for Corega CG-USBRS232R Serial Adapters.

Signed-off-by: Magnus Damm <damm@igel.co.jp>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
8a28dea3accda319d51a1bf4d3e280771d946f78 23-Oct-2007 Masakazu Mokuno <mokuno@sm.sony.co.jp> usb: serial/pl2303: support for IO Data Device RSAQ5

This patch adds support for the IO Data Device USB-RSAQ5, PL2303 based
USB-serial converter, to pl2303 driver

Signed-off-by: Masakazu Mokuno <mokuno@sm.sony.co.jp>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
df64c47184aedf34fd2a69a4b7f68584fe982fdf 15-Oct-2007 Alan Cox <alan@lxorguk.ukuu.org.uk> USB: pl2303: remove can't happen checks, set speed properly and report baud rate

Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
e7beb667842ad0f6ec95a22e7c88e71dfbd60649 24-Aug-2007 Andreas Loibl <andreas@andreas-loibl.de> usb: serial/pl2303: support for BenQ Siemens Mobile Phone EF81

This patch adds support for the BenQ Mobile Phone EF81 to pl2303

Signed-off-by: Andreas Loibl <andreas@andreas-loibl.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
e0c79f512cf469bc11fe9d53a4dcc5d0c39a3b79 09-Jul-2007 Alan Cox <alan@lxorguk.ukuu.org.uk> USB: pl2303: remove bogus checks and fix speed support to use tty_get_baud_rate()

Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
461d696aeeae294ad22dfcaae462d1757f955778 16-Jun-2007 Greg Kroah-Hartman <gregkh@suse.de> USB: serial: pl2303: clean up urb->status usage

This done in anticipation of removal of urb->status, which will make
that patch easier to review and apply in the future.


Cc: <linux-usb-devel@lists.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
4d0dce3e0b794942407391c52f8dd2760802f391 12-Jun-2007 Greg Kroah-Hartman <gregkh@suse.de> USB: fix up license wording on some of my usb-serial drivers

Also update the copyright date on the pl2303 driver, as it was out of date.

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
715f9527c1c1edd1a9c7a55ab4535211279c9374 25-Apr-2007 t.sefzick <t.sefzick@fz-juelich.de> USB: flow control fix for pl2303

in order to be able to switch back to 'flow-control none'
after having activated 'flow-control rts/cts', I made
a small change to 'pl2303.c'.


Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2d94b981c7fcb0fba4aa3442cd180066dbedbbc8 26-Jan-2007 YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> USB: PL2303: Willcom WS002IN Support.

Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
d9b1b787736852f462dbf277b3ca708cbbf693ae 17-Dec-2006 Johannes Hölzl <johannes.hoelzl@gmx.de> USB serial: add driver pointer to all usb-serial drivers

Every usb serial driver should have a pointer to the corresponding usb driver.
So the usb serial core can add a new id not only to the usb serial driver, but
also to the usb driver.

Also the usb drivers of ark3116, mos7720 and mos7840 missed the flag
no_dynamic_id=1. This is added now.

Signed-off-by: Johannes Hölzl <johannes.hoelzl@gmx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
5cbded585d129d0226cb48ac4202b253c781be26 13-Dec-2006 Robert P. J. Day <rpjday@mindspring.com> [PATCH] getting rid of all casts of k[cmz]alloc() calls

Run this:

#!/bin/sh
for f in $(grep -Erl "\([^\)]*\) *k[cmz]alloc" *) ; do
echo "De-casting $f..."
perl -pi -e "s/ ?= ?\([^\)]*\) *(k[cmz]alloc) *\(/ = \1\(/" $f
done

And then go through and reinstate those cases where code is casting pointers
to non-pointers.

And then drop a few hunks which conflicted with outstanding work.

Cc: Russell King <rmk@arm.linux.org.uk>, Ian Molton <spyro@f2s.com>
Cc: Mikael Starvik <starvik@axis.com>
Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
Cc: Roman Zippel <zippel@linux-m68k.org>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Kyle McMartin <kyle@mcmartin.ca>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Jeff Dike <jdike@addtoit.com>
Cc: Greg KH <greg@kroah.com>
Cc: Jens Axboe <jens.axboe@oracle.com>
Cc: Paul Fulghum <paulkf@microgate.com>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: Karsten Keil <kkeil@suse.de>
Cc: Mauro Carvalho Chehab <mchehab@infradead.org>
Cc: Jeff Garzik <jeff@garzik.org>
Cc: James Bottomley <James.Bottomley@steeleye.com>
Cc: Ian Kent <raven@themaw.net>
Cc: Steven French <sfrench@us.ibm.com>
Cc: David Woodhouse <dwmw2@infradead.org>
Cc: Neil Brown <neilb@cse.unsw.edu.au>
Cc: Jaroslav Kysela <perex@suse.cz>
Cc: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
606d099cdd1080bbb50ea50dc52d98252f8f10a1 08-Dec-2006 Alan Cox <alan@lxorguk.ukuu.org.uk> [PATCH] tty: switch to ktermios

This is the grungy swap all the occurrences in the right places patch that
goes with the updates. At this point we have the same functionality as
before (except that sgttyb() returns speeds not zero) and are ready to
begin turning new stuff on providing nobody reports lots of bugs

If you are a tty driver author converting an out of tree driver the only
impact should be termios->ktermios name changes for the speed/property
setting functions from your upper layers.

If you are implementing your own TCGETS function before then your driver
was broken already and its about to get a whole lot more painful for you so
please fix it 8)

Also fill in c_ispeed/ospeed on init for most devices, although the current
code will do this for you anyway but I'd like eventually to lose that extra
paranoia

[akpm@osdl.org: bluetooth fix]
[mp3@de.ibm.com: sclp fix]
[mp3@de.ibm.com: warning fix for tty3270]
[hugh@veritas.com: fix tty_ioctl powerpc build]
[jdike@addtoit.com: uml: fix ->set_termios declaration]
Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Martin Peschke <mp3@de.ibm.com>
Acked-by: Peter Oberparleiter <oberpar@de.ibm.com>
Cc: Cornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: Hugh Dickins <hugh@veritas.com>
Signed-off-by: Jeff Dike <jdike@addtoit.com>
Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
7d12e780e003f93433d49ce78cfedf4b4c52adc5 05-Oct-2006 David Howells <dhowells@redhat.com> IRQ: Maintain regs pointer globally rather than passing to IRQ handlers

Maintain a per-CPU global "struct pt_regs *" variable which can be used instead
of passing regs around manually through all ~1800 interrupt handlers in the
Linux kernel.

The regs pointer is used in few places, but it potentially costs both stack
space and code to pass it around. On the FRV arch, removing the regs parameter
from all the genirq function results in a 20% speed up of the IRQ exit path
(ie: from leaving timer_interrupt() to leaving do_IRQ()).

Where appropriate, an arch may override the generic storage facility and do
something different with the variable. On FRV, for instance, the address is
maintained in GR28 at all times inside the kernel as part of general exception
handling.

Having looked over the code, it appears that the parameter may be handed down
through up to twenty or so layers of functions. Consider a USB character
device attached to a USB hub, attached to a USB controller that posts its
interrupts through a cascaded auxiliary interrupt controller. A character
device driver may want to pass regs to the sysrq handler through the input
layer which adds another few layers of parameter passing.

I've build this code with allyesconfig for x86_64 and i386. I've runtested the
main part of the code on FRV and i386, though I can't test most of the drivers.
I've also done partial conversion for powerpc and MIPS - these at least compile
with minimal configurations.

This will affect all archs. Mostly the changes should be relatively easy.
Take do_IRQ(), store the regs pointer at the beginning, saving the old one:

struct pt_regs *old_regs = set_irq_regs(regs);

And put the old one back at the end:

set_irq_regs(old_regs);

Don't pass regs through to generic_handle_irq() or __do_IRQ().

In timer_interrupt(), this sort of change will be necessary:

- update_process_times(user_mode(regs));
- profile_tick(CPU_PROFILING, regs);
+ update_process_times(user_mode(get_irq_regs()));
+ profile_tick(CPU_PROFILING);

I'd like to move update_process_times()'s use of get_irq_regs() into itself,
except that i386, alone of the archs, uses something other than user_mode().

Some notes on the interrupt handling in the drivers:

(*) input_dev() is now gone entirely. The regs pointer is no longer stored in
the input_dev struct.

(*) finish_unlinks() in drivers/usb/host/ohci-q.c needs checking. It does
something different depending on whether it's been supplied with a regs
pointer or not.

(*) Various IRQ handler function pointers have been moved to type
irq_handler_t.

Signed-Off-By: David Howells <dhowells@redhat.com>
(cherry picked from 1b16e7ac850969f38b375e511e3fa2f474a33867 commit)
b697f70f763fe92d5fd05e7e2043bd2b5f12b073 28-Sep-2006 Wesley PA4WDH <pa4wdh@gmail.com> USB: Add vendor / product ID to pl2303

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
8fd801339350b63cbb90730ff8b2be349fb3dc67 16-Sep-2006 Johannes Steingraeber <Jo_Stein@web.de> usb serial: support Alcor Micro Corp. USB 2.0 TO RS-232 through pl2303 driver

Patch to add support for Alcor Micro Corp. USB 2.0 TO RS-232 converter.
This patch adds VID and PID to pl2303.[ch], adds it to the "HORRIBLE
HACK FOR PL2303" in usb-serial.c and also prevents cdc-acm to claim
driving this device by blacklisting it in hid-core.

Signed-off-by: Johannes Steingraeber <Jo_Stein@web.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
9c53761681497d598a31ed2f6b29b5b3480c49db 29-Jul-2006 Thiago Galesi <thiagogalesi@gmail.com> USB: pl2303: cosmetic changes to quirk

Cosmetic changes to quirk in pl2303_update_line_status

Signed-off-by: Thiago Galesi <thiagogalesi@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
572d3138eb0cf17a2bf36944cc1d2c753578862e 29-Jul-2006 Thiago Galesi <thiagogalesi@gmail.com> USB: pl2303: reduce number of prototypes

Reduce number of needed prototypes in Prolific pl2303 driver

Signed-off-by: Thiago Galesi <thiagogalesi@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
10a18cd1a31e34d123d5ae4736a3393432352750 29-Jul-2006 Thiago Galesi <thiagogalesi@gmail.com> USB: pl2303: cosmetic changes to pl2303_buf_{clear, data_avail}

Changes the functions pl2303_buf_clear and pl2303_buf_data_avail for
the purpose of keeping them under the 80 column limit, making them
more similar to similar functions and making then simpler.

Signed-off-by: Thiago Galesi <thiagogalesi@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
372db8a780f63368c6960a167b7a19aad776d704 31-Jul-2006 Thiago Galesi <thiagogalesi@gmail.com> USB: pl2303: remove 80-columns limit violations in pl2303 driver

Fixes several lines that overrun 80 columns in Prolific pl2303 driver
and cleans up some space usages in the function calls.

Signed-off-by: Thiago Galesi <thiagogalesi@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
a009b75aa0ed55f0bc473c8a3b3e872cbca807ec 25-Jul-2006 Luiz Fernando N. Capitulino <lcapitulino@mandriva.com.br> USB: pl2303: Removes unneeded goto.

Signed-off-by: Luiz Fernando N. Capitulino <lcapitulino@mandriva.com.br>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
be729523369ec7825bde4a0e774ee7932e9d3dff 18-Aug-2006 Tomasz Kazmierczak <tomek.fizyk@op.pl> [PATCH] USB: pl2303: removed support for OTi's DKU-5 clone cable

This patch removes support for a clone of Nokia DKU-5 cable made by Ours
Technology Inc, as it turned out that the cable does not use the pl2303
chip, but OTI-6858 chip which is not compatible with the pl2303.

Signed-off-by: Tomasz Kazmierczak <tomek.fizyk@op.pl>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
b7aa94b682dc6b6dcdc01d36f8e65cef5aae81e2 25-Jul-2006 Kim Oldfield <luv@oldfield.wattle.id.au> USB: New USB ID for Belkin Serial Adapter

Can you add the USB IDs for the Belkin USB Serial adapter (P/N F5U257)
to the pl2303 driver in the Linux Kernel? Are you the appropriate person
to approach for this?

I recently purchased a Belkin USB Serial adapter (P/N F5U257) and found
that it didn't work. After a bit of experimentation I found that it
works with the pl2303 driver once the ID has been added. See attached
patch to fix this. Also attached is the output from lsusb -v just in
case you require any information from there.


From: Kim Oldfield <luv@oldfield.wattle.id.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
a969888ce91673c7f4b86520d851a6f0d5a5fa7d 12-Jul-2006 Greg Kroah-Hartman <gregkh@suse.de> [PATCH] USB: move usb-serial.h to include/linux/usb/

USB serial outside of the kernel tree can not build properly due to
usb-serial.h being buried down in the source tree. This patch moves the
location of the file to include/linux/usb and fixes up all of the usb
serial drivers to handle the move properly.

Cc: Sergei Organov <osv@javad.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
3b92847425a98d26ad9d2b8682d3ce6020c90752 21-Jun-2006 Matthew Meno <mmeno@idealcorp.com> [PATCH] USB: Support for Susteen Datapilot Universal-2 cable in pl2303

The Susteen Datapilot cable
(http://www.susteen.com/productdetail/71/producthl/Notempty) has an
internal pl2303 to communicate with a set of dummy connector-ends that
connect to a variety of cell phones. I've found that it works right out
of the box by simply adding the product/vendor id to the pl2303 driver.

Signed-off-by: Matt Meno <mmeno@idealcorp.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
3d861494729c70d9ebeb7d93caa107897925c355 19-Jun-2006 Peter Moulder <Peter.Moulder@infotech.monash.edu.au> [PATCH] USB: Addition of vendor/product id pair for pl2303 driver

Text from the back of the box, for your information/amusement:

USB DATA CABLE
FOR K700 Series

The USB Cable is an ideal link between your mobile phone and PC. Employing
the user-friendiy [sic] USB standard,its capacity for rapid data transfer enables functions
such as synchronization of phone book and calendar,as well as Internet browsing via
a modem-enabled phone.Autual [sic] connection speed is dependent on phone capacity.

MADE IN CHINA

From: Peter Moulder <Peter.Moulder@infotech.monash.edu.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
6ab3d5624e172c553004ecc862bfeac16d9d68b7 30-Jun-2006 Jörn Engel <joern@wohnheim.fh-wedel.de> Remove obsolete #include <linux/config.h>

Signed-off-by: Jörn Engel <joern@wohnheim.fh-wedel.de>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
80b47853b19114dd53e83e15bf1db3e183a66824 23-May-2006 Pete Zaitcev <zaitcev@redhat.com> [PATCH] USB: Syntax cleanup for pl2303 (trailing backslash)

Remove the silly trailing backslash.

Signed-off-by: Pete Zaitcev <zaitcev@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
cf2c7481d2ff7f0c266de873b2fe93883e9782f9 23-May-2006 Pete Zaitcev <zaitcev@redhat.com> [PATCH] USB serial: encapsulate schedule_work, remove double-calling

I'm going to throw schedule_work away, it's retarded. But for starters,
let's have it encapsulated.

Also, generic and whiteheat were both calling usb_serial_port_softint
and scheduled work. Only one was necessary.

Signed-off-by: Pete Zaitcev <zaitcev@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
58381719845d9ee19a321c2eb69cfa9b7886be9a 19-Apr-2006 Wang Jun <wangjun1974@gmail.com> [PATCH] USB: add new iTegno usb CDMA 1x card support for pl2303

Add new iTegno usb CDMA 1x card (usbid '0eba:2080') support to pl2303 driver

Signed-off-by: Wang Jun <wangjun1974@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
e853bf4af372afdae732c48be04a6b154f2de3d4 06-Apr-2006 Tomasz Kazmierczak <tomek.fizyk@op.pl> [PATCH] USB: pl2303: added support for OTi's DKU-5 clone cable

This patch adds support for a clone of Nokia DKU-5 cable made by
Ours Technology Inc for Nokia phones with PopPort (Nokia 3100 and others).
The cable uses PL2303 USB-to-serial converter from Prolific Technology Inc.

Signed-off-by: Tomasz Kazmierczak <tomek.fizyk@op.pl>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
491b04ce1c9adfa0cd73f095086f3c37da81b667 01-Mar-2006 Dick Streefland <dick@streefland.net> [PATCH] USB: support for USB-to-serial cable from Speed Dragon Multimedia

The USB data cable for my Samsung GSM phone contains the USB-to-serial
converter chip MS3303H from Speed Dragon Multimedia, Inc. that appears to
be compatible with the PL2303 chip. The following patch adds support for
this chip to the pl2303 driver.

Signed-off-by: Dick Streefland <dick@streefland.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
96050b11f690878c19c1cd39970ab7325d91e18b 01-Mar-2006 Julian Bradfield <jcb+luu@inf.ed.ac.uk> [PATCH] USB: PL2303 and TIOCMIWAIT

A while ago, I posted about TIOCMIWAIT not working with the PL2303
USB-serial adapter.

After a brief exchange with Greg, I tracked this to a missing wake-up
in the USB interrupt procedures. I got our systems staff to install
the enclosed very simple patch to our 2.6.12 kernels, and it all works
fine as expected. I guess this should also apply to the latest version
and go into the mainstream.

Apologies for the long delay in posting the result.

The routine being patched is pl2303_update_line_status

Signed-off-by: Julian Bradfield <jcb+luu@inf.ed.ac.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
80b6ca48321974a6566a1c9048ba34f60420bca6 27-Feb-2006 Eric Sesterhenn <snakebyte@gmx.de> [PATCH] USB: kzalloc() conversion for rest of drivers/usb

Signed-off-by: Eric Sesterhenn <snakebyte@gmx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
c6c27721a42b991965bb792d5c196b8331d008d5 01-Feb-2006 Christian Lindner <christian.lindner@gmx.net> [PATCH] USB: PL2303: Leadtek 9531 GPS-Mouse

The patch adds the USB ID (0413:2101) for the Leadtek GPS-Mouse 9531 to
the driver pl2303.

Signed-off-by: Christian Lindner <christian.lindner@gmx.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
6cceb05f8df6e28ab90f44bdeba50d33928cdee5 19-Jan-2006 Denis MONTERRAT <denis.monterrat@sagem.com> [PATCH] USB: add new pl2303 device ids

Signed-off-by: FALIPOU F Developer <fred.falipou@free.fr>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
838b42814c640ddcc378ba29cd31ffd64fb36bc5 09-Jan-2006 Martin Gingras <martin.gingras@gmail.com> [PATCH] USB: pl2303: Added support for CA-42 clone cable

Added support for CA-42 clone cable (www.ca-42.com)

Signed-off-by: Martin Gingras <martin.gingras@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
3824ba7df91745da6ebac703c87c3b801c34fdd0 14-Jan-2006 Adrian Bunk <bunk@stusta.de> [PATCH] remove unused tmp_buf_sem's

tmp_buf_sem sems to be a common name for something completely unused...

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Acked-by: Greg Kroah-Hartman <gregkh@suse.de> ("usb portion")
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
33f0f88f1c51ae5c2d593d26960c760ea154c2e2 10-Jan-2006 Alan Cox <alan@lxorguk.ukuu.org.uk> [PATCH] TTY layer buffering revamp

The API and code have been through various bits of initial review by
serial driver people but they definitely need to live somewhere for a
while so the unconverted drivers can get knocked into shape, existing
drivers that have been updated can be better tuned and bugs whacked out.

This replaces the tty flip buffers with kmalloc objects in rings. In the
normal situation for an IRQ driven serial port at typical speeds the
behaviour is pretty much the same, two buffers end up allocated and the
kernel cycles between them as before.

When there are delays or at high speed we now behave far better as the
buffer pool can grow a bit rather than lose characters. This also means
that we can operate at higher speeds reliably.

For drivers that receive characters in blocks (DMA based, USB and
especially virtualisation) the layer allows a lot of driver specific
code that works around the tty layer with private secondary queues to be
removed. The IBM folks need this sort of layer, the smart serial port
people do, the virtualisers do (because a virtualised tty typically
operates at infinite speed rather than emulating 9600 baud).

Finally many drivers had invalid and unsafe attempts to avoid buffer
overflows by directly invoking tty methods extracted out of the innards
of work queue structs. These are no longer needed and all go away. That
fixes various random hangs with serial ports on overflow.

The other change in here is to optimise the receive_room path that is
used by some callers. It turns out that only one ldisc uses receive room
except asa constant and it updates it far far less than the value is
read. We thus make it a variable not a function call.

I expect the code to contain bugs due to the size alone but I'll be
watching and squashing them and feeding out new patches as it goes.

Because the buffers now dynamically expand you should only run out of
buffering when the kernel runs out of memory for real. That means a lot of
the horrible hacks high performance drivers used to do just aren't needed any
more.

Description:

tty_insert_flip_char is an old API and continues to work as before, as does
tty_flip_buffer_push() [this is why many drivers dont need modification]. It
does now also return the number of chars inserted

There are also

tty_buffer_request_room(tty, len)

which asks for a buffer block of the length requested and returns the space
found. This improves efficiency with hardware that knows how much to
transfer.

and tty_insert_flip_string_flags(tty, str, flags, len)

to insert a string of characters and flags

For a smart interface the usual code is

len = tty_request_buffer_room(tty, amount_hardware_says);
tty_insert_flip_string(tty, buffer_from_card, len);

More description!

At the moment tty buffers are attached directly to the tty. This is causing a
lot of the problems related to tty layer locking, also problems at high speed
and also with bursty data (such as occurs in virtualised environments)

I'm working on ripping out the flip buffers and replacing them with a pool of
dynamically allocated buffers. This allows both for old style "byte I/O"
devices and also helps virtualisation and smart devices where large blocks of
data suddenely materialise and need storing.

So far so good. Lots of drivers reference tty->flip.*. Several of them also
call directly and unsafely into function pointers it provides. This will all
break. Most drivers can use tty_insert_flip_char which can be kept as an API
but others need more.

At the moment I've added the following interfaces, if people think more will
be needed now is a good time to say

int tty_buffer_request_room(tty, size)

Try and ensure at least size bytes are available, returns actual room (may be
zero). At the moment it just uses the flipbuf space but that will change.
Repeated calls without characters being added are not cumulative. (ie if you
call it with 1, 1, 1, and then 4 you'll have four characters of space. The
other functions will also try and grow buffers in future but this will be a
more efficient way when you know block sizes.

int tty_insert_flip_char(tty, ch, flag)

As before insert a character if there is room. Now returns 1 for success, 0
for failure.

int tty_insert_flip_string(tty, str, len)

Insert a block of non error characters. Returns the number inserted.

int tty_prepare_flip_string(tty, strptr, len)

Adjust the buffer to allow len characters to be added. Returns a buffer
pointer in strptr and the length available. This allows for hardware that
needs to use functions like insl or mencpy_fromio.

Signed-off-by: Alan Cox <alan@redhat.com>
Cc: Paul Fulghum <paulkf@microgate.com>
Signed-off-by: Hirokazu Takata <takata@linux-m32r.org>
Signed-off-by: Serge Hallyn <serue@us.ibm.com>
Signed-off-by: Jeff Dike <jdike@addtoit.com>
Signed-off-by: John Hawkes <hawkes@sgi.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
95f209f93663103db2a8fb989e226ac68a98b036 28-Jul-2005 Horst Schirmeier <horst@schirmeier.com> [PATCH] USB: pl2303_update_line_status data length fix

Minimum data length must be UART_STATE + 1, as data[UART_STATE] is being
accessed for the new line_state. Although PL-2303 hardware is not
expected to send data with exactly UART_STATE length, this keeps it on
the safe side.

Signed-off-by: Horst Schirmeier <horst@schirmeier.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
75318d2d7cab77b14c5d3dbd5e69f2680a769e16 21-Nov-2005 Greg Kroah-Hartman <gregkh@suse.de> [PATCH] USB: remove .owner field from struct usb_driver

It is no longer needed, so let's remove it, saving a bit of memory.

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
ba9dc657af86d05d2971633e57d1f6f94ed60472 16-Nov-2005 Greg Kroah-Hartman <gregkh@suse.de> [PATCH] USB: allow usb drivers to disable dynamic ids

This lets drivers, like the usb-serial ones, disable the ability to add
ids from sysfs.

The usb-serial drivers are "odd" in that they are really usb-serial bus
drivers, not usb bus drivers, so the dynamic id logic will have to go
into the usb-serial bus core for those drivers to get that ability.

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
b8f4c1d6674463e5824eada1ad7ec799276718bd 17-Nov-2005 Luiz Fernando Capitulino <lcapitulino@mandriva.com.br> [PATCH] USB: pl2303: updates pl2303_update_line_status()

Updates pl2303_update_line_status() to handle X75 and SX1 Siemens mobiles

Signed-off-by: Luiz Capitulino <lcapitulino@mandriva.com.br>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
a8310f3b8b713e52d77c56d4b8865685ee40d02a 17-Nov-2005 Luiz Fernando Capitulino <lcapitulino@mandriva.com.br> [PATCH] USB: pl2303: adds new IDs.

This patch adds two new Siemens mobiles IDs for the pl2303 driver.

Signed-off-by: Luiz Capitulino <lcapitulino@mandriva.com.br>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17a882fc0c91477b2582a6dfd4ca93ae7eb58cd3 21-Jun-2005 Greg Kroah-Hartman <gregkh@suse.de> [PATCH] USB Serial: remove driver version from a few drivers

These numbers are pointless, as they have not been changed in _years_,
so we should just remove them to stop pretending there is an actual
"version number" for these drivers.

This should also help reduce confusion when people try to ask for
support of a specific driver version, as there has been no way to tell
what they are talking about.

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
269bda1c123c7caf88e1deb2264f9086f0344192 21-Jun-2005 Greg Kroah-Hartman <gregkh@suse.de> [PATCH] USB Serial: move name to driver structure

This fixes up a lot of problems in sysfs with some of the usb serial
drivers, they had incorrect driver names. Also saves a tiny ammount
of memory.

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
502b95c1cc9e2c855a26f90fc999c5211b8ba957 21-Jun-2005 Greg Kroah-Hartman <gregkh@suse.de> [PATCH] USB Serial: move old changelog comments out of source code

Create a new file just for these things, as they just get in the
way in the source files.

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
18fcac353fdc7cd072b0d24c8667042e675a4c11 21-Jun-2005 Greg Kroah-Hartman <gregkh@suse.de> [PATCH] USB Serial: get rid of the .owner field in usb_serial_driver

Don't duplicate something that's already in struct driver.

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
ea65370d025f5005649e5cb37c4d025e92c6fc38 21-Jun-2005 Greg Kroah-Hartman <gregkh@suse.de> [PATCH] USB Serial: rename usb_serial_device_type to usb_serial_driver

I'm tired of trying to explain why a "device_type" is really a driver.
This better describes exactly what this structure is.

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
68e110a078a7e8a416ba06bfa6372ae28222809e 31-Aug-2005 Robert Spanton <rds204@ecs.soton.ac.uk> [PATCH] USB: PL2303: CA-42 Phone cable

This patch adds the product ID and vendor ID for a Nokia CA-42 USB cable
to the list of devices handled by the pl2303 driver. The patch is
against 2.6.13.

Signed-off-by: Robert Spanton <rds204@zepler.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
22c438632850c0d6257b45c90afed0cea6953afc 15-Aug-2005 Nishanth Aravamudan <nacc@us.ibm.com> [PATCH] drivers/usb: fix-up schedule_timeout() usage

Description: Use schedule_timeout_{,un}interruptible() instead of
set_current_state()/schedule_timeout() to reduce kernel size.

Signed-off-by: Nishanth Aravamudan <nacc@us.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
1694899fd1af43636351aac97f415fd3c9cefb1d 28-Jul-2005 Dariusz M <D.Marcinkiewicz@elka.pw.edu.pl> [PATCH] USB: pl2303 driver, makes pl2303HX chip work correctly

This trivial patch makes pl2303 driver work correctly with pl2303HX chip.
Apparently some bug in HX version of pl2303 makes the chip loose some
transmitted bytes or stop working at all after reception of
USB_REQ_CLEAR_FEATURE mesage. Logs generated by UsbSnoop application reveal
that windows driver does not send this type of messages to the converter.

From: "Dariusz M." <D.Marcinkiewicz@elka.pw.edu.pl>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
1bc3c9e1e44c2059fe2ffa6ff70ad0a925d7b05f 19-Apr-2005 Jesper Juhl <juhl-lkml@dif.dk> [PATCH] USB: kfree cleanup for drivers/usb/* - no need to check for NULL

Get rid of a bunch of redundant NULL pointer checks in drivers/usb/*,
there's no need to check a pointer for NULL before calling kfree() on it.

Signed-off-by: Jesper Juhl <juhl-lkml@dif.dk>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>


Index: gregkh-2.6/drivers/usb/class/audio.c
===================================================================
acbb36f116243bed515357264ecbb6ff9c6d2a5b 19-Apr-2005 Peter Favrholdt <pfavr@mip.sdu.dk> [PATCH] USB: pl2303 new vendor/model ids

Please accept the attached patch which adds the vendorid 0x0745 and
modelid 0x0001 (ID 0745:0001) "Syntech Information Co., Ltd."

The device is an USB IR cradle for a barcode scanner (CPT-8001C) from
Cipherlab.


From: Peter Favrholdt <pfavr@mip.sdu.dk>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

diff -u kernel-source-2.6.11/drivers/usb/serial/pl2303.c ../kernel-source-2.6.11/drivers/usb/serial/pl2303.c
97bb13ec5bc156352cca8af90080597e04299a73 19-Apr-2005 Flavio Leitner <fbl@conectiva.com.br> [PATCH] pl2303 - status line

I'm attaching a patch to fix status when using Siemens X65
mobile. This mobile use first byte instead of normal UART_STATE
byte.


From: Flavio Leitner <fbl@conectiva.com.br>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>


Index: gregkh-2.6/drivers/usb/serial/pl2303.c
===================================================================
6fdd8e8e33730a2abc886113bd0b6c4343f63cc9 19-Apr-2005 Flavio Leitner <fbl@conectiva.com.br> [PATCH] pl2303 - unplug device.

It's possible to unplug usb device and do tiocmset() and tiocmget() without
valid interface in pl2303 module.

The patch below check this and return -ENODEV if interface was removed.

From: Flavio Leitner <fbl@conectiva.com.br>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

diff -purN linux-05-04-11/drivers/usb/serial/pl2303.c linux-05-04-11.usb/drivers/usb/serial/pl2303.c
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 17-Apr-2005 Linus Torvalds <torvalds@ppc970.osdl.org> Linux-2.6.12-rc2

Initial git repository build. I'm not bothering with the full history,
even though we have it. We can create a separate "historical" git
archive of that later if we want to, and in the meantime it's about
3.2GB when imported into git - space that would just make the early
git days unnecessarily complicated, when we don't have a lot of good
infrastructure for it.

Let it rip!