Print this page
NEX-16600 "No SOF interrupts have been received" on HPE ProLiant DL380 Gen10, leading to non-working USB EHCI controller
Reviewed by: Evan Layton <evan.layton@nexenta.com>
Reviewed by: Roman Strashkin <roman.strashkin@nexenta.com>
Reviewed by: Rick McNeal <rick.mcneal@nexenta.com>

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/sys/usb/hcd/ehci/ehcid.h
          +++ new/usr/src/uts/common/sys/usb/hcd/ehci/ehcid.h
↓ open down ↓ 10 lines elided ↑ open up ↑
  11   11   * and limitations under the License.
  12   12   *
  13   13   * When distributing Covered Code, include this CDDL HEADER in each
  14   14   * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15   15   * If applicable, add the following below this CDDL HEADER, with the
  16   16   * fields enclosed by brackets "[]" replaced with your own identifying
  17   17   * information: Portions Copyright [yyyy] [name of copyright owner]
  18   18   *
  19   19   * CDDL HEADER END
  20   20   */
       21 +
  21   22  /*
  22   23   * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
  23   24   */
  24   25  
       26 +/*
       27 + * Copyright 2018 Nexenta Systems, Inc.
       28 + */
       29 +
  25   30  #ifndef _SYS_USB_EHCID_H
  26   31  #define _SYS_USB_EHCID_H
  27   32  
  28   33  
  29   34  #ifdef  __cplusplus
  30   35  extern "C" {
  31   36  #endif
  32   37  
  33   38  /*
  34   39   * Enchanced Host Controller Driver (EHCI)
↓ open down ↓ 89 lines elided ↑ open up ↑
 124  129          ddi_dma_cookie_t        ehci_qtd_pool_cookie;   /* DMA cookie */
 125  130          ddi_dma_handle_t        ehci_qtd_pool_dma_handle;       /* DMA hndle */
 126  131          ddi_acc_handle_t        ehci_qtd_pool_mem_handle;       /* Mem hndle */
 127  132  
 128  133          /* Isochronous transfer descriptor pool */
 129  134          ehci_itd_t              *ehci_itd_pool_addr;    /* Start of the pool */
 130  135          ddi_dma_cookie_t        ehci_itd_pool_cookie;   /* DMA cookie */
 131  136          ddi_dma_handle_t        ehci_itd_pool_dma_handle;       /* DMA hndle */
 132  137          ddi_acc_handle_t        ehci_itd_pool_mem_handle;       /* Mem hndle */
 133  138  
 134      -        /* Condition variable for advance on Asynchronous Schedule */
 135      -        kcondvar_t              ehci_async_schedule_advance_cv;
 136      -
 137  139          /* Head of Asynchronous Schedule List */
 138  140          ehci_qh_t               *ehci_head_of_async_sched_list;
 139  141  
 140  142          /*
 141  143           * List of QTD inserted either into Asynchronous or Periodic
 142  144           * Schedule lists.
 143  145           */
 144  146          ehci_qtd_t              *ehci_active_qtd_list;
 145  147          /*
 146  148           * List of ITD active itd list.
↓ open down ↓ 874 lines elided ↑ open up ↑
1021 1023   * The following are used in attach to   indicate
1022 1024   * what has been succesfully allocated, so detach
1023 1025   * can remove them.
1024 1026   */
1025 1027  #define EHCI_ATTACH             0x01    /* ehci driver initilization */
1026 1028  #define EHCI_ZALLOC             0x02    /* Memory for ehci state structure */
1027 1029  #define EHCI_INTR               0x04    /* Interrupt handler registered */
1028 1030  #define EHCI_USBAREG            0x08    /* USBA registered */
1029 1031  #define EHCI_RHREG              0x10    /* Root hub driver loaded */
1030 1032  
1031      -/*
1032      - * This variable is used in the EHCI_FLAGS to tell the ISR to broadcase
1033      - * the ehci_async_schedule_advance_cv when an intr occurs.  It is used to
1034      - * make sure that EHCI is receiving interrupts.
1035      - */
1036      -#define EHCI_CV_INTR            0x20    /* Ask INTR to broadcast cv */
1037      -
1038 1033  #define EHCI_UNIT(dev)  (getminor((dev)) & ~HUBD_IS_ROOT_HUB)
1039 1034  
1040 1035  /*
1041 1036   * Debug printing
1042 1037   * Masks
1043 1038   */
1044 1039  #define PRINT_MASK_ATTA         0x00000001      /* Attach time */
1045 1040  #define PRINT_MASK_LISTS        0x00000002      /* List management */
1046 1041  #define PRINT_MASK_ROOT_HUB     0x00000004      /* Root hub stuff */
1047 1042  #define PRINT_MASK_ALLOC        0x00000008      /* Alloc/dealloc descr */
↓ open down ↓ 163 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX