Qualcomm USB Host Driver version 2.0.5.0 for Windows 2000/XP/Server 2003/Vista

This readme covers important information regarding Qualcomm USB Host Driver
version 2.0.5.0 for Windows 2000, Windows XP, Windows Server 2003 and Windows
Vista.

Table of Contents

1. Installation Notes
2. Major Features
3. What's New in This Release
4. Known issues
5. Build Information

----------------------------------------------------------------------

1. INSTALLATION NOTES

Please refer to Qualcomm document 80-V4609-1 Rev J for detailed instructions on
driver installation. The aforesaid document is encloded in the driver package.

----------------------------------------------------------------------

2. MAJOR FEATURES

1) Major bug fixes for operations under Windows XP, backward compatible with
   Windows 2000. Support 64-bit Windows.

2) Introduced new solution to the Windows open handle issue. The solution makes
   the USB virtual/PNP COM port's behavior similar to that of a physical COM port
   when device is reset or disconnected.

3) The driver is re-designed to be reentrant, which may allow multiple device
   connections on Windows XP over a single USB hub. Please note, multiple connections
   on Windows 2000 or through multiple USB hubs on Windows XP may cause system
   crash unless the devices completely remove their USB serial number string
   from the USB descriptor.
 
4) Vitually eliminated use of global cancel spin lock. This not only boosts the
   performance of the whole system but also makes the current driver much faster
   from one USB transfer to another, thus makes short packet handling more efficient. 

5) The driver is designed to be running safe with Intel Hyper-Threading processor
   and multi-processor systems with Windows XP, and multi-processor systems with
   Windows 2000.

6) Added true resident mode to the driver. Users can configure the driver to be a
   true resident driver instead of a PNP driver at run-time via registry settings.
   This feature itend to provide the ultimate solution to all the issues caused by
   device reset/disconnection. Under the true-resident mode, the driver will maintain
   its virtual(PNP) COM port(s) at all times and thus try to make the virtual(PNP)
   COM port behave as same as a traditional/physical COM port when the device is
   disconnected or reset. For details, please refer to section 9.4.2 in Qualcomm
   document 80-V4609-1 Rev J. By default, the driver operates under PNP mode.

----------------------------------------------------------------------

3. What's New in This Release

1) Added power management support for the HS-USB composite device.(2.0.4.1)

2) Added support for internal PID 9003.(2.0.4.1)

3) Corrected implementation for IRP_MN_CANCEL_REMOVE_DEVICE.(2.0.4.1)

4) Fixed the bug (race condition) during cancellation of write IRPs.(2.0.4.1)

5) Made changes so that the INT pipe is not polled when the port is not in use.
   (2.0.4.1)

6) Changes were made so that the IOCTL_QCUSB_SYSTEM/DEVICE_POWER can be processed
   at DISPATCH level. (2.0.4.2)

7) Added support of byte padding for hi-speed USB to workaround a hardware bug.
   (2.0.4.2)

8) Made some fixed for Windows logo test. (2.0.4.2)

9) Made changes so that the host driver would wake up device from selective
   suspension during device removal. This prevents Windows from crashing when
   a logical device is uninstalled. (2.0.4.3)

10) Made changes so that power management and selective suspension are always
    enabled by default for HS-USB device. (2.0.4.3)

11) Fixed the bug which could cause system to hang when device was disconnected
    or driver was uninstalled with USB selective suspension enabled. (2.0.4.4)

12) Fixed the bug which could cause BSOD when the file object in the CREATE IRP
    was accessed at DISPATCH_LEVEL. (2.0.4.4)

13) Changes were made so that the PnP sound may be suppressed. (2.0.4.4)

14) Changes were made so that the reference count is correctly applied to the
    device stack to avoid BSOD when device is disconencted during busy IO
    operations. (2.0.4.4)

15) Added more sanity checking for USB descriptors. (2.0.4.4)

16) Fixed the bug which would incorrectly acquire the device removal lock and
    prevent driver from being unloaded. (2.0.4.4)

17) Added support for bearer rates in the modem INF files. (2.0.4.4)

18) Fixed the bug which would prevent driver from being unloaded when the device
    is disabled or uninstalled. (2.0.4.5)

19) Added validation of USB device descriptor. (2.0.4.5)

20) Added the code to wake up the device outside the write thread to avoid
    possible write failure after the driver enables USB selective suspension.
    (2.0.4.5)

21) Added support for PID 9004 and PID 9005. (2.0.4.6)

22) Added support for more baudrates in INF files. (2.0.4.7)

23) Fixed the bug which would cause an application such as SecureCRT to get
    stuck when USB selective suspension is enabled. (2.0.4.8)

24) Fixed the bug which would prevent the driver from enabling the USB
    selective suspension after processing IOCTL_SERIAL_SET_HANDFLOW. (2.0.4.8)

25) Disabled selective suspension by default. (2.0.4.9)

26) Fixed the bug which could prevent read thread from being cancelled.
    (2.0.4.9)

27) Associated a generic name to USB PID 3100. (2.0.5.0)

28) Made USB init code multi-processor safe to avoid system crash.(2.0.5.0)

29) Removed remote wakeup configuration from the user interface and made
    remote wakeup dependable on USB selective suspension.(2.0.5.0)

30) Changes were made so that USB selective suspension and remote wakeup
    are disabled when system powers down.(2.0.5.0)

----------------------------------------------------------------------

4. KNOWN ISSUES:

   It's been observed that the Qualcomm USB driver could trigger bugs in older
   versions of McAfee mini-firewall driver mvstd5x.sys. McAfee has suggested
   that users obtain McAfee VirusScan patch 14 or later patches for bug fixes.

   Compilation flag QCSER_TARGET_XP should NOT be defined with this version due to
   unsolved issues with XP-specific function calls.

   Rarely, when the modem connection is up but the device is reset or disconnected/
   re-connected, modem application may not be able to talk to modem port. A workaround
   is to perform a second reset or re-connection of the device. It's also recommended
   that users obtain Mirosoft hotfix Q822112 to reduce the possibility of this problem.
   This problem is fixed in Windows XP SP2.

----------------------------------------------------------------------

5. BUILD INFORMATION:

   The following compilation flags are defined for customers to build the driver
   to debug various issues related to host and device, they are not recommended
   for other purposes.
      ENABLE_LOGGING
      QCSER_ENABLE_LOG_REC
      QCSER_DBGPRINT
      QCSER_DBGPRINT2
      QCSER_TARGET_XP

   IMPORTANT!!! To achieve best security and performance, all of the above features
   should be turned off for commercial distributions. The free build binaries are
   recommended for commercial distributions.

----------------------------------------------------------------------
Copyright (c) 2003-2008 QUALCOMM Incorporated
All rights reserved.
