projects
/
openwrt
/
staging
/
chunkeey.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
5956d4b
)
use kernel abs(), remove recursion in gcd() (closes: #2307)
author
Nicolas Thill
<nico@openwrt.org>
Tue, 4 Sep 2007 10:44:45 +0000
(10:44 +0000)
committer
Nicolas Thill
<nico@openwrt.org>
Tue, 4 Sep 2007 10:44:45 +0000
(10:44 +0000)
SVN-Revision: 8608
target/linux/ar7-2.6/files/arch/mips/ar7/clock.c
patch
|
blob
|
history
diff --git
a/target/linux/ar7-2.6/files/arch/mips/ar7/clock.c
b/target/linux/ar7-2.6/files/arch/mips/ar7/clock.c
index f51c641a3da1aaa75d87b70653f7b3134a4ef0ad..c7ae09ecd751196f269b4154a574e33a6183ca31 100644
(file)
--- a/
target/linux/ar7-2.6/files/arch/mips/ar7/clock.c
+++ b/
target/linux/ar7-2.6/files/arch/mips/ar7/clock.c
@@
-99,16
+99,20
@@
EXPORT_SYMBOL(ar7_bus_clock);
int ar7_dsp_clock = 0;
EXPORT_SYMBOL(ar7_dsp_clock);
int ar7_dsp_clock = 0;
EXPORT_SYMBOL(ar7_dsp_clock);
-static int gcd(int
x, int y
)
+static int gcd(int
a, int b
)
{
{
- if (x > y)
- return (x % y) ? gcd(y, x % y) : y;
- return (y % x) ? gcd(x, y % x) : x;
-}
+ int c;
-static inline int ABS(int x)
-{
- return (x >= 0) ? x : -x;
+ if ( a < b) {
+ c = a;
+ a = b;
+ b = c;
+ }
+ while (c = (a % b)) {
+ a = b;
+ b = c;
+ }
+ return b;
}
static void approximate(int base, int target, int *prediv,
}
static void approximate(int base, int target, int *prediv,
@@
-118,7
+122,7
@@
static void approximate(int base, int target, int *prediv,
for (i = 1; i <= 16; i++) {
for (j = 1; j <= 32; j++) {
for (k = 1; k <= 32; k++) {
for (i = 1; i <= 16; i++) {
for (j = 1; j <= 32; j++) {
for (k = 1; k <= 32; k++) {
- freq =
ABS
(base / j * i / k - target);
+ freq =
abs
(base / j * i / k - target);
if (freq < res) {
res = freq;
*mul = i;
if (freq < res) {
res = freq;
*mul = i;