Subversion Repositories shark

Compare Revisions

Ignore whitespace Rev 546 → Rev 547

/shark/trunk/drivers/input/joystick/analog.c
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 !!! */
}
 
/*