USB: serial: garmin_gps: fixes package loss if used from gpsbabel
authorHermann Kneissel <hermann.kneissel@gmx.net>
Fri, 3 Aug 2007 18:20:33 +0000 (20:20 +0200)
committerGreg Kroah-Hartman <gregkh@suse.de>
Wed, 22 Aug 2007 21:27:44 +0000 (14:27 -0700)
commit468d13623b6c8d048abab71ed465fa8ad3bf8875
tree4caa0cc363b63ec4dfb0cfad9a0ff2d99b9ea291
parentc8ba84a0c682068a55a5892d6e12e3f196fd792c
USB: serial: garmin_gps: fixes package loss if used from gpsbabel

This patch contains two fixes submitted by Ondrej Palkovsky:
- the 'ACK' packet is sent after the transfer of the USB packet is
completed, i.e. in the write_callback function. Because the close
function sends the 'abort' command, a parameter is added that allows
the caller of garmin_write_bulk to specify, if the 'ack' should be
propagated to the serial link or dimissed.
This fixes the problem with gpsbabel, it has sent several packets that
were acknowledged before they were sent to the GPS and GpsBabel closed
the device - thus effectively cancelled all outstanding requests in the
queue.
- removed the APP_RESP_SEEN and APP_REQ_SEEN flags and changed
them into counters. It evades USB reset of the gps on every device close.

Signed-off-by: Hermann Kneissel <hermann.kneissel@gmx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/serial/garmin_gps.c