[PATCH] This patch add varius fix to the ehci.
- fix ehci_readl, ehci_writel
- introduce new define in ehci.h
- introduce the handshake function for waiting on a register
- fix usb_ehci_fsl with the new HC_LENGTH macro

Signed-off-by: Michael Trimarchi <trimarchimichael@yahoo.it>
Signed-off-by: Remy Böhmer <linux@bohmer.net>
diff --git a/drivers/usb/usb_ehci_fsl.c b/drivers/usb/usb_ehci_fsl.c
index 9ca6c56..81d5d21 100644
--- a/drivers/usb/usb_ehci_fsl.c
+++ b/drivers/usb/usb_ehci_fsl.c
@@ -43,7 +43,8 @@
 
 	addr = (uint32_t)&(im->usb[0]);
 	hccr = (struct ehci_hccr *)(addr + FSL_SKIP_PCI);
-	hcor = (struct ehci_hcor *)((uint32_t) hccr + hccr->cr_caplength);
+	hcor = (struct ehci_hcor *)((uint32_t) hccr +
+			HC_LENGTH(ehci_readl(&hccr->cr_capbase)));
 
 	/* Configure clock */
 	clrsetbits_be32(&(im->clk.sccr), MPC83XX_SCCR_USB_MASK,