From 41c10cd2d73198e61573af1341d5826654f1133a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ky=C3=B6sti=20M=C3=A4lkki?= Date: Tue, 9 Jul 2013 04:19:22 +0300 Subject: usbdebug: Move EHCI BAR relocation code MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit There are other uses for EHCI debug port besides console, so move EHCI relocation code from console to lib. Change-Id: I95cddd31be529351d9ec68f14782cc3cbe08c617 Signed-off-by: Kyösti Mälkki Reviewed-on: http://review.coreboot.org/3626 Tested-by: build bot (Jenkins) Reviewed-by: Aaron Durbin Reviewed-by: Paul Menzel --- src/console/usbdebug_console.c | 59 ------------------------------------------ 1 file changed, 59 deletions(-) (limited to 'src/console') diff --git a/src/console/usbdebug_console.c b/src/console/usbdebug_console.c index 7b5dcc05c7..8df6417e60 100644 --- a/src/console/usbdebug_console.c +++ b/src/console/usbdebug_console.c @@ -21,65 +21,6 @@ #include #include #include -#include -#include - -static struct device_operations *ehci_drv_ops; -static struct device_operations ehci_dbg_ops; - -static void usbdebug_re_enable(unsigned ehci_base) -{ - struct ehci_debug_info *dbg_info = dbgp_ehci_info(); - unsigned diff; - - if (!dbg_info->ehci_debug) - return; - - diff = (unsigned)dbg_info->ehci_caps - ehci_base; - dbg_info->ehci_regs -= diff; - dbg_info->ehci_debug -= diff; - dbg_info->ehci_caps = (void*)ehci_base; - dbg_info->status |= DBGP_EP_ENABLED; -} - -static void usbdebug_disable(void) -{ - struct ehci_debug_info *dbg_info = dbgp_ehci_info(); - dbg_info->status &= ~DBGP_EP_ENABLED; -} - -static void pci_ehci_set_resources(struct device *dev) -{ - struct resource *res; - - printk(BIOS_DEBUG, "%s EHCI Debug Port hook triggered\n", dev_path(dev)); - usbdebug_disable(); - - if (ehci_drv_ops->set_resources) - ehci_drv_ops->set_resources(dev); - res = find_resource(dev, EHCI_BAR_INDEX); - if (!res) - return; - - usbdebug_re_enable((u32)res->base); - report_resource_stored(dev, res, ""); - printk(BIOS_DEBUG, "%s EHCI Debug Port relocated\n", dev_path(dev)); -} - -void pci_ehci_read_resources(struct device *dev) -{ - if (!ehci_drv_ops) { - memcpy(&ehci_dbg_ops, dev->ops, sizeof(ehci_dbg_ops)); - ehci_drv_ops = dev->ops; - ehci_dbg_ops.set_resources = pci_ehci_set_resources; - dev->ops = &ehci_dbg_ops; - printk(BIOS_DEBUG, "%s EHCI BAR hook registered\n", dev_path(dev)); - } else { - printk(BIOS_DEBUG, "More than one caller of %s from %s\n", __func__, dev_path(dev)); - } - - pci_dev_read_resources(dev); -} static void dbgp_init(void) { -- cgit v1.2.3