Changes in uspace/drv/uhci-hcd/hc.h [ea993d18:6ce42e85] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/uhci-hcd/hc.h
rea993d18 r6ce42e85 48 48 #include "transfer_list.h" 49 49 50 /** UHCI I/O registers layout */51 50 typedef struct uhci_regs { 52 /** Command register, controls HC behaviour */53 51 uint16_t usbcmd; 54 52 #define UHCI_CMD_MAX_PACKET (1 << 7) … … 61 59 #define UHCI_CMD_RUN_STOP (1 << 0) 62 60 63 /** Status register, 1 means interrupt is asserted (if enabled) */64 61 uint16_t usbsts; 65 62 #define UHCI_STATUS_HALTED (1 << 5) … … 70 67 #define UHCI_STATUS_INTERRUPT (1 << 0) 71 68 72 /** Interrupt enabled registers */73 69 uint16_t usbintr; 74 70 #define UHCI_INTR_SHORT_PACKET (1 << 3) … … 77 73 #define UHCI_INTR_CRC (1 << 0) 78 74 79 /** Register stores frame number used in SOF packet */80 75 uint16_t frnum; 81 82 /** Pointer(physical) to the Frame List */83 76 uint32_t flbaseadd; 84 85 /** SOF modification to match external timers */86 77 uint8_t sofmod; 87 78 } regs_t; … … 92 83 #define UHCI_ALLOWED_HW_FAIL 5 93 84 94 /* Main HC driver structure */95 85 typedef struct hc { 96 /** USB bus driver, devices and addresses */97 86 usb_device_keeper_t manager; 98 /** USB bus driver, endpoints */99 87 usb_endpoint_manager_t ep_manager; 100 88 101 /** Addresses of I/O registers */102 89 regs_t *registers; 103 90 104 /** Frame List contains 1024 link pointers */105 91 link_pointer_t *frame_list; 106 92 107 /** List and queue of interrupt transfers */ 93 transfer_list_t transfers_bulk_full; 94 transfer_list_t transfers_control_full; 95 transfer_list_t transfers_control_slow; 108 96 transfer_list_t transfers_interrupt; 109 /** List and queue of low speed control transfers */110 transfer_list_t transfers_control_slow;111 /** List and queue of full speed bulk transfers */112 transfer_list_t transfers_bulk_full;113 /** List and queue of full speed control transfers */114 transfer_list_t transfers_control_full;115 97 116 /** Pointer table to the above lists, helps during scheduling */117 98 transfer_list_t *transfers[2][4]; 118 99 119 /** Code to be executed in kernel interrupt handler */120 100 irq_code_t interrupt_code; 121 101 122 /** Fibril periodically checking status register*/ 123 fid_t interrupt_emulator; 102 fid_t cleaner; 103 fid_t debug_checker; 104 bool hw_interrupts; 105 unsigned hw_failures; 124 106 125 /** Indicator of hw interrupts availability */ 126 bool hw_interrupts; 127 128 /** Number of hw failures detected. */ 129 unsigned hw_failures; 107 ddf_fun_t *ddf_instance; 130 108 } hc_t; 131 109
Note:
See TracChangeset
for help on using the changeset viewer.