lib: cordic: Move cordic macros and defines to header file
authorPriit Laes <plaes@plaes.org>
Mon, 19 Nov 2018 18:01:22 +0000 (20:01 +0200)
committerKalle Valo <kvalo@codeaurora.org>
Thu, 29 Nov 2018 15:30:48 +0000 (17:30 +0200)
Now that these macros are in header file, we can eventually
clean up the duplicate macros present in the drivers that
utilize the same cordic algorithm implementation.

Also add CORDIC_ prefix to nonprefixed macros.

Reviewed-by: Arend van Spriel <arend.vanspriel@broadcom.com>
Signed-off-by: Priit Laes <plaes@plaes.org>
Acked-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
include/linux/cordic.h
lib/cordic.c

index cf68ca4a508c1cd9386cbf0645c942e3867fada1..3d656f54d64f6247f47264544ea0826f5bfa1153 100644 (file)
 
 #include <linux/types.h>
 
+#define CORDIC_ANGLE_GEN       39797
+#define CORDIC_PRECISION_SHIFT 16
+#define CORDIC_NUM_ITER        (CORDIC_PRECISION_SHIFT + 2)
+
+#define CORDIC_FIXED(X)        ((s32)((X) << CORDIC_PRECISION_SHIFT))
+#define CORDIC_FLOAT(X)        (((X) >= 0) \
+               ? ((((X) >> (CORDIC_PRECISION_SHIFT - 1)) + 1) >> 1) \
+               : -((((-(X)) >> (CORDIC_PRECISION_SHIFT - 1)) + 1) >> 1))
+
 /**
  * struct cordic_iq - i/q coordinate.
  *
index 6cf477839ebdaa33432e647e2d5ad315a31951ed..8ef27c12956f5a809dd5aa831658ee3bf0621735 100644 (file)
 #include <linux/module.h>
 #include <linux/cordic.h>
 
-#define CORDIC_ANGLE_GEN       39797
-#define CORDIC_PRECISION_SHIFT 16
-#define        CORDIC_NUM_ITER         (CORDIC_PRECISION_SHIFT + 2)
-
-#define        FIXED(X)        ((s32)((X) << CORDIC_PRECISION_SHIFT))
-#define        FLOAT(X)        (((X) >= 0) \
-               ? ((((X) >> (CORDIC_PRECISION_SHIFT - 1)) + 1) >> 1) \
-               : -((((-(X)) >> (CORDIC_PRECISION_SHIFT - 1)) + 1) >> 1))
-
 static const s32 arctan_table[] = {
        2949120,
        1740967,
@@ -64,16 +55,16 @@ struct cordic_iq cordic_calc_iq(s32 theta)
        coord.q = 0;
        angle = 0;
 
-       theta = FIXED(theta);
+       theta = CORDIC_FIXED(theta);
        signtheta = (theta < 0) ? -1 : 1;
-       theta = ((theta + FIXED(180) * signtheta) % FIXED(360)) -
-               FIXED(180) * signtheta;
+       theta = ((theta + CORDIC_FIXED(180) * signtheta) % CORDIC_FIXED(360)) -
+               CORDIC_FIXED(180) * signtheta;
 
-       if (FLOAT(theta) > 90) {
-               theta -= FIXED(180);
+       if (CORDIC_FLOAT(theta) > 90) {
+               theta -= CORDIC_FIXED(180);
                signx = -1;
-       } else if (FLOAT(theta) < -90) {
-               theta += FIXED(180);
+       } else if (CORDIC_FLOAT(theta) < -90) {
+               theta += CORDIC_FIXED(180);
                signx = -1;
        }