- (void) memcpy((void*) (phys_to_virt(ACCESS_LE(tmptd->cbp))), td->buffer, td->actlen);
-
- tmptd->flags &= ACCESS_LE(~OHCI_TD_DIRECTION_PID_MASK);
- switch(td->pid) {
- case USB_PID_SETUP:
- printf("pid_setup\n");
- tmptd->flags |= ACCESS_LE(OHCI_TD_DIRECTION_PID_SETUP);
- tmptd->flags |= ACCESS_LE(OHCI_TD_TOGGLE_0);
- tmptd->flags |= ACCESS_LE(OHCI_TD_BUFFER_ROUNDING);
- break;
- case USB_PID_OUT:
- printf("pid_out\n");
- tmptd->flags |= ACCESS_LE(OHCI_TD_DIRECTION_PID_OUT);
- tmptd->flags |= ACCESS_LE(OHCI_TD_BUFFER_ROUNDING);
-
- /*
- * TODO: just temporary solution!
- * there can be also regular PID_OUT pakets
- */
- tmptd->flags |= ACCESS_LE(OHCI_TD_TOGGLE_1);
- break;
- case USB_PID_IN:
- printf("pid_in\n");
- tmptd->flags |= ACCESS_LE(OHCI_TD_DIRECTION_PID_IN);
- tmptd->flags |= ACCESS_LE(OHCI_TD_BUFFER_ROUNDING);
- /*
- * let the endpoint do the togglestuff!
- * TODO: just temporary solution!
- * there can be also inregular PID_IN pakets (@Status Stage)
- */
- tmptd->flags |= ACCESS_LE(OHCI_TD_TOGGLE_CARRY);
-#if 0
- /* should be done by HC!
- * first pid_in start with DATA0 */
- */
- dummyconfig.headp = ACCESS_LE( td->togl ?
- ACCESS_LE(dummyconfig.headp) | OHCI_ENDPOINT_TOGGLE_CARRY :
- ACCESS_LE(dummyconfig.headp) & ~OHCI_ENDPOINT_TOGGLE_CARRY);
-#endif
- break;
- }
- tmptd->flags |= ACCESS_LE(OHCI_TD_SET_DELAY_INTERRUPT(7));