Changeset e4d7363 in mainline for uspace/drv/bus/usb/ohci
- Timestamp:
- 2017-06-22T21:34:39Z (9 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 91ca111
- Parents:
- cb89430
- Location:
- uspace/drv/bus/usb/ohci
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/bus/usb/ohci/hc.c
rcb89430 re4d7363 89 89 }; 90 90 91 static void hc_gain_control(hc_t *instance);92 static void hc_start(hc_t *instance);93 91 static int hc_init_transfer_lists(hc_t *instance); 94 92 static int hc_init_memory(hc_t *instance); … … 103 101 * @return Error code. 104 102 */ 105 int ohci_hc_gen_irq_code(irq_code_t *code, const hw_res_list_parsed_t *hw_res)103 int ohci_hc_gen_irq_code(irq_code_t *code, hcd_t *hcd, const hw_res_list_parsed_t *hw_res) 106 104 { 107 105 assert(code); … … 151 149 * @return Error code 152 150 */ 153 int hc_init(hc_t *instance, const hw_res_list_parsed_t *hw_res , bool interrupts)151 int hc_init(hc_t *instance, const hw_res_list_parsed_t *hw_res) 154 152 { 155 153 assert(instance); … … 172 170 list_initialize(&instance->pending_batches); 173 171 fibril_mutex_initialize(&instance->guard); 174 instance->hw_interrupts = interrupts;175 172 176 173 ret = hc_init_memory(instance); … … 181 178 return ret; 182 179 } 183 184 hc_gain_control(instance);185 186 ohci_rh_init(&instance->rh, instance->registers, "ohci rh");187 hc_start(instance);188 180 189 181 return EOK; … … 443 435 void hc_start(hc_t *instance) 444 436 { 437 ohci_rh_init(&instance->rh, instance->registers, "ohci rh"); 438 445 439 /* OHCI guide page 42 */ 446 440 assert(instance); -
uspace/drv/bus/usb/ohci/hc.h
rcb89430 re4d7363 80 80 } hc_t; 81 81 82 extern int hc_init(hc_t *, const hw_res_list_parsed_t *, bool); 82 extern int hc_init(hc_t *, const hw_res_list_parsed_t *); 83 extern void hc_gain_control(hc_t *instance); 84 extern void hc_start(hc_t *instance); 83 85 extern void hc_fini(hc_t *); 84 86 … … 86 88 extern void hc_dequeue_endpoint(hc_t *, const endpoint_t *); 87 89 88 int ohci_hc_gen_irq_code(irq_code_t *code, const hw_res_list_parsed_t *hw_res);90 int ohci_hc_gen_irq_code(irq_code_t *code, hcd_t *hcd, const hw_res_list_parsed_t *hw_res); 89 91 90 92 extern void ohci_hc_interrupt(hcd_t *, uint32_t); -
uspace/drv/bus/usb/ohci/main.c
rcb89430 re4d7363 47 47 48 48 #define NAME "ohci" 49 static int ohci_driver_init(hcd_t *, const hw_res_list_parsed_t *, bool); 49 static int ohci_driver_init(hcd_t *, const hw_res_list_parsed_t *); 50 static int ohci_driver_start(hcd_t *, bool); 51 static int ohci_driver_claim(hcd_t *, ddf_dev_t *); 50 52 static void ohci_driver_fini(hcd_t *); 51 53 … … 54 56 .irq_code_gen = ohci_hc_gen_irq_code, 55 57 .init = ohci_driver_init, 58 .claim = ohci_driver_claim, 59 .start = ohci_driver_start, 56 60 .fini = ohci_driver_fini, 57 61 .name = "OHCI", … … 66 70 67 71 68 static int ohci_driver_init(hcd_t *hcd, const hw_res_list_parsed_t *res , bool irq)72 static int ohci_driver_init(hcd_t *hcd, const hw_res_list_parsed_t *res) 69 73 { 70 74 assert(hcd); … … 75 79 return ENOMEM; 76 80 77 const int ret = hc_init(instance, res , irq);81 const int ret = hc_init(instance, res); 78 82 if (ret == EOK) { 79 83 hcd_set_implementation(hcd, instance, &ohci_hc_driver.ops); … … 82 86 } 83 87 return ret; 88 } 89 90 static int ohci_driver_claim(hcd_t *hcd, ddf_dev_t *dev) 91 { 92 hc_t *hc = hcd_get_driver_data(hcd); 93 assert(hc); 94 95 hc_gain_control(hc); 96 97 return EOK; 98 } 99 100 static int ohci_driver_start(hcd_t *hcd, bool interrupts) 101 { 102 hc_t *hc = hcd_get_driver_data(hcd); 103 assert(hc); 104 105 hc->hw_interrupts = interrupts; 106 hc_start(hc); 107 return EOK; 84 108 } 85 109
Note:
See TracChangeset
for help on using the changeset viewer.
