vlynq: probe for an external clock first, needed to enable acx on the Leonardo board
[openwrt.git] / 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);