Changeset 61bb85d in mainline


Ignore:
Timestamp:
2011-02-09T10:25:01Z (13 years ago)
Author:
Jan Vesely <jano.vesely@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
2964aa87
Parents:
3cc5ccda
Message:

Fix: interrupt calls should use interrupt trackers
Fix: interrupt tracker should always set next step (it is NULL during te first call)

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

Legend:

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

    r3cc5ccda r61bb85d  
    113113        if (!tracker)
    114114                return ENOMEM;
    115         tracker_control_read_data_old(tracker);
     115        tracker_interrupt_out(tracker);
    116116        return EOK;
    117117}
     
    121121    usbhc_iface_transfer_in_callback_t callback, void *arg)
    122122{
    123         size_t max_packet_size = 8;
     123        size_t max_packet_size = 4;
    124124        dev_speed_t speed = FULL_SPEED;
    125125
     
    128128        if (!tracker)
    129129                return ENOMEM;
    130         tracker_control_read_data_old(tracker);
     130        tracker_interrupt_in(tracker);
    131131        return EOK;
    132132}
  • uspace/drv/uhci-hcd/tracker.c

    r3cc5ccda r61bb85d  
    286286        }
    287287
     288        assert(instance->packet_size <= instance->max_packet_size);
    288289        if (instance->packet_size) {
    289290                /* we are data in, we want data from our device. if there is data */
     
    309310                /* that's all, end coomunication */
    310311                instance->next_step = tracker_call_in_and_dispose;
     312        } else {
     313                instance->next_step = tracker_interrupt_in;
    311314        }
    312315}
     
    323326        }
    324327
    325         /* we are data out, we down't want data from our device */
     328        /* we are data out, we don't want data from our device */
    326329        instance->buffer_offset += instance->packet_size;
    327330
     
    343346                /* that's all, end coomunication */
    344347                instance->next_step = tracker_call_out_and_dispose;
     348        } else {
     349                instance->next_step = tracker_interrupt_out;
    345350        }
    346351}
     
    356361                memcpy(instance->buffer + instance->buffer_offset, instance->packet,
    357362                    instance->packet_size);
    358         }
    359         instance->buffer_offset += instance->packet_size;
     363                instance->buffer_offset += instance->packet_size;
     364        }
    360365        usb_log_debug("Callback IN(%d): %d, %zu.\n", instance->transfer_type,
    361366            err, instance->buffer_offset);
Note: See TracChangeset for help on using the changeset viewer.