From: Patrick Georgi Date: Fri, 21 Oct 2011 13:45:09 +0000 (+0200) Subject: libpayload: fix bulk transfers on OHCI controllers X-Git-Url: http://wien.tomnetworks.com/gitweb/?p=coreboot.git;a=commitdiff_plain;h=eb7a900f63752517ba6e6378215cdc34bcd1c0dc libpayload: fix bulk transfers on OHCI controllers Time for the brown paper bag: OHCI controllers are not happy when told to send data, but with obviously wrong addresses. It helps to write the addresses into the data structures. Change-Id: Ic0967dc8939e64af119cfb89400a045a2c077171 Signed-off-by: Patrick Georgi Reviewed-on: http://review.coreboot.org/306 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer --- diff --git a/payloads/libpayload/drivers/usb/ohci.c b/payloads/libpayload/drivers/usb/ohci.c index 94c19454c..290f7822a 100644 --- a/payloads/libpayload/drivers/usb/ohci.c +++ b/payloads/libpayload/drivers/usb/ohci.c @@ -384,6 +384,7 @@ ohci_bulk (endpoint_t *ep, int dalen, u8 *data, int finalize) cur->delay_interrupt = 7; cur->condition_code = 0xf; cur->direction = (ep->direction==IN)?OHCI_IN:OHCI_OUT; + cur->current_buffer_pointer = virt_to_phys(data); pages--; if (dalen == 0) { /* magic TD for empty packet transfer */