Drivers Stantum



Driver

Android / kernel / common / 857aab34f04ff86666aa80e751ee696eff0113dd /. / drivers / hid / hid-multitouch.c. Blob: ecd4d2db9e800ca2397c3ad189a028. Most of the requests that are sent to device drivers are packaged in I/O request packets (IRPs). Each device is represented by a device node, and each device node has a device stack. For more information, see Device nodes and device stacks. Stantum (www.stantum.com) has been the pioneering company in multi-touch technology since 2002, and in 2005 was the first company to market commercial products using a truly reliable multi-touch user interface. Today, Stantum's patented and breakthrough multi-touch technology portfolio is available under license of IP bricks and associated.

Drivers Statement Of On-duty Hours

Status-->Stantum

Most of the requests that are sent to device drivers are packaged in I/O request packets (IRPs). Each device is represented by a device node, and each device node has a device stack. For more information, see Device nodes and device stacks. To send a read, write, or control request to a device, the I/O manager locates the device node for the device and then sends an IRP to the device stack of that node. Sometimes more than one device stack is involved in processing an I/O request. Regardless of how many device stacks are involved, the overall sequence of drivers that participate in an I/O request is called the driver stack for the request. We also use the term driver stack to refer to the layered set of drivers for a particular technology.

I/O requests that are processed by several device stacks

In some cases, more than one device stack is involved in processing an IRP. The following diagram illustrates a case where four device stacks are involved in processing a single IRP.

Here is how the IRP is processed at each numbered stage in the diagram:

  1. The IRP is created by Disk.sys, which is the function driver in the device stack for the My USB Storage Device node. Disk.sys passes the IRP down the device stack to Usbstor.sys.

  2. Notice that Usbstor.sys is the PDO driver for the My USB Storage Device node and the FDO driver for the USB Mass Storage Device node. At this point, it is not important to decide whether the IRP is owned by the (PDO, Usbstor.sys) pair or the (FDO, Usbstor.sys) pair. The IRP is owned by the driver, Usbstor.sys, and the driver has access to both the PDO and the FDO.

  3. When Usbstor.sys has finished processing the IRP, it passes the IRP to Usbhub.sys. Usbhub.sys is the PDO driver for the USB Mass Storage Device node and the FDO driver for the USB Root Hub node. It is not important to decide whether the IRP is owned by the (PDO, Usbhub.sys) pair or the (FDO, Usbhub.sys) pair. The IRP is owned by the driver, Usbhub.sys, and the driver has access to both the PDO and the FDO.

  4. When Usbhub.sys has finished processing the IRP, it passes the IRP to the (Usbuhci.sys, Usbport.sys) pair.

    Usbuhci.sys is a miniport driver, and Usbport.sys is a port driver. The (miniport, port) pair plays the role of a single driver. In this case, both the miniport driver and the port driver are written by Microsoft. The (Usbuhci.sys, Usbport.sys) pair is the PDO driver for the USB Root Hub node, and the (Usbuhci.sys, Usbport.sys) pair is also the FDO driver for the USB Host Controller node. The (Usbuhci.sys, Usbport.sys) pair does the actual communication with the host controller hardware, which in turn communicates with the physical USB storage device.

Hours

The driver stack for an I/O request

Consider the sequence of four drivers that participated in the I/O request illustrated in the preceding diagram. We can get another view of the sequence by focusing on the drivers rather than on the device nodes and their individual device stacks. The following diagram shows the drivers in sequence from top to bottom. Notice that Disk.sys is associated with one device object, but each of the other three drivers is associated with two device objects.

The sequence of drivers that participate in an I/O request is called the driver stack for the I/O request. To illustrate a driver stack for an I/O request, we draw the drivers from top to bottom in the order that they participate in the request.

Notice that the driver stack for an I/O request is quite different from the device stack for a device node. Also notice that the driver stack for an I/O request does not necessarily remain in one branch of the device tree.

Technology driver stacks

Consider the driver stack for the I/O request shown in the preceding diagram. If we give each of the drivers a friendly name and make some slight changes to the diagram, we have a block diagram that is similar to many of those that appear in the Windows Driver Kit (WDK) documentation.

In the diagram, the driver stack is divided into three sections. We can think of each section as belonging to a particular technology or to a particular component or portion of the operating system. For example, we might say that the first section at the top of the driver stack belongs to the Volume Manager, the second section belongs to the storage component of the operating system, and the third section belongs to the core USB portion of the operating system.

Consider the drivers in the third section. These drivers are a subset of a larger set of core USB drivers that Microsoft provides for handling various kinds of USB requests and USB hardware. The following diagram shows what the entire USB core block diagram might look like.

Drivers

