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