vlynq: probe for an external clock first, needed to enable acx on the Leonardo board
authormatteo <matteo@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Wed, 2 Apr 2008 11:06:50 +0000 (11:06 +0000)
committermatteo <matteo@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Wed, 2 Apr 2008 11:06:50 +0000 (11:06 +0000)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@10707 3c298f89-4303-0410-b956-a3cf2f4a3e73

target/linux/ar7/files/drivers/vlynq/vlynq.c

index 374562c..c2ac536 100644 (file)
@@ -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);