Thread (22 messages) 22 messages, 7 authors, 2011-02-24

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

From: Anoop P A <hidden>
Date: 2011-02-23 12:59:07
Also in: lkml

On Tue, 2011-02-22 at 23:04 +0300, Dan Carpenter wrote:
On Tue, Feb 22, 2011 at 09:05:33PM +0530, Anoop P.A wrote:
quoted
From: Anoop <paanoop1@paanoop1-desktop.(none)>

This patch add bus glue for USB controller commonly found in PMC-Sierra MSP71xx family of SoC's.


Signed-off-by: Anoop P A <redacted>
---
Changes.
ehci-pmcmsp.c is based on latest ehci-pci.c.Addressed some stylistic issue pointed by Greg.
Addressed comments from Matthieu CASTET.
Could you spell that out more completely next time? 
OK 
quoted
+config USB_EHCI_HCD_PMC_MSP
+	tristate "EHCI support for on-chip PMC MSP USB controller"
Better to say "EHCI support for on-chip PMC-Sierra MSP71xx USB controllers"
Ok will change that
quoted
+	depends on USB_EHCI_HCD && MSP_HAS_USB
+	default y
New features always default to No.
O.k
quoted
+#include <msp_usb.h>
Cannot find the msp_usb.h in linux-next.  Doesn't compile.
msp_usb.h has made it's way to linux-mips queue tree along with the
platform code
quoted
+static 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;
+
+	/* Disable controller mode stream */
+	val = ehci_readl(ehci, (u32 *)base);
It doesn't compile so I can't test this, but I think that this will
cause a sparse warning.  "base" should have an __iomem tag.  Please
run sparse on this driver.
Looks like mips platform build has been broken on linux-next ( unable to
configure) . However I have tested code with linux-queue tree ( mips)
and didn't see any such warnings
quoted
+/* called after powerup, by probe or system-pm "wakeup" */
+static int ehci_msp_reinit(struct ehci_hcd *ehci)
+{
+	ehci_port_power(ehci, 0);
+
+	return 0;
Better to make this function void.
O.K
quoted
+}
+
+/* called during probe() after chip reset completes */
+static int ehci_msp_setup(struct usb_hcd *hcd)
+{
+	struct ehci_hcd		*ehci = hcd_to_ehci(hcd);
+	u32			temp;
+	int			retval;
Needs a blank line here to separate declarations from code.
O.K
quoted
+	ehci->big_endian_mmio = 1;
+	ehci->big_endian_desc = 1;
+
+	ehci->caps = hcd->regs;
+	ehci->regs = hcd->regs +
+			HC_LENGTH(ehci_readl(ehci, &ehci->caps->hc_capbase));
[snip]
quoted
+	/* data structure init */
+	retval = ehci_init(hcd);
+	if (retval)
+		return retval;
+
+	temp = HCS_N_CC(ehci->hcs_params) * HCS_N_PCC(ehci->hcs_params);
+	temp &= 0x0f;
companion HCs * ports per CC & 0xf?

What's the &= 0x0f for?  It's left out of the printk.
Code got carried forward from ehci-pci.c . Is that says ehci-pci.c is
uptodate? .  
quoted
+	if (temp && HCS_N_PORTS(ehci->hcs_params) > temp) {
+		ehci_dbg(ehci, "bogus port configuration: "
+			"cc=%d x pcc=%d < ports=%d\n",
+			HCS_N_CC(ehci->hcs_params),
+			HCS_N_PCC(ehci->hcs_params),
+			HCS_N_PORTS(ehci->hcs_params));
+	}
[snip]
quoted
+/*-------------------------------------------------------------------------*/
No need for these blank comments.
O.K
quoted
+
+static void msp_start_hc(struct platform_device *dev)
+{
+}
+
+static void msp_stop_hc(struct platform_device *dev)
+{
+}
+
I don't understand the point of these empty functions.
Will  remove it.
quoted
+static int ehci_msp_suspend(struct device *dev)
+{
+	struct usb_hcd *hcd = dev_get_drvdata(dev);
+	struct ehci_hcd *ehci = hcd_to_ehci(hcd);
+	unsigned long flags;
+	int rc;
+
+	return 0;
+	rc = 0;
+
+	if (time_before(jiffies, ehci->next_statechange))
+		usleep(10000);
Is there still a usleep() function?  Either way, can you send us
something that compiles on linux-next?
Again code got carried from ehci-pci.c .(changed msleep to usleep as
checkpatch complained about it). I am unable to compile mips targets in
linux-next tree . However this patch is tested with both linux-stable
and linux-queue tree of l-m-o
regards,
dan carpenter
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help