Changeset 8fb3981 in mainline
- Timestamp:
- 2011-04-15T13:20:51Z (13 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 27b85d9
- Parents:
- 12b8e03 (diff), d7f08b0d (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - Files:
-
- 8 added
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
.bzrignore
r12b8e03 r8fb3981 94 94 ./uspace/drv/usbhid/usbhid 95 95 ./uspace/drv/usbkbd/usbkbd 96 ./uspace/drv/usbmast/usbmast 96 97 ./uspace/drv/usbmid/usbmid 97 98 ./uspace/drv/usbmouse/usbmouse -
boot/arch/amd64/Makefile.inc
r12b8e03 r8fb3981 51 51 usbkbd \ 52 52 usbhid \ 53 usbmast \ 53 54 usbmid \ 54 55 usbmouse \ -
uspace/Makefile
r12b8e03 r8fb3981 125 125 drv/usbhid \ 126 126 drv/usbhub \ 127 drv/usbmast \ 127 128 drv/usbmid \ 128 129 drv/usbmouse \ … … 146 147 drv/usbhid \ 147 148 drv/usbhub \ 149 drv/usbmast \ 148 150 drv/usbmid \ 149 151 drv/usbmouse \ -
uspace/doc/doxygroups.h
r12b8e03 r8fb3981 251 251 252 252 /** 253 * @defgroup drvusbmast USB mass storage driver 254 * @ingroup usb 255 * @brief USB driver for mass storage devices (bulk-only protocol). 256 * This driver is a only a stub and is currently used only for 257 * testing that bulk transfers work. 258 */ 259 260 /** 253 261 * @defgroup drvusbuhci UHCI driver 254 262 * @ingroup usb -
uspace/drv/ohci/batch.c
r12b8e03 r8fb3981 161 161 usb_log_debug("Batch(%p) found error TD(%d):%x.\n", 162 162 instance, i, data->tds[i]->status); 163 /* Make sure TD queue is empty (one TD), 164 * ED should be marked as halted */ 165 data->ed->td_tail = 166 (data->ed->td_head & ED_TDTAIL_PTR_MASK); 167 ++i; 163 168 break; 164 169 } … … 169 174 assert(hcd_ep); 170 175 hcd_ep->td = data->tds[i]; 176 /* Clear possible ED HALT */ 177 data->ed->td_head &= ~ED_TDHEAD_HALTED_FLAG; 178 uint32_t pa = addr_to_phys(hcd_ep->td); 179 assert(pa == (data->ed->td_head & ED_TDHEAD_PTR_MASK)); 180 assert(pa == (data->ed->td_tail & ED_TDTAIL_PTR_MASK)); 171 181 172 182 return true; -
uspace/drv/ohci/hcd_endpoint.c
r12b8e03 r8fb3981 35 35 #include "hcd_endpoint.h" 36 36 37 static void hcd_ep_toggle_set(void *hcd_ep, int toggle) 38 { 39 hcd_endpoint_t *instance = hcd_ep; 40 assert(instance); 41 assert(instance->ed); 42 ed_toggle_set(instance->ed, toggle); 43 } 44 static int hcd_ep_toggle_get(void *hcd_ep) 45 { 46 hcd_endpoint_t *instance = hcd_ep; 47 assert(instance); 48 assert(instance->ed); 49 return ed_toggle_get(instance->ed); 50 } 51 52 37 53 hcd_endpoint_t * hcd_endpoint_assign(endpoint_t *ep) 38 54 { … … 57 73 ed_init(hcd_ep->ed, ep); 58 74 ed_set_td(hcd_ep->ed, hcd_ep->td); 59 endpoint_set_hc_data(ep, hcd_ep, NULL, NULL);75 endpoint_set_hc_data(ep, hcd_ep, hcd_ep_toggle_get, hcd_ep_toggle_set); 60 76 61 77 return hcd_ep; -
uspace/drv/ohci/hw_struct/endpoint_descriptor.h
r12b8e03 r8fb3981 73 73 #define ED_TDHEAD_ZERO_SHIFT (2) 74 74 #define ED_TDHEAD_TOGGLE_CARRY (0x2) 75 #define ED_TDHEAD_HALTED_FLAG (0x1) 75 76 76 77 volatile uint32_t next; … … 106 107 instance->next = pa; 107 108 } 109 110 static inline int ed_toggle_get(ed_t *instance) 111 { 112 assert(instance); 113 return (instance->td_head & ED_TDHEAD_TOGGLE_CARRY) ? 1 : 0; 114 } 115 116 static inline void ed_toggle_set(ed_t *instance, int toggle) 117 { 118 assert(instance); 119 assert(toggle == 0 || toggle == 1); 120 if (toggle == 1) { 121 instance->td_head |= ED_TDHEAD_TOGGLE_CARRY; 122 } else { 123 /* clear halted flag when reseting toggle */ 124 instance->td_head &= ~ED_TDHEAD_TOGGLE_CARRY; 125 instance->td_head &= ~ED_TDHEAD_HALTED_FLAG; 126 } 127 } 108 128 #endif 109 129 /** -
uspace/lib/usb/src/host/endpoint.c
r12b8e03 r8fb3981 123 123 if (instance->address == target.address && 124 124 (instance->endpoint == target.endpoint || target.endpoint == 0)) 125 instance->toggle = 0;125 endpoint_toggle_set(instance, 0); 126 126 } 127 127 /**
Note:
See TracChangeset
for help on using the changeset viewer.