Runtime-tested on Comtrend AR-5387un. Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
		
			
				
	
	
		
			42 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
From 8e9bf528a122741f0171b89c297b63041116d704 Mon Sep 17 00:00:00 2001
 | 
						|
From: Florian Fainelli <florian@openwrt.org>
 | 
						|
Date: Mon, 28 Jan 2013 20:06:20 +0100
 | 
						|
Subject: [PATCH 02/11] MIPS: BCM63XX: add USB device clock enable delay to
 | 
						|
 clock code
 | 
						|
 | 
						|
This patch adds the required 10 micro seconds delay to the USB device
 | 
						|
clock enable operation. Put this where the correct clock knowledege is,
 | 
						|
which is in the clock code, and remove this delay from the bcm63xx_udc
 | 
						|
gadget driver where it was before.
 | 
						|
 | 
						|
Signed-off-by: Florian Fainelli <florian@openwrt.org>
 | 
						|
---
 | 
						|
 arch/mips/bcm63xx/clk.c          |    5 +++++
 | 
						|
 drivers/usb/gadget/bcm63xx_udc.c |    1 -
 | 
						|
 2 files changed, 5 insertions(+), 1 deletion(-)
 | 
						|
 | 
						|
--- a/arch/mips/bcm63xx/clk.c
 | 
						|
+++ b/arch/mips/bcm63xx/clk.c
 | 
						|
@@ -236,6 +236,11 @@ static void usbd_set(struct clk *clk, in
 | 
						|
 		bcm_hwclock_set(CKCTL_6362_USBD_EN, enable);
 | 
						|
 	else if (BCMCPU_IS_6368())
 | 
						|
 		bcm_hwclock_set(CKCTL_6368_USBD_EN, enable);
 | 
						|
+	else
 | 
						|
+		return;
 | 
						|
+
 | 
						|
+	if (enable)
 | 
						|
+		udelay(10);
 | 
						|
 }
 | 
						|
 
 | 
						|
 static struct clk clk_usbd = {
 | 
						|
--- a/drivers/usb/gadget/udc/bcm63xx_udc.c
 | 
						|
+++ b/drivers/usb/gadget/udc/bcm63xx_udc.c
 | 
						|
@@ -403,7 +403,6 @@ static inline void set_clocks(struct bcm
 | 
						|
 	if (is_enabled) {
 | 
						|
 		clk_enable(udc->usbh_clk);
 | 
						|
 		clk_enable(udc->usbd_clk);
 | 
						|
-		udelay(10);
 | 
						|
 	} else {
 | 
						|
 		clk_disable(udc->usbd_clk);
 | 
						|
 		clk_disable(udc->usbh_clk);
 |