linux-mips
[Top] [All Lists]

Re: [PATCH v3] EHCI bus glue for on-chip PMC MSP USB controller.

To: Anoop P.A <anoop.pa@gmail.com>
Subject: Re: [PATCH v3] EHCI bus glue for on-chip PMC MSP USB controller.
From: Matthieu CASTET <matthieu.castet@parrot.com>
Date: Wed, 9 Feb 2011 16:10:54 +0100
Cc: "gregkh@suse.de" <gregkh@suse.de>, "dbrownell@users.sourceforge.net" <dbrownell@users.sourceforge.net>, "ust@denx.de" <ust@denx.de>, "pkondeti@codeaurora.org" <pkondeti@codeaurora.org>, "stern@rowland.harvard.edu" <stern@rowland.harvard.edu>, "gadiyar@ti.com" <gadiyar@ti.com>, "alek.du@intel.com" <alek.du@intel.com>, "jacob.jun.pan@intel.com" <jacob.jun.pan@intel.com>, "linux-usb@vger.kernel.org" <linux-usb@vger.kernel.org>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, "linux-mips@linux-mips.org" <linux-mips@linux-mips.org>, "ralf@linux-mips.org" <ralf@linux-mips.org>
In-reply-to: <1296127736-28208-1-git-send-email-anoop.pa@gmail.com>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <AANLkTimu_gzsd3NY+HDp7jV+EMtrHGZq7qNc3OedyT3C@mail.gmail.com> <1296127736-28208-1-git-send-email-anoop.pa@gmail.com>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Thunderbird 2.0.0.24 (X11/20100228)
Anoop P.A a écrit :

 config XPS_USB_HCD_XILINX
diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c
index 6fee3cd..a591890 100644
--- a/drivers/usb/host/ehci-hcd.c
+++ b/drivers/usb/host/ehci-hcd.c
@@ -262,6 +262,8 @@ static void tdi_reset (struct ehci_hcd *ehci)
        if (ehci_big_endian_mmio(ehci))
                tmp |= USBMODE_BE;
        ehci_writel(ehci, tmp, reg_ptr);
+       if (ehci->pmc_msp_tdi)
+               usb_hcd_tdi_set_mode(ehci);
 }
This is ugly to add callback to your driver here.
How this will build on other platform, usb_hcd_tdi_set_mode is only defined on ehci-pmcmsp.c


+void usb_hcd_tdi_set_mode(struct ehci_hcd *ehci)
+{
+       u8 *base;
+       u8 *statreg;
+       u8 *fiforeg;
+       u32 val;
+       struct ehci_regs *reg_base = ehci->regs;
+
+       /* get register base */
+       base = (u8 *)reg_base + USB_EHCI_REG_USB_MODE;
+       statreg = (u8 *)reg_base + USB_EHCI_REG_USB_STATUS;
+       fiforeg = (u8 *)reg_base + USB_EHCI_REG_USB_FIFO;
+
+       /* set the controller to host mode and BIG ENDIAN */
+       ehci_writel(ehci, (USB_CTRL_MODE_HOST | USB_CTRL_MODE_BIG_ENDIAN
+               | USB_CTRL_MODE_STREAM_DISABLE), (u32 *)base);
+
We have done that in tdi_reset, why do you do it again ?


Matthieu

<Prev in Thread] Current Thread [Next in Thread>