2007-06-11 04:57:51

by Miltiadis Margaronis

[permalink] [raw]
Subject: [PATCH] input: make 2 macros in gameport.c TSC-aware


This makes DELTA and GET_TIME in drivers/input/gameport/gameport.c
similar to the ones in drivers/input/joystick/analog.c . Worked on
2.6.22-rc4-git2.

Signed-off-by: Miltiadis Margaronis <[email protected]>


--- a/drivers/input/gameport/gameport.c 2007-06-05 03:57:02.000000000 +0300
+++ b/drivers/input/gameport/gameport.c 2007-06-09 07:20:45.000000000 +0300
@@ -64,8 +64,8 @@ static void gameport_disconnect_port(str

#include <asm/i8253.h>

-#define DELTA(x,y) ((y)-(x)+((y)<(x)?1193182/HZ:0))
-#define GET_TIME(x) do { x = get_time_pit(); } while (0)
+#define DELTA(x,y) (cpu_has_tsc ? ((y) - (x)) : ((y) - (x) +((y) < (x) ? CLOCK_TICK_RATE / HZ : 0)))
+#define GET_TIME(x) do { if (cpu_has_tsc) rdtscl(x); else x = get_time_pit(); } while (0)

static unsigned int get_time_pit(void)
{

--
Miltos


2007-06-12 05:24:45

by Dmitry Torokhov

[permalink] [raw]
Subject: Re: [PATCH] input: make 2 macros in gameport.c TSC-aware

Hi,

On Monday 11 June 2007 00:12, Miltiadis Margaronis wrote:
>
> This makes DELTA and GET_TIME in drivers/input/gameport/gameport.c
> similar to the ones in drivers/input/joystick/analog.c . Worked on
> 2.6.22-rc4-git2.
>

I was told with the introduction of tickless kernels and such the best
option is to convert gameport to use hires timers.

--
Dmitry