dm: usb: Pass EHCI controller pointer to ehci_get_port_speed()
authorSimon Glass <sjg@chromium.org>
Wed, 25 Mar 2015 18:22:18 +0000 (12:22 -0600)
committerSimon Glass <sjg@chromium.org>
Sat, 18 Apr 2015 17:11:23 +0000 (11:11 -0600)
Adjust this function so that it is passed an EHCI controller pointer so that
implementations can look up their controller.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Marek Vasut <marex@denx.de>
drivers/usb/host/ehci-faraday.c
drivers/usb/host/ehci-hcd.c
drivers/usb/host/ehci-tegra.c
drivers/usb/host/ehci.h

index 3b761bc326a2a44fc53169cd1853278ec00d0aad..e38681342ca08b84bfd28dcb14f9bad284c89be4 100644 (file)
@@ -101,11 +101,12 @@ void ehci_set_usbmode(int index)
  * This ehci_get_port_speed() overrides the weak function
  * in "ehci-hcd.c".
  */
-int ehci_get_port_speed(struct ehci_hcor *hcor, uint32_t reg)
+int ehci_get_port_speed(struct ehci_ctrl *ctrl, uint32_t reg)
 {
        int spd, ret = PORTSC_PSPD_HS;
-       union ehci_faraday_regs *regs = (void __iomem *)((ulong)hcor - 0x10);
+       union ehci_faraday_regs *regs;
 
+       ret = (void __iomem *)((ulong)ctrl->hcor - 0x10);
        if (ehci_is_fotg2xx(regs))
                spd = OTGCSR_SPD(readl(&regs->otg.otgcsr));
        else
index 9b7e7e78d72bd5e20aff22a2f35e89d09e652c13..cc71016b290b8eae9f247a2e4f3e317c550892fc 100644 (file)
@@ -119,7 +119,7 @@ static struct descriptor {
 #define ehci_is_TDI()  (0)
 #endif
 
-__weak int ehci_get_port_speed(struct ehci_hcor *hcor, uint32_t reg)
+__weak int ehci_get_port_speed(struct ehci_ctrl *ctrl, uint32_t reg)
 {
        return PORTSC_PSPD(reg);
 }
@@ -781,7 +781,7 @@ ehci_submit_root(struct usb_device *dev, unsigned long pipe, void *buffer,
                        tmpbuf[1] |= USB_PORT_STAT_POWER >> 8;
 
                if (ehci_is_TDI()) {
-                       switch (ehci_get_port_speed(ctrl->hcor, reg)) {
+                       switch (ehci_get_port_speed(ctrl, reg)) {
                        case PORTSC_PSPD_FS:
                                break;
                        case PORTSC_PSPD_LS:
index c6bfbe3999419faa68797ec980889b473234a77e..d3a9ab445e0fe99323d0fa2c34f9c3fe6587aebe 100644 (file)
@@ -225,13 +225,14 @@ void ehci_set_usbmode(int index)
  * This ehci_get_port_speed overrides the weak function ehci_get_port_speed
  * in "ehci-hcd.c".
  */
-int ehci_get_port_speed(struct ehci_hcor *hcor, uint32_t reg)
+int ehci_get_port_speed(struct ehci_ctrl *ctrl, uint32_t reg)
 {
        uint32_t tmp;
        uint32_t *reg_ptr;
 
        if (controller->has_hostpc) {
-               reg_ptr = (uint32_t *)((u8 *)&hcor->or_usbcmd + HOSTPC1_DEVLC);
+               reg_ptr = (uint32_t *)((u8 *)&ctrl->hcor->or_usbcmd +
+                               HOSTPC1_DEVLC);
                tmp = ehci_readl(reg_ptr);
                return HOSTPC1_PSPD(tmp);
        } else
index 3e5427abc606d208ff01fe466254b25af8c8166b..ec4d6b0abecd4292c7183815c9a3dbc8400c5b04 100644 (file)
@@ -251,7 +251,7 @@ struct ehci_ctrl {
 };
 
 /* Weak functions that drivers can override */
-int ehci_get_port_speed(struct ehci_hcor *hcor, uint32_t reg);
+int ehci_get_port_speed(struct ehci_ctrl *ctrl, uint32_t reg);
 void ehci_set_usbmode(int index);
 void ehci_powerup_fixup(uint32_t *status_reg, uint32_t *reg);
 uint32_t *ehci_get_portsc_register(struct ehci_hcor *hcor, int port);