Microsoft KB Archive/891896

= BUG: A USB mouse and USB touch device do not work correctly on a Geode GX1 platform that is based on Windows CE .NET 4.2 =

Article ID: 891896

Article Last Modified on 1/27/2005

-

APPLIES TO


 * Microsoft Windows CE .NET 4.2

-





SYMPTOMS
When you connect a universal serial bus (USB) mouse and a USB touch device to a Geode GX1 platform, the mouse and the touch device do not work. This symptom occurs when the Geode GX1 platform is based on Microsoft Windows CE .NET 4.2.



CAUSE
This problem may occur because of the physical arrangement of the mouse and the touch device connections to the Open Host Controller Interface (OHCI) ports. For example, the mouse may be connected to an upper OHCI port and the touch device may be connected to a lower OHCI port.

Note When the mouse and the touch pad are connected in the opposite manner, the devices work correctly.



RESOLUTION
To resolve this problem, follow these steps to modify the Windows CE OHCI driver code for your Geode GXI platform:  Open the following source file in your Windows CE development environment:

%WINCEROOT%\Public\COMMON\Oak\Drivers\Usb\Hcd\Ohcd2\Cpipe.cpp

  Locate the following code: // expected and if the last TD in the transfer is the short one. // We could assert here that this was an IN transfer. int iLast = m_transfer.numTDsComplete - 1; DEBUGCHK( iLast >= 0 ); P_TD pTD = iLast ? &m_transfer.vaTDList.td[iLast] : m_pDummyTd.td; if (pTD->paCurBuffer)   Modify the code segment that you located in step 2 as follows: // expected and if the last TD in the transfer is the short one. // We could assert here that this was an IN transfer. int iLast = m_transfer.numTDsComplete - 1; if ((m_usbEndpointDescriptor.bmAttributes & USB_ENDPOINT_TYPE_MASK)==USB_ENDPOINT_TYPE_CONTROL) iLast--; DEBUGCHK( iLast >= 0 ); P_TD pTD = iLast ? &m_transfer.vaTDList.td[iLast] : m_pDummyTd.td; if (pTD->paCurBuffer)  Save the source file, and then rebuild your platform.



WORKAROUND
To work around this problem, follow these steps to switch the OHCI connections of the mouse and touch device:
 * 1) Make a note of which OHCI ports are connected to the USB mouse and to the USB touch device.
 * 2) Remove the mouse and touch device from the OHCI ports.
 * 3) Connect the mouse to the OHCI port that the touch device was connected to in step 1.
 * 4) Connect the touch device to the OHCI port that the mouse was connected to in step 1.
 * 5) Try to use the mouse and the touch device.

<div class="status_section">

STATUS
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the &quot;Applies to&quot; section.

<div class="moreinformation_section">

The third-party products that this article discusses are manufactured by companies that are independent of Microsoft. Microsoft makes no warranty, implied or otherwise, regarding the performance or reliability of these products.

Keywords: kbtshoot kbbug kbpending KB891896

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.