Changeset fe10e72 in mainline


Ignore:
Timestamp:
2011-02-07T14:42:15Z (13 years ago)
Author:
Jan Vesely <jano.vesely@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
a72620d
Parents:
3f189c5
Message:

Fixes(only for new API trackers): add support for toggle bit

Location:
uspace/drv/uhci-hcd
Files:
5 edited

Legend:

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

    r3f189c5 rfe10e72  
    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
    108111        tracker_t *tracker = tracker_get(dev, target, USB_TRANSFER_INTERRUPT,
    109             size, FULL_SPEED, data, size, NULL, callback, arg);
     112            max_packet_size, speed, data, size, NULL, callback, arg);
    110113        if (!tracker)
    111114                return ENOMEM;
     
    118121    usbhc_iface_transfer_in_callback_t callback, void *arg)
    119122{
     123        size_t max_packet_size = 8;
     124        dev_speed_t speed = FULL_SPEED;
     125
    120126        tracker_t *tracker = tracker_get(dev, target, USB_TRANSFER_INTERRUPT,
    121             size, FULL_SPEED, data, size, callback, NULL, arg);
     127            max_packet_size, speed, data, size, callback, NULL, arg);
    122128        if (!tracker)
    123129                return ENOMEM;
  • uspace/drv/uhci-hcd/tracker.c

    r3f189c5 rfe10e72  
    117117
    118118        transfer_descriptor_init(instance->td, DEFAULT_ERROR_COUNT,
    119             SETUP_PACKET_DATA_SIZE, false, instance->target, USB_PID_SETUP,
    120             instance->packet);
     119            SETUP_PACKET_DATA_SIZE, instance->toggle++, false, instance->target,
     120            USB_PID_SETUP, instance->packet);
    121121
    122122        instance->buffer_offset += SETUP_PACKET_DATA_SIZE;
     
    135135
    136136        transfer_descriptor_init(instance->td, DEFAULT_ERROR_COUNT,
    137             SETUP_PACKET_DATA_SIZE, false, instance->target, USB_PID_SETUP,
    138             instance->packet);
     137            SETUP_PACKET_DATA_SIZE, instance->toggle++, false, instance->target,
     138            USB_PID_SETUP, instance->packet);
    139139
    140140        instance->buffer_offset += SETUP_PACKET_DATA_SIZE;
     
    164164            instance->buffer_size - instance->buffer_offset);
    165165
    166         //TODO: add toggle here
    167         transfer_descriptor_init(instance->td, DEFAULT_ERROR_COUNT,
    168             instance->packet_size, false, instance->target, USB_PID_IN,
    169             instance->packet);
     166        transfer_descriptor_init(instance->td, DEFAULT_ERROR_COUNT,
     167            instance->packet_size, instance->toggle++, false, instance->target,
     168            USB_PID_IN, instance->packet);
    170169
    171170        tracker_schedule(instance);
     
    199198            instance->packet_size);
    200199
    201         // TODO: add toggle here
    202         transfer_descriptor_init(instance->td, DEFAULT_ERROR_COUNT,
    203             instance->packet_size, false, instance->target, USB_PID_OUT,
    204             instance->packet);
     200        transfer_descriptor_init(instance->td, DEFAULT_ERROR_COUNT,
     201            instance->packet_size, instance->toggle++, false, instance->target,
     202            USB_PID_OUT, instance->packet);
    205203
    206204        tracker_schedule(instance);
     
    234232        instance->packet_size = 0;
    235233        transfer_descriptor_init(instance->td, DEFAULT_ERROR_COUNT,
    236             0, false, instance->target, USB_PID_OUT, NULL);
     234            0, 1, false, instance->target, USB_PID_OUT, NULL);
    237235
    238236        tracker_schedule(instance);
     
    262260        instance->packet_size = 0;
    263261        transfer_descriptor_init(instance->td, DEFAULT_ERROR_COUNT,
    264             0, false, instance->target, USB_PID_OUT, NULL);
     262            0, 1, false, instance->target, USB_PID_OUT, NULL);
    265263
    266264        tracker_schedule(instance);
     
    292290                        instance->buffer_size - instance->buffer_offset);
    293291
    294         //TODO: add toggle here
    295         transfer_descriptor_init(instance->td, DEFAULT_ERROR_COUNT,
    296             instance->packet_size, false, instance->target, USB_PID_IN,
    297             instance->packet);
     292        transfer_descriptor_init(instance->td, DEFAULT_ERROR_COUNT,
     293            instance->packet_size, instance->toggle++, false, instance->target,
     294            USB_PID_IN, instance->packet);
    298295
    299296        tracker_schedule(instance);
     
    327324            instance->packet_size);
    328325
    329         // TODO: add toggle here
    330         transfer_descriptor_init(instance->td, DEFAULT_ERROR_COUNT,
    331             instance->packet_size, false, instance->target, USB_PID_OUT,
    332             instance->packet);
     326        transfer_descriptor_init(instance->td, DEFAULT_ERROR_COUNT,
     327            instance->packet_size, instance->toggle++, false, instance->target,
     328            USB_PID_OUT, instance->packet);
    333329
    334330        tracker_schedule(instance);
     
    408404
    409405        transfer_descriptor_init(instance->td, DEFAULT_ERROR_COUNT,
    410             SETUP_PACKET_DATA_SIZE, false, instance->target, USB_PID_SETUP,
     406            SETUP_PACKET_DATA_SIZE, 0, false, instance->target, USB_PID_SETUP,
    411407            instance->packet);
    412408
     
    426422
    427423        transfer_descriptor_init(instance->td, DEFAULT_ERROR_COUNT,
    428             instance->packet_size, false, instance->target, USB_PID_OUT,
     424            instance->packet_size, 1, false, instance->target, USB_PID_OUT,
    429425            instance->packet);
    430426        instance->next_step = tracker_call_out_and_dispose;
     
    441437
    442438        transfer_descriptor_init(instance->td, DEFAULT_ERROR_COUNT,
    443             instance->packet_size, false, instance->target, USB_PID_IN,
     439            instance->packet_size, 1, false, instance->target, USB_PID_IN,
    444440            instance->packet);
    445441
     
    460456
    461457        transfer_descriptor_init(instance->td, DEFAULT_ERROR_COUNT,
    462             instance->packet_size, false, instance->target, USB_PID_IN,
     458            instance->packet_size, 1, false, instance->target, USB_PID_IN,
    463459            instance->packet);
    464460
     
    477473
    478474        transfer_descriptor_init(instance->td, DEFAULT_ERROR_COUNT,
    479             instance->packet_size, false, instance->target, USB_PID_OUT,
     475            instance->packet_size, 1, false, instance->target, USB_PID_OUT,
    480476            instance->packet);
    481477
  • uspace/drv/uhci-hcd/uhci.c

    r3f189c5 rfe10e72  
    188188                        assert(current == &tracker->link);
    189189                        if (!transfer_descriptor_is_active(tracker->td)) {
    190                                 usb_log_debug("Found inactive tracker with status: %x.\n",
     190                                usb_log_info("Found inactive tracker with status: %x.\n",
    191191                                    tracker->td->status);
    192192                                list_remove(current);
  • uspace/drv/uhci-hcd/uhci_struct/transfer_descriptor.c

    r3f189c5 rfe10e72  
    3939
    4040void transfer_descriptor_init(transfer_descriptor_t *instance,
    41   int error_count, size_t size, bool isochronous, usb_target_t target,
    42         int pid, void *buffer)
     41    int error_count, size_t size, bool toggle, bool isochronous,
     42    usb_target_t target, int pid, void *buffer)
    4343{
    4444        assert(instance);
     
    104104                return USB_OUTCOME_CRCERROR;
    105105
    106         assert((((status >> TD_STATUS_ERROR_POS) & TD_STATUS_ERROR_MASK)
    107         | TD_STATUS_ERROR_RESERVED) == TD_STATUS_ERROR_RESERVED);
     106//      assert((((status >> TD_STATUS_ERROR_POS) & TD_STATUS_ERROR_MASK)
     107//      | TD_STATUS_ERROR_RESERVED) == TD_STATUS_ERROR_RESERVED);
    108108        return USB_OUTCOME_OK;
    109109}
  • uspace/drv/uhci-hcd/uhci_struct/transfer_descriptor.h

    r3f189c5 rfe10e72  
    9292
    9393void transfer_descriptor_init(transfer_descriptor_t *instance,
    94   int error_count, size_t size, bool isochronous, usb_target_t target,
    95         int pid, void *buffer);
    96 
     94    int error_count, size_t size, bool toggle, bool isochronous,
     95    usb_target_t target, int pid, void *buffer);
    9796
    9897int transfer_descriptor_status(transfer_descriptor_t *instance);
Note: See TracChangeset for help on using the changeset viewer.