Changes in / [e583fd4:0146d41] in mainline
- Location:
- uspace
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/ohci/batch.c
re583fd4 r0146d41 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;168 163 break; 169 164 } … … 174 169 assert(hcd_ep); 175 170 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));181 171 182 172 return true; -
uspace/drv/ohci/hcd_endpoint.c
re583fd4 r0146d41 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 53 37 hcd_endpoint_t * hcd_endpoint_assign(endpoint_t *ep) 54 38 { … … 73 57 ed_init(hcd_ep->ed, ep); 74 58 ed_set_td(hcd_ep->ed, hcd_ep->td); 75 endpoint_set_hc_data(ep, hcd_ep, hcd_ep_toggle_get, hcd_ep_toggle_set);59 endpoint_set_hc_data(ep, hcd_ep, NULL, NULL); 76 60 77 61 return hcd_ep; -
uspace/drv/ohci/hw_struct/endpoint_descriptor.h
re583fd4 r0146d41 73 73 #define ED_TDHEAD_ZERO_SHIFT (2) 74 74 #define ED_TDHEAD_TOGGLE_CARRY (0x2) 75 #define ED_TDHEAD_HALTED_FLAG (0x1)76 75 77 76 volatile uint32_t next; … … 107 106 instance->next = pa; 108 107 } 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 }128 108 #endif 129 109 /** -
uspace/lib/usb/src/host/endpoint.c
re583fd4 r0146d41 123 123 if (instance->address == target.address && 124 124 (instance->endpoint == target.endpoint || target.endpoint == 0)) 125 endpoint_toggle_set(instance, 0);125 instance->toggle = 0; 126 126 } 127 127 /**
Note:
See TracChangeset
for help on using the changeset viewer.