Fixed search for best pll multiplier/divisor
authorFrank Mori Hess <fmhess@speakeasy.net>
Tue, 24 Oct 2006 15:21:46 +0000 (15:21 +0000)
committerFrank Mori Hess <fmhess@speakeasy.net>
Tue, 24 Oct 2006 15:21:46 +0000 (15:21 +0000)
comedi/drivers/ni_mio_common.c

index 9231c6280a503da1a3eae02262acac7420ae0791..df330ac56b555842d4e4e2ed566242e8f6f6acb1 100644 (file)
@@ -4362,8 +4362,7 @@ static int ni_mseries_get_pll_parameters(unsigned reference_period_ns,
                for(mult = 1; mult <= max_mult; ++mult)
                {
                        unsigned new_period_ps = (reference_picosec * div) / mult;
-                       if((new_period_ps < best_period_picosec && new_period_ps >= target_picosec) ||
-                               (new_period_ps > best_period_picosec && new_period_ps <= target_picosec))
+                       if(abs(new_period_ps - target_picosec) < abs(best_period_picosec - target_picosec))
                        {
                                best_period_picosec = new_period_ps;
                                best_div = div;