A block diagram that shows all of the drivers for a particular technology or a particular component or portion of the operating system is called a technology driver stack. Typically, technology driver stacks are given names like the USB Core Driver Stack, the Storage Stack, the 1394 Driver Stack, and the Audio Driver Stack.

Drivers Statement Of On-duty Hours New Hire

Note The USB core block diagram in this topic shows one of several possible ways to illustrate the technology driver stacks for USB 1.0 and 2.0. For the official diagrams of the USB 1.0, 2.0, and 3.0 driver stacks, see USB Driver Stack Architecture.

Related topics

Drivers Status Check

Rev.TimeAuthor
2cc6ab1android-2.6.382011-08-08 08:41:23 Kyle Evans

net: wireless: wl: set cryptography deps

3154f71android-x86-2.2-r22011-06-27 19:24:49 Benjamin Tissoires

hid-multitouch: Add device id for another DWAV/eGalax variant
Add the device id for a DWAV eGalax touchscreen, found
on the Dell Inspiron Duo.
edit hid-ids.h to match upstream kernel.
Signed-off-by: Gabriel M. Beddingfield <gabrbedd@gmail.com>
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>

95f1d672011-06-27 19:24:47 Benjamin Tissoires

hid-core: add 0eef:725e to hid_have_special_driver
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>

3dc114a2011-06-27 19:24:46 Benjamin Tissoires

HID: hid-multitouch: add support for a new Lumio dual-touch panel
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@enac.fr>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>

72442632011-06-27 19:24:44 Benjamin Tissoires

HID: hid-multitouch: correct VID for Stantum panels
while merging hid-stantum into hid-multitouch, I did not correctly copy/paste
the VIDs for those devices. This patch fixes it.
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@enac.fr>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>

83461d12011-06-19 02:13:22 Chih-Wei Huang

HID: hid-multitouch: add another product id for eGalax touchscreen

78a7c092011-06-19 02:12:04 Chih-Wei Huang

HID: don't use multi input quirk for TouchPack touchscreen
Seems we don't need it for android. This reverts commit c2c3489c.

31415df2011-06-13 10:37:09 Benjamin Tissoires

hid-multitouch: fix broken eGalax devices
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>

ea4411b2011-06-02 16:22:31 Benjamin Tissoires

HID: hid-multitouch: cosmetic changes, sort classes and devices
This patch sorts the defs for the MT_CLS. I choose to split
generic classes and device specific ones to be able to add
more generic classes in the future.
It also put eGalax devices at their right place (alphabetically)
in mt_devices.
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@enac.fr>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>

c1db7df2011-06-02 16:21:54 Benjamin Tissoires

HID: hid-multitouch: class MT_CLS_STANTUM is redundant with MT_CLS_CONFIDENCE
Stantum devices used to work with MT_CLS_STANTUM but MT_CLS_CONFIDENCE
is exactly the same. This patch switches them to this generic class,
and remove the unused MT_CLS_STANTUM.
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@enac.fr>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>

cecfb0e2011-06-02 16:21:41 Benjamin Tissoires

HID: hid-multitouch: add support for Unitec panels
This patch introduce support for Unitec panels.
This device has not been optimized in term of kernel processing
operations (default class), but it will work.
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@enac.fr>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>

8983aa72011-06-02 16:21:24 Benjamin Tissoires

HID: hid-multitouch: add support for Touch International panels
This patch introduce support for Touch International panels.
This device has not been optimized in term of kernel processing
operations (default class), but it will work.
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@enac.fr>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>

3ac3e2c2011-06-02 16:21:14 Benjamin Tissoires

HID: hid-multitouch: add support for GoodTouch panels
This patch introduce support for GoodTouch panels.
This device has not been optimized in term of kernel processing
operations (default class), but it will work.
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@enac.fr>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>

75d5e912011-06-02 16:21:02 Benjamin Tissoires

HID: hid-multitouch: add support for CVTouch panels
This patch introduce support for CVTouch panels.
This device has not been optimized in term of kernel processing
operations (default class), but it will work.
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@enac.fr>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>

7564dba2011-06-02 16:20:42 Benjamin Tissoires

HID: hid-multitouch: add support for ActionStar panels
This patch introduce support for ActionStar panels.
This device has not been optimized in term of kernel processing
operations (default class), but it will work.
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@enac.fr>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>

686d0792011-06-02 16:20:02 Benjamin Tissoires

HID: hid-multitouch: add support for Elo TouchSystems 2515 IntelliTouch Plus
This patch adds support for Elo TouchSystems 2515 IntelliTouch Plus
that can be found in Lenovo A700 all-in-one.
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@enac.fr>
Tested-by: Bastien Nocera <hadess@hadess.net>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>

56c5bd12011-06-02 16:19:49 Benjamin Tissoires

HID: hid-multitouch: Add support for Lumio panels
This patch enables support for Lumio optical devices.
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@enac.fr>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>

