From 2e33a65a8c115a46fdf6101ac57fd89602d1b264 Mon Sep 17 00:00:00 2001 From: Anton Kochkov Date: Wed, 20 Jun 2012 04:03:37 +0400 Subject: libpayload: reg_base reading for USB EHCI driver Added reading registers base address for USB EHCI driver in ehci_init() function. Change-Id: I59443ca9823588d70822b4f14486caf217a5ac26 Signed-off-by: Anton Kochkov Reviewed-on: http://review.coreboot.org/1106 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Georgi --- payloads/libpayload/drivers/usb/ehci.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'payloads') diff --git a/payloads/libpayload/drivers/usb/ehci.c b/payloads/libpayload/drivers/usb/ehci.c index 1094c78560..1cb1535978 100644 --- a/payloads/libpayload/drivers/usb/ehci.c +++ b/payloads/libpayload/drivers/usb/ehci.c @@ -623,13 +623,14 @@ ehci_init (pcidev_t addr) controller->destroy_intr_queue = ehci_destroy_intr_queue; controller->poll_intr_queue = ehci_poll_intr_queue; controller->bus_address = addr; + controller->reg_base = pci_read_config32 (controller->bus_address, USBBASE); for (i = 0; i < 128; i++) { controller->devices[i] = 0; } init_device_entry (controller, 0); - EHCI_INST(controller)->capabilities = phys_to_virt(pci_read_config32(addr, USBBASE)); - EHCI_INST(controller)->operation = (hc_op_t *)(phys_to_virt(pci_read_config32(addr, USBBASE)) + EHCI_INST(controller)->capabilities->caplength); + EHCI_INST(controller)->capabilities = phys_to_virt(controller->reg_base); + EHCI_INST(controller)->operation = (hc_op_t *)(phys_to_virt(controller->reg_base) + EHCI_INST(controller)->capabilities->caplength); /* default value for frame length adjust */ pci_write_config8(addr, FLADJ, FLADJ_framelength(60000)); -- cgit v1.2.3