Changes in uspace/drv/bus/usb/ehci/hc.h [b7fd2a0:ae3a941] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/bus/usb/ehci/hc.h
rb7fd2a0 rae3a941 1 1 /* 2 2 * Copyright (c) 2011 Jan Vesely 3 * Copyright (c) 2018 Ondrej Hlavaty 3 4 * All rights reserved. 4 5 * … … 55 56 /** Main EHCI driver structure */ 56 57 typedef struct hc { 58 /* Common device header */ 59 hc_device_t base; 60 57 61 /** Memory mapped CAPS register area */ 58 62 ehci_caps_regs_t *caps; … … 60 64 ehci_regs_t *registers; 61 65 62 /** Iso transfer list */ 63 link_pointer_t *periodic_list_base; 66 /** Iso transfer list, backed by dma_buffer */ 67 link_pointer_t *periodic_list; 68 69 dma_buffer_t dma_buffer; 64 70 65 71 /** CONTROL and BULK schedules */ … … 70 76 71 77 /** List of active transfers */ 72 list_t pending_ batches;78 list_t pending_endpoints; 73 79 74 80 /** Guards schedule and endpoint manipulation */ … … 80 86 /** USB hub emulation structure */ 81 87 ehci_rh_t rh; 88 89 /** USB bookkeeping */ 90 ehci_bus_t bus; 82 91 } hc_t; 83 92 84 errno_t hc_init(hc_t *instance, const hw_res_list_parsed_t *hw_res, bool interrupts); 85 void hc_fini(hc_t *instance); 93 static inline hc_t *hcd_to_hc(hc_device_t *hcd) 94 { 95 assert(hcd); 96 return (hc_t *) hcd; 97 } 86 98 87 void hc_enqueue_endpoint(hc_t * instance, const endpoint_t *ep);88 void hc_dequeue_endpoint(hc_t * instance, const endpoint_t *ep);99 void hc_enqueue_endpoint(hc_t *, const endpoint_t *); 100 void hc_dequeue_endpoint(hc_t *, const endpoint_t *); 89 101 90 errno_t ehci_hc_gen_irq_code(irq_code_t *code, const hw_res_list_parsed_t *hw_res, int *irq); 102 /* Boottime operations */ 103 extern errno_t hc_add(hc_device_t *, const hw_res_list_parsed_t *); 104 extern errno_t hc_start(hc_device_t *); 105 extern errno_t hc_setup_roothub(hc_device_t *); 106 extern errno_t hc_gen_irq_code(irq_code_t *, hc_device_t *, 107 const hw_res_list_parsed_t *, int *); 108 extern errno_t hc_gone(hc_device_t *); 91 109 92 void ehci_hc_interrupt(hcd_t *hcd, uint32_t status); 93 errno_t ehci_hc_status(hcd_t *hcd, uint32_t *status); 94 errno_t ehci_hc_schedule(hcd_t *hcd, usb_transfer_batch_t *batch); 110 /** Runtime operations */ 111 extern void ehci_hc_interrupt(bus_t *, uint32_t); 112 extern errno_t ehci_hc_status(bus_t *, uint32_t *); 113 extern errno_t ehci_hc_schedule(usb_transfer_batch_t *); 114 95 115 #endif 96 116 /**
Note:
See TracChangeset
for help on using the changeset viewer.