Changeset 3ae93a8 in mainline


Ignore:
Timestamp:
2011-02-20T12:51:53Z (14 years ago)
Author:
Vojtech Horky <vojtechhorky@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
357a302
Parents:
540e2d2
Message:

Add USB multi interface device driver

Incomplete implementation of a pseudo-bus driver that spawns children
devices for each interface in multi interface device.

WARNING: does not work as the child device does not learn its USB address.

Files:
7 added
5 edited

Legend:

Unmodified
Added
Removed
  • .bzrignore

    r540e2d2 r3ae93a8  
    8888./uspace/drv/usbhub/usbhub
    8989./uspace/drv/usbhid/usbhid
     90./uspace/drv/usbmid/usbmid
    9091./uspace/drv/vhc/vhc
    9192./uspace/srv/bd/ata_bd/ata_bd
  • boot/arch/amd64/Makefile.inc

    r540e2d2 r3ae93a8  
    4747        usbhub \
    4848        usbhid \
     49        usbmid \
    4950        vhc
    5051
  • uspace/Makefile

    r540e2d2 r3ae93a8  
    121121                drv/usbhid \
    122122                drv/usbhub \
     123                drv/usbmid \
    123124                drv/vhc
    124125endif
     
    136137                drv/usbhid \
    137138                drv/usbhub \
     139                drv/usbmid \
    138140                drv/vhc
    139141endif
  • uspace/doc/doxygroups.h

    r540e2d2 r3ae93a8  
    220220
    221221        /**
     222         * @defgroup drvusbmid USB multi interface device driver
     223         * @ingroup usb
     224         * @brief USB multi interface device driver
     225         * @details
     226         * This driver serves as a mini hub (or bus) driver for devices
     227         * that have the class defined at interface level (those devices
     228         * usually have several interfaces).
     229         *
     230         * The term multi interface device driver (MID) was borrowed
     231         * Solaris operating system.
     232         */
     233
     234        /**
    222235         * @defgroup drvusbhub USB hub driver
    223236         * @ingroup usb
  • uspace/lib/usb/src/recognise.c

    r540e2d2 r3ae93a8  
    231231        /*
    232232         * If the device class points to interface we skip adding
    233          * class directly.
     233         * class directly but we add a multi interface device.
    234234         */
    235235        if (device_descriptor->device_class != USB_CLASS_USE_INTERFACE) {
    236236                rc = usb_add_match_id(matches, 50, "usb&class=%s",
    237237                    usb_str_class(device_descriptor->device_class));
     238                if (rc != EOK) {
     239                        return rc;
     240                }
     241        } else {
     242                rc = usb_add_match_id(matches, 50, "usb&mid");
    238243                if (rc != EOK) {
    239244                        return rc;
Note: See TracChangeset for help on using the changeset viewer.