Revision 007fd62f hw/usb.c

b/hw/usb.c
82 82
    request = (s->setup_buf[0] << 8) | s->setup_buf[1];
83 83
    value   = (s->setup_buf[3] << 8) | s->setup_buf[2];
84 84
    index   = (s->setup_buf[5] << 8) | s->setup_buf[4];
85
 
85

  
86 86
    if (s->setup_buf[0] & USB_DIR_IN) {
87
        ret = s->info->handle_control(s, request, value, index, 
87
        ret = s->info->handle_control(s, p, request, value, index,
88 88
                                      s->setup_len, s->data_buf);
89 89
        if (ret < 0)
90 90
            return ret;
......
123 123
    switch(s->setup_state) {
124 124
    case SETUP_STATE_ACK:
125 125
        if (!(s->setup_buf[0] & USB_DIR_IN)) {
126
            s->setup_state = SETUP_STATE_IDLE;
127
            ret = s->info->handle_control(s, request, value, index,
126
            ret = s->info->handle_control(s, p, request, value, index,
128 127
                                          s->setup_len, s->data_buf);
128
            if (ret == USB_RET_ASYNC) {
129
                return USB_RET_ASYNC;
130
            }
131
            s->setup_state = SETUP_STATE_IDLE;
129 132
            if (ret > 0)
130 133
                return 0;
131 134
            return ret;

Also available in: Unified diff