Il Wednesday 02 April 2008 20:31:14 Florian Lohoff ha scritto: > On Wed, Apr 02, 2008 at 02:56:44PM +0200, Matteo Croce wrote: > > > > Works fine for my AR7 which has an interlan clock. > > > > Its doesnt for me with an external clock - thats what i mean - Auto > probing should first try to listen for an external clock before letting > clocks run against each other. This is the hunk of a patch on top of > yours ... > > @@ -371,12 +371,20 @@ static int __vlynq_enable_device(struct > > switch (dev->divisor) { > case vlynq_div_auto: > - /* Only try locally supplied clock, others cause problems */ > + > + 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; > + } > + > 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)); > + vlynq_reg_write(dev->remote->control, 0); > if (vlynq_linked(dev)) { > printk(KERN_DEBUG > "%s: using local clock divisor %d\n", > > Flo isn't this what I do in my last patch?