8c7858b2011-06-02 16:19:35 Benjamin Tissoires

HID: hid-multitouch: add support for Ilitek dual-touch panel
Added ILITEK hid dual touch panel support into hid-multitouch.
Signed-off-by: Austin Zhang <zhang.austin@gmail.com>
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@enac.fr>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>

d2757e62011-05-19 01:50:49 Gustavo F. Padovan

UBUNTU: SAUCE: Revert 'Bluetooth: Add new PID for Atheros 3011'
This reverts commit be93112accb42c5586a459683d71975cc70673ca.
Bug https://bugzilla.kernel.org/show_bug.cgi?id=27402 reported that some
devices are not working after this commit, so as I don't have the hardware
I'll revert it until a solution comes.
Conflicts:
drivers/bluetooth/ath3k.c
drivers/bluetooth/btusb.c
Signed-off-by: Gustavo F. Padovan <padovan@profusion.mobi>
BugLink: http://bugs.launchpad.net/bugs/720949
cherry-picked from git://git.kernel.org/pub/scm/linux/kernel/git/padovan/bluetooth-2.6.git
Signed-off-by: Herton Ronaldo Krzesinski <herton.krzesinski@canonical.com>
Signed-off-by: Tim Gardner <tim.gardner@canonical.com>

d5b44b12011-05-03 16:47:21 Chih-Wei Huang

x86: add driver for Lenovo ideapad S10-3T rotate button
Provided by Javier S. Pedro.

8e8d90a2011-04-29 11:39:47 Chih-Wei Huang

net: wireless: correct the dependeicnes of wl driver

616fce52011-04-24 21:09:52 Chih-Wei Huang

net: wireless: add Makefile for Broadcom 802.11a/b/g/n hybrid device driver
The actual driver source is not included. Will be downloaded from
Broadcom's website on making android-x86.

a7fe3aa2011-04-22 21:04:44 Benjamin Tissoires

HID: add support for PenMount dual-touch panel
This patch adds PenMount support to hid-multitouch.
A new class MT_CLS_CONFIDENCE is defined for PenMount,
since it uses HID_DG_CONFIDENCE as the valid flag.
The patch has an effect on MT_CLS_CONFIDENCE_MINUS_ONE
to keep it synchronized with the upstream kernel.
Signed-off-by: John Sung <penmount.touch@gmail.com>
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@enac.fr>
Acked-by: Henrik Rydberg <rydberg@euromail.se>

39382ef2011-04-22 21:04:22 Benjamin Tissoires

HID: hid-multitouch: refactor last_field_index
the current implementation requires the devices to report
HID_DG_CONTACTCOUNT to set the last_field_index value.
However, devices reporting in serial mode (DWAV and PenMount)
do not send this field.
Other devices (3M) add other fields in the reports descriptor
that are not multitouch related at the end, thus the need to
add a special case in the default case when handling events.
A first work around has been set up but with PenMount devices,
we have reached the limit.
The idea is to calculate the last_field_index by relying only on
multitouch fields the device send. This allows us to remove
the handling of non-multitouch events in hid-multitouch, and
guarantee that the function mt_emit_event is always called.
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@enac.fr>

10b222a2011-04-22 21:04:11 Benjamin Tissoires

HID: multitouch: remove unused files
while committing the migration to hid-multitouch from the other multitouch
drivers (3M, Cando, eGalax, and Stantum), I forgot to remove the files.
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>

aa2b6892011-04-22 21:03:44 Henrik Rydberg

HID: Do not create input devices for feature reports
commit f635bd11c8d332d917fb9a4cad3071b2357d5b2a upstream.
When the multi input quirk is set, there is a new input device
created for every feature report. Since the idea is to present
features per hid device, not per input device, revert back to
the original report loop and change the feature_mapping() callback
to not take the input device as argument.
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
Tested-by: Benjamin Tissoires <benjmain.tissoires@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

4a75c992011-04-20 19:05:40 Benjamin Tissoires

HID: hid-multitouch: merge hid-mosart into hid-multitouch
This patch include MosArt devices into hid-multitouch.
MosArt devices now support mt-protocol B.
We also need to introduce a new quirk for mosart devices to support
their contactID.
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@enac.fr>

34342ec2011-04-08 14:02:02 Chih-Wei Huang

android-x86: update android-x86_defconfig for 2.6.38

60ecbfe2011-04-06 12:16:53 Benjamin Tissoires

Convert hid-multitouch to android
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>

600e9582011-04-06 12:14:50 Benjamin Tissoires

HID: add autodetection of multitouch devices
As mentioned by http://www.microsoft.com/whdc/device/input/DigitizerDrvs_touch.mspx
multitouch devices are those that have the input report HID_CONTACTID.
This patch detects this and unload the generic-usb driver.
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@enac.fr>