From 1192ecdc4ea0a6820e39bb5d0a03809b357b215d Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Mon, 20 Mar 2006 20:54:12 +1100 Subject: [PATCH] --- yaml --- r: 27463 b: refs/heads/master c: 8492f081e5552ff388068f612eae6f55f7210ed4 h: refs/heads/master i: 27461: c5f64b184bdf229252a097c75cd420cff4ef1a2f 27459: 408964ceed29a42cc182745ea9f022554214be6b 27455: 9fe79ab20067e3654430e15fd501aab94abea9e1 v: v3 --- [refs] | 2 +- trunk/drivers/video/intelfb/intelfbhw.c | 24 +++++++++++++----------- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/[refs] b/[refs] index 98eb6947c473..5322dc283e86 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d024960cff5173bef6e83c01cf9cd2763c2c0ab0 +refs/heads/master: 8492f081e5552ff388068f612eae6f55f7210ed4 diff --git a/trunk/drivers/video/intelfb/intelfbhw.c b/trunk/drivers/video/intelfb/intelfbhw.c index bf742aad08e9..d52921931a3e 100644 --- a/trunk/drivers/video/intelfb/intelfbhw.c +++ b/trunk/drivers/video/intelfb/intelfbhw.c @@ -746,20 +746,22 @@ static int splitm(int index, unsigned int m, unsigned int *retm1, unsigned int *retm2) { int m1, m2; - - m1 = (m - 2 - (plls[index].min_m1 + plls[index].max_m2) / 2) / 5 - 2; - if (m1 < plls[index].min_m1) - m1 = plls[index].min_m1; - if (m1 > plls[index].max_m1) - m1 = plls[index].max_m1; - m2 = m - 5 * (m1 + 2) - 2; - if (m2 < plls[index].min_m2 || m2 > plls[index].max_m2 || m2 >= m1) { - return 1; - } else { + int testm; + /* no point optimising too much - brute force m */ + for (m1 = plls[index].min_m1; m1 < plls[index].max_m1+1; m1++) + { + for (m2 = plls[index].min_m2; m2 < plls[index].max_m2+1; m2++) + { + testm = ( 5 * ( m1 + 2 )) + (m2 + 2); + if (testm == m) + { *retm1 = (unsigned int)m1; - *retm2 = (unsigned int)m2; + *retm2 = (unsigned int)m2; return 0; + } + } } + return 1; } /* Split the P parameter into P1 and P2. */