* [PATCH] NeoMagic FPU fix (2.5.5-pre1)
@ 2002-02-14 21:14 Denis Oliver Kropp
0 siblings, 0 replies; only message in thread
From: Denis Oliver Kropp @ 2002-02-14 21:14 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-kernel
[-- Attachment #1: Type: text/plain, Size: 454 bytes --]
Hi,
this is the NeoMagic floating foint removal patch
I posted previously for Linux 2.4.18-pre9-ac3.
This one applies against Linux 2.5.5-pre1 and
updates the driver to version 0.3.2.
--
Best regards,
Denis Oliver Kropp
.------------------------------------------.
| DirectFB - Hardware accelerated graphics |
| http://www.directfb.org/ |
"------------------------------------------"
convergence integrated media GmbH
[-- Attachment #2: neofb-0.3.2-linux-2.5.5-pre1.diff --]
[-- Type: text/plain, Size: 2355 bytes --]
diff -uraN linux-2.5.5-pre1/CREDITS linux/CREDITS
--- linux-2.5.5-pre1/CREDITS Thu Feb 14 21:50:52 2002
+++ linux/CREDITS Thu Feb 14 21:52:17 2002
@@ -1657,6 +1657,13 @@
S: San Antonio, Texas 78269-1886
S: USA
+N: Denis O. Kropp
+E: dok@directfb.org
+D: NeoMagic framebuffer driver
+S: Badensche Str. 46
+S: 10715 Berlin
+S: Germany
+
N: Andrzej M. Krzysztofowicz
E: ankry@mif.pg.gda.pl
D: Some 8-bit XT disk driver and devfs hacking
diff -uraN linux-2.5.5-pre1/drivers/video/neofb.c linux/drivers/video/neofb.c
--- linux-2.5.5-pre1/drivers/video/neofb.c Thu Feb 14 21:50:54 2002
+++ linux/drivers/video/neofb.c Thu Feb 14 21:56:00 2002
@@ -12,6 +12,9 @@
* archive for more details.
*
*
+ * 0.3.2
+ * - got rid of all floating point (dok)
+ *
* 0.3.1
* - added module license (dok)
*
@@ -71,7 +74,7 @@
#include "neofb.h"
-#define NEOFB_VERSION "0.3.1"
+#define NEOFB_VERSION "0.3.2"
/* --------------------------------------------------------------------- */
@@ -872,7 +875,7 @@
*
* Determine the closest clock frequency to the one requested.
*/
-#define REF_FREQ 14.31818
+#define REF_FREQ 0xe517 /* 14.31818 in 20.12 fixed point */
#define MAX_N 127
#define MAX_D 31
#define MAX_F 1
@@ -880,17 +883,18 @@
static void neoCalcVCLK (const struct neofb_info *info, struct neofb_par *par, long freq)
{
int n, d, f;
- double f_out;
- double f_diff;
int n_best = 0, d_best = 0, f_best = 0;
- double f_best_diff = 999999.0;
- double f_target = freq/1000.0;
+ long f_best_diff = (0x7ffff << 12); /* 20.12 */
+ long f_target = (freq << 12) / 1000; /* 20.12 */
for (f = 0; f <= MAX_F; f++)
for (n = 0; n <= MAX_N; n++)
for (d = 0; d <= MAX_D; d++)
{
- f_out = (n+1.0)/((d+1.0)*(1<<f))*REF_FREQ;
+ long f_out; /* 20.12 */
+ long f_diff; /* 20.12 */
+
+ f_out = ((((n+1) << 12) / ((d+1)*(1<<f))) >> 12) * REF_FREQ;
f_diff = abs(f_out-f_target);
if (f_diff < f_best_diff)
{
@@ -917,12 +921,12 @@
par->VCLK3Denominator = d_best;
#ifdef NEOFB_DEBUG
- printk ("neoVCLK: f:%f NumLow=%d NumHi=%d Den=%d Df=%f\n",
- f_target,
+ printk ("neoVCLK: f:%d NumLow=%d NumHi=%d Den=%d Df=%d\n",
+ f_target >> 12,
par->VCLK3NumeratorLow,
par->VCLK3NumeratorHigh,
par->VCLK3Denominator,
- f_best_diff);
+ f_best_diff >> 12);
#endif
}
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2002-02-14 21:15 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-02-14 21:14 [PATCH] NeoMagic FPU fix (2.5.5-pre1) Denis Oliver Kropp
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox