Lines Matching defs:p1
24 unsigned int p1;
75 * 1. p1 is in the [p1_min, p1_max] range given by the limits and is
78 * 3. div * mf is a multiple of p1, in order to compute
79 * n = div * mf / p1
86 * The first naive approach is to iterate over all p1 values acceptable
95 * mf_inc = p1 / gcd(div, p1) (6)
101 * acceptable p1 and mf values by modifying the minimum and maximum
104 * ext_clock / (div * mf / p1) * m * mf >= out_clock_min
105 * ext_clock / (div * mf / p1) * m * mf <= out_clock_max
109 * p1 >= out_clock_min * div / (ext_clock * m) (7)
110 * p1 <= out_clock_max * div / (ext_clock * m)
114 * mf >= ext_clock * p1 / (int_clock_max * div) (8)
115 * mf <= ext_clock * p1 / (int_clock_min * div)
117 * We can thus iterate over the restricted p1 range defined by the
121 * select the mf lwoer bound and the corresponding p1 value.
133 for (p1 = p1_max & ~1; p1 >= p1_min; p1 -= 2) {
134 unsigned int mf_inc = p1 / gcd(div, p1);
138 mf_low = roundup(max(mf_min, DIV_ROUND_UP(pll->ext_clock * p1,
140 mf_high = min(mf_max, pll->ext_clock * p1 /
146 pll->n = div * mf_low / p1;
148 pll->p1 = p1;
149 dev_dbg(dev, "PLL: N %u M %u P1 %u\n", pll->n, pll->m, pll->p1);