[coreboot-gerrit] New patch to review for coreboot: b1b8b32 libpayload: EHCI: Fix transaction error for interrupt transfer

Patrick Georgi (pgeorgi@google.com) gerrit at coreboot.org
Wed Mar 18 13:10:33 CET 2015


Patrick Georgi (pgeorgi at google.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/8747

-gerrit

commit b1b8b329b262e3efbd508448ac4e24fe24112f0f
Author: Jim Lin <jilin at nvidia.com>
Date:   Mon Dec 8 19:30:04 2014 +0800

    libpayload: EHCI: Fix transaction error for interrupt transfer
    
    Data toggle should be running like 0, 1, 0, 1, ...
    In the failed case (where a low-speed USB keyboard or km232 device
    is installed), data toggle will be running as 0, 1, 0, 1, ..., 1, 1.
    Therefore causing Halted or Transaction Error bit to be set in qTD
    Status field.
    
    BUG=None
    BRANCH=None
    TEST=Tested on nyan_kitty platform, firmware-kitty-5771.61.B branch.
    Attached USB keyboard or km232 device to root-hub port (same side as
    SD card slot).
    Made sure no transaction error after doing interrupt transfer.
    
    Change-Id: I576f3c583dae4c279a6e0e8ffdfce5abe463277d
    Signed-off-by: Patrick Georgi <pgeorgi at chromium.org>
    Original-Commit-Id: 64b0428aaab869e20f6720669e953acf82ecb846
    Original-Change-Id: Ic2c0f95cff2ae6e314967b0b82231a962255f1a7
    Original-Signed-off-by: Jim Lin <jilin at nvidia.com>
    Original-Reviewed-on: https://chromium-review.googlesource.com/233857
    Original-Reviewed-by: Julius Werner <jwerner at chromium.org>
---
 payloads/libpayload/drivers/usb/ehci.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/payloads/libpayload/drivers/usb/ehci.c b/payloads/libpayload/drivers/usb/ehci.c
index c9ababd..0e12217 100644
--- a/payloads/libpayload/drivers/usb/ehci.c
+++ b/payloads/libpayload/drivers/usb/ehci.c
@@ -666,7 +666,7 @@ static void *ehci_create_intr_queue(
 
 	/* create spare qTD */
 	intrq->spare = (intr_qtd_t *)dma_memalign(64, sizeof(intr_qtd_t));
-	fill_intr_queue_td(intrq, intrq->spare, data);
+	intrq->spare->data = data;
 
 	/* initialize QH */
 	const int endp = ep->endpoint & 0xf;



More information about the coreboot-gerrit mailing list