X-Git-Url: https://git.archive.openwrt.org/?a=blobdiff_plain;f=target%2Flinux%2Far7%2Ffiles%2Fdrivers%2Fvlynq%2Fvlynq.c;h=c2ac536ba16819095c8cf5ac5a158db7ced63346;hb=1927554d27d885595be87bf3ffeecf8dad5feb65;hp=0dd6c18307c800fee2dc612c3914ad46c77e3f74;hpb=c3585201fb25ea0fb56310c56d2a87384382cce5;p=openwrt.git diff --git a/target/linux/ar7/files/drivers/vlynq/vlynq.c b/target/linux/ar7/files/drivers/vlynq/vlynq.c index 0dd6c18307..c2ac536ba1 100644 --- a/target/linux/ar7/files/drivers/vlynq/vlynq.c +++ b/target/linux/ar7/files/drivers/vlynq/vlynq.c @@ -369,11 +369,19 @@ 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 */ vlynq_reg_write(dev->remote->control, 0); - for (i = vlynq_ldiv1; i <= vlynq_ldiv8; i++) { + for (i = vlynq_ldiv2; i <= vlynq_ldiv8; i++) { vlynq_reg_write(dev->local->control, VLYNQ_CTRL_CLOCK_INT | VLYNQ_CTRL_CLOCK_DIV(i - vlynq_ldiv1)); @@ -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);