summaryrefslogtreecommitdiff
path: root/payloads/libpayload/drivers/usb/xhci.c
diff options
context:
space:
mode:
authorNico Huber <nico.huber@secunet.com>2012-11-12 16:20:32 +0100
committerRonald G. Minnich <rminnich@gmail.com>2012-11-14 17:45:16 +0100
commit6e711c6a97a9d4122615018121d0d2a37b642ed1 (patch)
tree745114ff1c6b485f4194818203edea3714cf56ce /payloads/libpayload/drivers/usb/xhci.c
parentaaa212d17d0070850f1dd2195129788acc978a9f (diff)
downloadcoreboot-6e711c6a97a9d4122615018121d0d2a37b642ed1.tar.xz
libpayload: Add init() function to hci_t and rework uhci_reset()
uhci_reset() differs in semantics compared to the other HCI's reset() implementations. uhci_reset() does some initialization work after a controller reset. So move the initialization part to a new function, uhci_reinit(), which get's exported through a new entry in hci_t: hci_t.init(). Warning: This breaks code that relies on the current, special, counterintuitive behaviour of uhci_reset(). If one wants a working host controller after calling hci_t.reset(), he should call hci_t.init() afterwards. Change-Id: Ia7ce80865d12d11157645ce251f77f349f8e3c34 Signed-off-by: Nico Huber <nico.huber@secunet.com> Reviewed-on: http://review.coreboot.org/1851 Tested-by: build bot (Jenkins) Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
Diffstat (limited to 'payloads/libpayload/drivers/usb/xhci.c')
-rw-r--r--payloads/libpayload/drivers/usb/xhci.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/payloads/libpayload/drivers/usb/xhci.c b/payloads/libpayload/drivers/usb/xhci.c
index d5ee134041..2a8bcb448e 100644
--- a/payloads/libpayload/drivers/usb/xhci.c
+++ b/payloads/libpayload/drivers/usb/xhci.c
@@ -49,6 +49,11 @@ xhci_reset (hci_t *controller)
{
}
+static void
+xhci_reinit (hci_t *controller)
+{
+}
+
hci_t *
xhci_init (pcidev_t addr)
{
@@ -68,6 +73,7 @@ xhci_init (pcidev_t addr)
controller->start = xhci_start;
controller->stop = xhci_stop;
controller->reset = xhci_reset;
+ controller->init = xhci_reinit;
controller->shutdown = xhci_shutdown;
controller->bulk = xhci_bulk;
controller->control = xhci_control;