Changes in uspace/drv/uhci-hcd/iface.c [881c47b:f241b05b] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/uhci-hcd/iface.c
r881c47b rf241b05b 106 106 usbhc_iface_transfer_out_callback_t callback, void *arg) 107 107 { 108 assert(dev); 109 uhci_t *hc = dev_to_uhci(dev); 110 assert(hc); 111 return uhci_transfer(hc, dev, target, USB_TRANSFER_INTERRUPT, 0, USB_PID_OUT, 112 false, data, size, callback, NULL, arg); 108 size_t max_packet_size = 8; 109 dev_speed_t speed = FULL_SPEED; 110 111 tracker_t *tracker = tracker_get(dev, target, USB_TRANSFER_INTERRUPT, 112 max_packet_size, speed, data, size, NULL, callback, arg); 113 if (!tracker) 114 return ENOMEM; 115 tracker_control_read_data_old(tracker); 116 return EOK; 113 117 } 114 118 /*----------------------------------------------------------------------------*/ … … 117 121 usbhc_iface_transfer_in_callback_t callback, void *arg) 118 122 { 119 assert(dev); 120 uhci_t *hc = dev_to_uhci(dev); 121 assert(hc); 122 return uhci_transfer(hc, dev, target, USB_TRANSFER_INTERRUPT, 0, USB_PID_IN, 123 false, data, size, NULL, callback, arg); 123 size_t max_packet_size = 8; 124 dev_speed_t speed = FULL_SPEED; 125 126 tracker_t *tracker = tracker_get(dev, target, USB_TRANSFER_INTERRUPT, 127 max_packet_size, speed, data, size, callback, NULL, arg); 128 if (!tracker) 129 return ENOMEM; 130 tracker_control_read_data_old(tracker); 131 return EOK; 132 } 133 /*----------------------------------------------------------------------------*/ 134 static int control_write(device_t *dev, usb_target_t target, 135 void *setup_data, size_t setup_size, void *data, size_t size, 136 usbhc_iface_transfer_out_callback_t callback, void *arg) 137 { 138 size_t max_packet_size = size; 139 dev_speed_t speed = FULL_SPEED; 140 141 tracker_t *tracker = tracker_get(dev, target, USB_TRANSFER_CONTROL, 142 max_packet_size, speed, data, size, NULL, callback, arg); 143 if (!tracker) 144 return ENOMEM; 145 tracker_control_write(tracker, setup_data, setup_size); 146 return EOK; 147 } 148 /*----------------------------------------------------------------------------*/ 149 static int control_read(device_t *dev, usb_target_t target, 150 void *setup_data, size_t setup_size, void *data, size_t size, 151 usbhc_iface_transfer_in_callback_t callback, void *arg) 152 { 153 size_t max_packet_size = size; 154 dev_speed_t speed = FULL_SPEED; 155 156 tracker_t *tracker = tracker_get(dev, target, USB_TRANSFER_CONTROL, 157 max_packet_size, speed, data, size, callback, NULL, arg); 158 if (!tracker) 159 return ENOMEM; 160 tracker_control_read(tracker, setup_data, setup_size); 161 return EOK; 124 162 } 125 163 /*----------------------------------------------------------------------------*/ … … 128 166 usbhc_iface_transfer_out_callback_t callback, void *arg) 129 167 { 130 assert(dev); 131 uhci_t *hc = dev_to_uhci(dev); 132 assert(hc); 133 return uhci_transfer(hc, dev, target, USB_TRANSFER_CONTROL, 0, USB_PID_SETUP, 134 false, data, size, callback, NULL, arg); 168 tracker_t *tracker = tracker_get(dev, target, USB_TRANSFER_CONTROL, 169 8, FULL_SPEED, data, size, NULL, callback, arg); 170 if (!tracker) 171 return ENOMEM; 172 tracker_control_setup_old(tracker); 173 return EOK; 135 174 } 136 175 /*----------------------------------------------------------------------------*/ … … 139 178 usbhc_iface_transfer_out_callback_t callback, void *arg) 140 179 { 141 assert(dev); 142 uhci_t *hc = dev_to_uhci(dev); 143 assert(hc); 144 return uhci_transfer(hc, dev, target, USB_TRANSFER_CONTROL, 1, USB_PID_OUT, 145 false, data, size, callback, NULL, arg); 180 tracker_t *tracker = tracker_get(dev, target, USB_TRANSFER_CONTROL, 181 size, FULL_SPEED, data, size, NULL, callback, arg); 182 if (!tracker) 183 return ENOMEM; 184 tracker_control_write_data_old(tracker); 185 return EOK; 146 186 } 147 187 /*----------------------------------------------------------------------------*/ … … 149 189 usbhc_iface_transfer_in_callback_t callback, void *arg) 150 190 { 151 assert(dev); 152 uhci_t *hc = dev_to_uhci(dev); 153 assert(hc); 154 return uhci_transfer(hc, dev, target, USB_TRANSFER_CONTROL, 0, USB_PID_IN, 155 false, NULL, 0, NULL, callback, arg); 191 tracker_t *tracker = tracker_get(dev, target, USB_TRANSFER_CONTROL, 192 0, FULL_SPEED, NULL, 0, callback, NULL, arg); 193 if (!tracker) 194 return ENOMEM; 195 tracker_control_write_status_old(tracker); 196 return EOK; 156 197 } 157 198 /*----------------------------------------------------------------------------*/ … … 160 201 usbhc_iface_transfer_out_callback_t callback, void *arg) 161 202 { 162 assert(dev); 163 uhci_t *hc = dev_to_uhci(dev); 164 assert(hc); 165 return uhci_transfer(hc, dev, target, USB_TRANSFER_CONTROL, 0, USB_PID_SETUP, 166 false, data, size, callback, NULL, arg); 203 tracker_t *tracker = tracker_get(dev, target, USB_TRANSFER_CONTROL, 204 8, FULL_SPEED, data, size, NULL, callback, arg); 205 if (!tracker) 206 return ENOMEM; 207 tracker_control_setup_old(tracker); 208 return EOK; 167 209 } 168 210 /*----------------------------------------------------------------------------*/ … … 171 213 usbhc_iface_transfer_in_callback_t callback, void *arg) 172 214 { 173 assert(dev); 174 uhci_t *hc = dev_to_uhci(dev); 175 assert(hc); 176 return uhci_transfer(hc, dev, target, USB_TRANSFER_CONTROL, 1, USB_PID_IN, 177 false, data, size, NULL, callback, arg); 215 tracker_t *tracker = tracker_get(dev, target, USB_TRANSFER_CONTROL, 216 size, FULL_SPEED, data, size, callback, NULL, arg); 217 if (!tracker) 218 return ENOMEM; 219 tracker_control_read_data_old(tracker); 220 return EOK; 178 221 } 179 222 /*----------------------------------------------------------------------------*/ … … 181 224 usbhc_iface_transfer_out_callback_t callback, void *arg) 182 225 { 183 assert(dev);184 uhci_t *hc = dev_to_uhci(dev);185 assert(hc);186 return uhci_transfer(hc, dev, target, USB_TRANSFER_CONTROL, 0, USB_PID_OUT,187 false, NULL, 0, callback, NULL, arg);188 } 189 190 226 tracker_t *tracker = tracker_get(dev, target, USB_TRANSFER_CONTROL, 227 0, FULL_SPEED, NULL, 0, NULL, callback, arg); 228 if (!tracker) 229 return ENOMEM; 230 tracker_control_read_status_old(tracker); 231 return EOK; 232 } 233 /*----------------------------------------------------------------------------*/ 191 234 usbhc_iface_t uhci_iface = { 192 235 .tell_address = get_address, … … 200 243 .interrupt_out = interrupt_out, 201 244 .interrupt_in = interrupt_in, 245 246 .control_read = control_read, 247 .control_write = control_write, 202 248 203 249 .control_write_setup = control_write_setup,
Note:
See TracChangeset
for help on using the changeset viewer.