Changeset df6ded8 in mainline for uspace/drv/bus/usb/ehci/ehci_rh.h


Ignore:
Timestamp:
2018-02-28T16:37:50Z (6 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
1b20da0
Parents:
f5e5f73 (diff), b2dca8de (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
git-author:
Jakub Jermar <jakub@…> (2018-02-28 16:06:42)
git-committer:
Jakub Jermar <jakub@…> (2018-02-28 16:37:50)
Message:

Merge github.com:helenos-xhci-team/helenos

This commit merges support for USB 3 and generally refactors, fixes,
extends and cleans up the existing USB framework.

Notable additions and features:

  • new host controller driver has been implemented to control various xHC models (among others, NEC Renesas uPD720200)
  • isochronous data transfer mode
  • support for explicit USB device removal
  • USB tablet driver
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/drv/bus/usb/ehci/ehci_rh.h

    rf5e5f73 rdf6ded8  
    11/*
    22 * Copyright (c) 2013 Jan Vesely
     3 * Copyright (c) 2018 Ondrej Hlavaty
    34 * All rights reserved.
    45 *
     
    6162                uint8_t rempow[STATUS_BYTES(EHCI_MAX_PORTS) * 2];
    6263        } __attribute__((packed)) hub_descriptor;
    63         /** interrupt transfer waiting for an actual interrupt to occur */
    64         usb_transfer_batch_t *unfinished_interrupt_transfer;
    6564        bool reset_flag[EHCI_MAX_PORTS];
    6665        bool resume_flag[EHCI_MAX_PORTS];
     66
     67        /* HC guard */
     68        fibril_mutex_t *guard;
     69
     70        /*
     71         * This is sort of hacky, but better than duplicating functionality.
     72         * We cannot simply store a pointer to a transfer in-progress, in order
     73         * to allow it to be aborted. We can however store a reference to the
     74         * Status Change Endpoint. Note that this is mixing two worlds together
     75         * - otherwise, the RH is "a device" and have no clue about HC, apart
     76         * from accessing its registers.
     77         */
     78        endpoint_t *status_change_endpoint;
     79
    6780} ehci_rh_t;
    6881
    69 errno_t ehci_rh_init(ehci_rh_t *instance, ehci_caps_regs_t *caps, ehci_regs_t *regs,
    70     const char *name);
     82errno_t ehci_rh_init(ehci_rh_t *instance, ehci_caps_regs_t *caps,
     83    ehci_regs_t *regs, fibril_mutex_t *guard, const char *name);
    7184errno_t ehci_rh_schedule(ehci_rh_t *instance, usb_transfer_batch_t *batch);
    7285errno_t ehci_rh_interrupt(ehci_rh_t *instance);
Note: See TracChangeset for help on using the changeset viewer.