summaryrefslogtreecommitdiffstats
path: root/payloads/libpayload/drivers/usb/uhci.c
diff options
context:
space:
mode:
authorStefan Reinauer <stepan@coresystems.de>2009-04-30 16:46:12 +0000
committerStefan Reinauer <stepan@openbios.org>2009-04-30 16:46:12 +0000
commitd233f363c129dae2ba5fd7ac536cf92fb4c2dd6e (patch)
tree60d3123a957d313d583783a42cfda4b0621dce85 /payloads/libpayload/drivers/usb/uhci.c
parentb5fb0c5c4eda2329d848aedcf4f7e8b6dc8012b2 (diff)
downloadcoreboot-d233f363c129dae2ba5fd7ac536cf92fb4c2dd6e.tar.gz
coreboot-d233f363c129dae2ba5fd7ac536cf92fb4c2dd6e.tar.bz2
coreboot-d233f363c129dae2ba5fd7ac536cf92fb4c2dd6e.zip
Some driver fixes for libpayload:
- fix minor bug in serial driver. - latest USB stack fixes - fix dead store in options.c Signed-off-by: Stefan Reinauer <stepan@coresystems.de> Acked-by: Patrick Georgi <patrick.georgi@coresystems.de> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@4239 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
Diffstat (limited to 'payloads/libpayload/drivers/usb/uhci.c')
-rw-r--r--payloads/libpayload/drivers/usb/uhci.c19
1 files changed, 18 insertions, 1 deletions
diff --git a/payloads/libpayload/drivers/usb/uhci.c b/payloads/libpayload/drivers/usb/uhci.c
index 34a6ec80d388..612fc7f199a4 100644
--- a/payloads/libpayload/drivers/usb/uhci.c
+++ b/payloads/libpayload/drivers/usb/uhci.c
@@ -63,7 +63,23 @@ uhci_dump (hci_t *controller)
static void
td_dump (td_t *td)
{
- printf ("%x packet (at %lx) to %x.%x failed\n", td->pid,
+ char td_value[3];
+ char *td_type;
+ switch (td->pid) {
+ case SETUP:
+ td_type="SETUP";
+ break;
+ case IN:
+ td_type="IN";
+ break;
+ case OUT:
+ td_type="OUT";
+ break;
+ default:
+ sprintf(td_value, "%x", td->pid);
+ td_type=td_value;
+ }
+ printf ("%s packet (at %lx) to %x.%x failed\n", td_type,
virt_to_phys (td), td->dev_addr, td->endp);
printf ("td (counter at %x) returns: ", td->counter);
printf (" bitstuff err: %x, ", td->status_bitstuff_err);
@@ -493,6 +509,7 @@ uhci_create_intr_queue (endpoint_t *ep, int reqsize, int reqcount, int reqtiming
qh_t *qh = memalign(16, sizeof(qh_t));
qh->elementlinkptr.ptr = virt_to_phys(tds);
+ qh->elementlinkptr.queue_head = 0;
qh->elementlinkptr.terminate = 0;
intr_q *q = malloc(sizeof(intr_q));