1,5 → 1,5 |
/* |
* $Id: analog.c,v 1.2 2004-03-29 18:27:43 mauro Exp $ |
* $Id: analog.c,v 1.3 2004-03-31 11:27:13 mauro Exp $ |
* |
* Copyright (c) 1996-2001 Vojtech Pavlik |
*/ |
85,7 → 85,7 |
#define ANALOG_GAMEPAD 0x80000 |
|
#define ANALOG_MAX_TIME 3 /* 3 ms */ |
#define ANALOG_LOOP_TIME 2000 /* 2 * loop */ |
#define ANALOG_LOOP_TIME 2 /* 2 * loop */ |
#define ANALOG_REFRESH_TIME HZ/100 /* 10 ms */ |
#define ANALOG_SAITEK_DELAY 200 /* 200 us */ |
#define ANALOG_SAITEK_TIME 2000 /* 2000 us */ |
140,12 → 140,13 |
|
#ifdef __i386__ |
/* !!! Added by Nino !!! */ |
#define GET_TIME(x) (x = get_time_pit()) |
extern TIME sys_gettime(struct timespec *t); |
#define GET_TIME(x) (x = sys_gettime(NULL)) |
#define DELTA(x,y) ((y)-(x)) |
#define TIME_NAME ("Shark") |
/*#define GET_TIME(x) do { if (cpu_has_tsc) rdtscl(x); else x = get_time_pit(); } while (0) |
#define DELTA(x,y) (cpu_has_tsc?((y)-(x)):((x)-(y)+((x)<(y)?1193182L/HZ:0))) |
#define TIME_NAME (cpu_has_tsc?"TSC":"PIT")*/ |
#define TIME_NAME (cpu_has_tsc?"TSC":"PIT") |
static unsigned int get_time_pit(void) |
{ |
extern spinlock_t i8253_lock; |
159,7 → 160,7 |
spin_unlock_irqrestore(&i8253_lock, flags); |
|
return count; |
} |
}*/ |
#elif __x86_64__ |
#define GET_TIME(x) rdtscl(x) |
#define DELTA(x,y) ((y)-(x)) |
237,7 → 238,7 |
unsigned long flags; |
int i, j; |
|
loopout = (ANALOG_LOOP_TIME * port->loop) / 1000; |
loopout = ANALOG_LOOP_TIME * port->loop; |
timeout = ANALOG_MAX_TIME * port->speed; |
|
local_irq_save(flags); |
376,7 → 377,7 |
unsigned int i, t, tx, t1, t2, t3; |
unsigned long flags; |
|
local_irq_save(flags); |
/*local_irq_save(flags); |
GET_TIME(t1); |
#ifdef FAKE_TIME |
analog_faketime += 830; |
386,7 → 387,10 |
GET_TIME(t3); |
local_irq_restore(flags); |
|
port->speed = DELTA(t1, t2) - DELTA(t2, t3); |
port->speed = DELTA(t1, t2) - DELTA(t2, t3);*/ |
|
/* !!! Added by Nino !!! */ |
port->speed = 1000; |
|
tx = ~0; |
|
401,7 → 405,7 |
if (t < tx) tx = t; |
} |
|
port->loop = tx / 50; |
port->loop = tx / 5; /* !!! In Linux is set to 50 !!! */ |
} |
|
/* |