X-Git-Url: http://wien.tomnetworks.com/gitweb/?p=ppcskel.git;a=blobdiff_plain;f=usb%2Fhost%2Fohci.c;h=77a21b97e8ff0217085d77a167891791d6482cb2;hp=840a27e0b0fa844b0570e36a71aaa147ad40245a;hb=40f764f46350385eebeafbf69215a6cf87670028;hpb=0247dd5b7560b28fd290296b1ceb68a7b2d390ab diff --git a/usb/host/ohci.c b/usb/host/ohci.c index 840a27e..77a21b9 100644 --- a/usb/host/ohci.c +++ b/usb/host/ohci.c @@ -221,16 +221,28 @@ u8 hcdi_enqueue(usb_transfer_descriptor *td) { 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); - /* let the endpoint do the togglestuff! */ + 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! @@ -242,7 +254,7 @@ u8 hcdi_enqueue(usb_transfer_descriptor *td) { #endif break; } - tmptd->flags |= ACCESS_LE(OHCI_TD_SET_DELAY_INTERRUPT(7) | OHCI_TD_BUFFER_ROUNDING); + tmptd->flags |= ACCESS_LE(OHCI_TD_SET_DELAY_INTERRUPT(7)); printf("tmptd hexdump (before) 0x%08X:\n", tmptd); hexdump(tmptd, sizeof(struct general_td));