Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/drv/uhci-hcd/iface.c

    rf241b05b r881c47b  
    106106    usbhc_iface_transfer_out_callback_t callback, void *arg)
    107107{
    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;
     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);
    117113}
    118114/*----------------------------------------------------------------------------*/
     
    121117    usbhc_iface_transfer_in_callback_t callback, void *arg)
    122118{
    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;
     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);
    162124}
    163125/*----------------------------------------------------------------------------*/
     
    166128    usbhc_iface_transfer_out_callback_t callback, void *arg)
    167129{
    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;
     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);
    174135}
    175136/*----------------------------------------------------------------------------*/
     
    178139    usbhc_iface_transfer_out_callback_t callback, void *arg)
    179140{
    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;
     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);
    186146}
    187147/*----------------------------------------------------------------------------*/
     
    189149    usbhc_iface_transfer_in_callback_t callback, void *arg)
    190150{
    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;
     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);
    197156}
    198157/*----------------------------------------------------------------------------*/
     
    201160    usbhc_iface_transfer_out_callback_t callback, void *arg)
    202161{
    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;
     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);
    209167}
    210168/*----------------------------------------------------------------------------*/
     
    213171    usbhc_iface_transfer_in_callback_t callback, void *arg)
    214172{
    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;
     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);
    221178}
    222179/*----------------------------------------------------------------------------*/
     
    224181    usbhc_iface_transfer_out_callback_t callback, void *arg)
    225182{
    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 /*----------------------------------------------------------------------------*/
     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
    234191usbhc_iface_t uhci_iface = {
    235192        .tell_address = get_address,
     
    243200        .interrupt_out = interrupt_out,
    244201        .interrupt_in = interrupt_in,
    245 
    246         .control_read = control_read,
    247         .control_write = control_write,
    248202
    249203        .control_write_setup = control_write_setup,
Note: See TracChangeset for help on using the changeset viewer.