diff options
Diffstat (limited to 'target/linux/ar7/files/drivers')
| -rw-r--r-- | target/linux/ar7/files/drivers/vlynq/vlynq.c | 17 | 
1 files changed, 8 insertions, 9 deletions
diff --git a/target/linux/ar7/files/drivers/vlynq/vlynq.c b/target/linux/ar7/files/drivers/vlynq/vlynq.c index 374562c6c..c2ac536ba 100644 --- a/target/linux/ar7/files/drivers/vlynq/vlynq.c +++ b/target/linux/ar7/files/drivers/vlynq/vlynq.c @@ -369,6 +369,14 @@ static int __vlynq_enable_device(struct vlynq_device *dev)  	if (result)  		return result; +	vlynq_reg_write(dev->local->control, 0); +	vlynq_reg_write(dev->remote->control, 0); +	if (vlynq_linked(dev)) { +		printk(KERN_DEBUG "%s: using external clock\n", +			dev->dev.bus_id); +		return 0; +	} +  	switch (dev->divisor) {  	case vlynq_div_auto:  		/* Only try locally supplied clock, others cause problems */ @@ -413,15 +421,6 @@ static int __vlynq_enable_device(struct vlynq_device *dev)  			return 0;  		}  		break; -	case vlynq_div_external: -		vlynq_reg_write(dev->local->control, 0); -		vlynq_reg_write(dev->remote->control, 0); -		if (vlynq_linked(dev)) { -			printk(KERN_DEBUG "%s: using external clock\n", -			       dev->dev.bus_id); -			return 0; -		} -		break;  	}  	ops->off(dev);  | 
