Bug 1332 - sidewinder driver broken for gameports
Summary: sidewinder driver broken for gameports
Status: REJECTED UNREPRODUCIBLE
Alias: None
Product: Drivers
Classification: Unclassified
Component: Input Devices (show other bugs)
Hardware: i386 Linux
: P2 normal
Assignee: Dmitry Torokhov
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2003-10-07 04:28 UTC by Scott Robinson
Modified: 2008-03-03 16:25 UTC (History)
5 users (show)

See Also:
Kernel Version: 2.6.0-test6
Subsystem:
Regression: ---
Bisected commit-id:


Attachments
an other joydump result 15 index (the other as only 8 index) (1.13 KB, text/plain)
2004-07-16 12:25 UTC, CASTET Matthieu
Details
printk in sidewinder, I don't know what are the firsts values??? (260.38 KB, application/octet-stream)
2004-07-16 12:29 UTC, CASTET Matthieu
Details
The second time I reload sidewinder, there are no strange printk at the begining... (343.46 KB, application/octet-stream)
2004-07-16 12:31 UTC, CASTET Matthieu
Details

Description Scott Robinson 2003-10-07 04:29:00 UTC
Distribution: Debian testing & unstable
Linux tara 2.6.0-test6 #1 Sun Sep 28 16:04:55 PDT 2003 i686 GNU/Linux
CPU: AMD Athlon(tm) XP 1700+ stepping 01

Problem Description:

I am using the 2.6.0-test4 kernel. I have loaded the
joydev/emu10k1-gp/sidewinder modules. The sidewinder driver, however,
appears to not work properly.

I have a Sidewinder Gamepad connected. I have also tested with my old Gravis
Gamepad. (analog)
                                                                               
                                                                               
      
[joydev, emu10k1-gp, sidewinder results w/ sidewinder connected]
                                                                               
                                                                               
      
Sep  3 10:17:02 tara kernel: gameport: pci0000:01:07.1 speed 817 kHz
Sep  3 10:17:04 tara kernel: drivers/input/joystick/sidewinder.c: Init 0: Opened
pci0000:01:07.1/gameport0, io 0xd400, speed 817
Sep  3 10:17:04 tara kernel: sidewinder.c: Read 0 triplets. []
Sep  3 10:17:04 tara kernel: drivers/input/joystick/sidewinder.c: Init 1: Mode
1. Length 0.
Sep  3 10:17:04 tara kernel: sidewinder.c: Read 0 triplets. []
Sep  3 10:17:04 tara kernel: drivers/input/joystick/sidewinder.c: Init 1b: Length 0.
                                                                               
                                                                               
      
joydev/devfs does not create /dev/js0 symlink.
                                                                               
                                                                               
      
[joydev, emu10k1-gp, analog results w/ sidewinder connected]
                                                                               
                                                                               
      
Sep  3 10:19:07 tara kernel: gameport: pci0000:01:07.1 speed 828 kHz
Sep  3 10:19:09 tara kernel: input: Analog 4-axis 4-button joystick at
pci0000:01:07.1/gameport0 [TSC timer, 1446 MHz clock, 1240 ns res]
                                                                               
                                                                               
      
joydev/devfs creates /dev/js0 symlink. jstest /dev/js0 is unresponsive.
                                                                               
                                                                               
      
[joydev, emu10k1-gp, analog results w/ gravis connected]
                                                                               
                                                                               
      
Sep  3 10:23:42 tara kernel: gameport: pci0000:01:07.1 speed 828 kHz
Sep  3 10:23:43 tara kernel: input: Analog 2-axis 4-button joystick at
pci0000:01:07.1/gameport0 [TSC timer, 1446 MHz clock, 1248 ns res]
                                                                               
                                                                               
      
joydev/devfs creates /dev/js0 symlink. jstest /dev/js0 is responsive.

The same problem occurs while using the normal gameport drivers.
Comment 1 Vojtech Pavlik 2004-02-01 02:39:45 UTC
This looks like a HW problem. Either sidewinder/emu10k 
incompatibility or a dead sidewinder.
Comment 2 Vojtech Pavlik 2004-02-01 02:40:20 UTC
Can you try to insert the 'joydump' module to see if anything is coming
out of the sidewinder?
Comment 3 CASTET Matthieu 2004-07-16 12:23:23 UTC
I have the same probleme with ns558 on i810 gameport.
The joystick work well on 2.4 with SB live pci and AWE 64 isa.

See http://sourceforge.net/mailarchive/forum.php?thread_id=5057077&forum_id=1751
for more detail and the joydump result.

I have also put some printk in sidewinder see atachement
Comment 4 CASTET Matthieu 2004-07-16 12:25:33 UTC
Created attachment 3382 [details]
an other joydump result 15 index (the other as only 8 index)
Comment 5 CASTET Matthieu 2004-07-16 12:29:07 UTC
Created attachment 3383 [details]
printk in sidewinder, I don't know what are the firsts values???

for this I add some printk as you can see below, and set strobe to 400.


	strobe = 400;//gameport_time(gameport, SW_STROBE);
	bitout = start;
	pending = 0;
	sched = 0;

	local_irq_save(flags);					/* Quiet,
please
 */

	gameport_trigger(gameport);				/* Trigger */
	v = gameport_read(gameport);

	do {
		bitout--;
		u = v; 
		v = gameport_read(gameport);
printk("u v  : %x %x\n",u,v);
	} while (!(~v & u & 0x10) && (bitout > 0));		/* Wait for
firs
t falling edge on clock */ 

	if (bitout > 0) bitout = strobe;			/* Extend time
i
f not timed out */
printk("bitout : %d\n",bitout);
while ((timeout > 0 || bitout > 0) && (i < length)) {

		timeout--;
		bitout--;					/* Decrement
tim
ers */
		sched--;

		u = v;
		v = gameport_read(gameport);

printk("bitout1 : %d v %x %x\n",bitout,v,~u & v);
		if ((~u & v & 0x10) && (bitout > 0)) {		/* Rising edge
o
n clock - data bit */
printk("ok\n");
			if (i >= 0)				/* Want this
dat
a */
				buf[i] = v >> 5;		/* Store it */
			i++;					/* Advance
index
 */
			bitout = strobe;			/* Extend
timeou
t for next bit */
		}
Comment 6 CASTET Matthieu 2004-07-16 12:31:18 UTC
Created attachment 3384 [details]
The second time I reload sidewinder, there are no strange printk at the begining...
Comment 7 Bjoern Michaelsen 2004-09-25 17:04:17 UTC
I can confirm this, My Sidewinder 3D Pro doesnt work under 2.6 anymore - it did
flawlessly work with 2.4 kernels (I tried both the analog and the sidewinder
driver). 
Comment 8 Bjoern Michaelsen 2004-09-26 13:40:15 UTC
"Sidewinder doesnt work under 2.6 anyone"
means "doesnt work in any 2.6 kernel I tried anyone" of cause (this including
2.6.1/2/3/4/5/6/8.1 and 9rc2)
Comment 9 Anthony Sevigny 2004-12-08 14:57:55 UTC
I'm new to this... but I've got a problem with my Microsoft Sidewinder 
Precision Pro (gameport). 
 
When I initiate the module for it, I get this: 
 
------------------------------------------------------------- 
drivers/input/joystick/sidewinder.c: Init 0: Opened <NULL>, io 0x0, speed 1125 
sidewinder.c: Read 48 triplets. 
[11111111766666660011111177776777111110006766666 
7] 
drivers/input/joystick/sidewinder.c: Init 1: Mode 1. Length 48. 
sidewinder.c: Read 0 triplets. [] 
drivers/input/joystick/sidewinder.c: Init 2: Mode 1. ID Length 0. 
sidewinder.c: Read 16 triplets. [7770007775771404] 
drivers/input/joystick/sidewinder.c: Init 2b: Mode 1. Length 16. 
sidewinder.c: Read 0 triplets. [] 
drivers/input/joystick/sidewinder.c: Init 2c: ID Length 0. 
sidewinder.c: Read 16 triplets. [7770007775771404] 
drivers/input/joystick/sidewinder.c: Init 3: Mode 1. Length 16. Last 0. Tries 
15 
. 
drivers/input/joystick/sidewinder.c: Init 3a: Case 16. 
 
sidewinder.c: Read 16 triplets. [7770007775771404] 
drivers/input/joystick/sidewinder.c: Init 3: Mode 1. Length 16. Last 16. Tries 
1 
4. 
sidewinder.c: Read 16 triplets. [7770007775771404] 
drivers/input/joystick/sidewinder.c: Init 3: Mode 1. Length 16. Last 16. Tries 
1 
3. 
sidewinder.c: Read 16 triplets. [7770007775771404] 
drivers/input/joystick/sidewinder.c: Init 3: Mode 1. Length 16. Last 16. Tries 
1 
2. 
sidewinder.c: Read 16 triplets. [7770007775771404] 
drivers/input/joystick/sidewinder.c: Init 3: Mode 1. Length 16. Last 16. Tries 
1 
1. 
sidewinder.c: Read 16 triplets. [7770007775771404] 
drivers/input/joystick/sidewinder.c: Init 3: Mode 1. Length 16. Last 16. Tries 
1 
0. 
sidewinder.c: Read 16 triplets. [7770007775771404] 
drivers/input/joystick/sidewinder.c: Init 3: Mode 1. Length 16. Last 16. Tries 
9 
. 
sidewinder.c: Read 16 triplets. [7770007775771404] 
drivers/input/joystick/sidewinder.c: Init 3: Mode 1. Length 16. Last 16. Tries 
8 
. 
sidewinder.c: Read 16 triplets. [7770007775771404] 
drivers/input/joystick/sidewinder.c: Init 3: Mode 1. Length 16. Last 16. Tries 
7 
. 
sidewinder.c: Read 16 triplets. [7770007775771404] 
drivers/input/joystick/sidewinder.c: Init 3: Mode 1. Length 16. Last 16. Tries 
6 
. 
sidewinder.c: Read 16 triplets. [7770007775771404] 
drivers/input/joystick/sidewinder.c: Init 3: Mode 1. Length 16. Last 16. Tries 
5. 
sidewinder.c: Read 16 triplets. [7770007775771404] 
drivers/input/joystick/sidewinder.c: Init 3: Mode 1. Length 16. Last 16. Tries 
4. 
sidewinder.c: Read 16 triplets. [7770007775770400] 
drivers/input/joystick/sidewinder.c: Init 3: Mode 1. Length 16. Last 16. Tries 
3. 
sidewinder.c: Read 16 triplets. [7770007775770400] 
drivers/input/joystick/sidewinder.c: Init 3: Mode 1. Length 16. Last 16. Tries 
2. 
sidewinder.c: Read 16 triplets. [7770007775770400] 
drivers/input/joystick/sidewinder.c: Init 3: Mode 1. Length 16. Last 16. Tries 
1. 
sidewinder.c: Read 16 triplets. [7770007775770400] 
drivers/input/joystick/sidewinder.c: Init 3: Mode 1. Length 16. Last 16. Tries 
0. 
sidewinder.c: unknown joystick device detected on <NULL>, contact 
<vojtech@ucw.cz> 
sidewinder.c: ID packet, 0 bits. [] 
sidewinder.c: Data packet, 16 bits. [0fc7] 
------------------------------------------------------------- 
 
 
When I probe joydump, I get this: 
 
 
 
------------------------------------------------------------- 
joydump: ,------------------- START ------------------. 
joydump: | Dumping gameport<NULL>. 
joydump: | Speed: 1125 kHz.                            | 
joydump: >------------------- DATA -------------------< 
joydump: | index:   0 delta:   0.00 us data: 11011110 | 
joydump: | index:   1 delta:   0 us data: 11011111    | 
joydump: | index:   2 delta:  90 us data: 11001111    | 
joydump: | index:   3 delta:   2 us data: 10001111    | 
joydump: | index:   4 delta:   1 us data: 00001111    | 
joydump: | index:   5 delta:  13 us data: 00101111    | 
joydump: | index:   6 delta:   1 us data: 00111111    | 
joydump: | index:   7 delta:   8 us data: 00101111    | 
joydump: | index:   8 delta:   8 us data: 00111111    | 
joydump: | index:   9 delta:   9 us data: 00101111    | 
joydump: | index:  10 delta:   8 us data: 00111111    | 
joydump: | index:  11 delta:   8 us data: 00101111    | 
joydump: | index:  12 delta:   8 us data: 00111111    | 
joydump: | index:  13 delta:   8 us data: 00101111    | 
joydump: | index:  14 delta:   9 us data: 00111111    | 
joydump: | index:  15 delta:   1 us data: 00111110    | 
joydump: | index:  16 delta:   7 us data: 00101110    | 
joydump: | index:  17 delta:  24 us data: 00111110    | 
joydump: | index:  18 delta:   9 us data: 00101110    | 
joydump: | index:  19 delta:   8 us data: 00111110    | 
joydump: | index:  20 delta:   8 us data: 00101110    | 
joydump: | index:  21 delta:   8 us data: 00111110    | 
joydump: | index:  22 delta:   4 us data: 11111110    | 
joydump: | index:  23 delta:   4 us data: 11101110    | 
joydump: | index:  24 delta:   9 us data: 11111110    | 
joydump: | index:  25 delta:   8 us data: 11101110    | 
joydump: | index:  26 delta:   7 us data: 11001110    | 
joydump: | index:  27 delta:   1 us data: 11011110    | 
joydump: | index:  28 delta:   9 us data: 11001110    | 
joydump: | index:  29 delta:   8 us data: 11011110    | 
joydump: | index:  30 delta:   8 us data: 11001110    | 
joydump: | index:  31 delta:   8 us data: 11011110    | 
joydump: | index:  32 delta:   8 us data: 11001110    | 
joydump: | index:  33 delta:   8 us data: 11011110    | 
joydump: | index:  34 delta:   8 us data: 11001110    | 
joydump: | index:  35 delta:   8 us data: 11011110    | 
joydump: | index:  36 delta:   8 us data: 11001110    | 
joydump: | index:  37 delta:   9 us data: 11011110    | 
joydump: | index:  38 delta:   8 us data: 11001110    | 
joydump: | index:  39 delta:   8 us data: 11011110    | 
joydump: | index:  40 delta:   4 us data: 00011110    | 
joydump: | index:  41 delta:   4 us data: 00001110    | 
joydump: | index:  42 delta:   9 us data: 00011110    | 
joydump: | index:  43 delta:   8 us data: 00001110    | 
joydump: | index:  44 delta:   9 us data: 00011110    | 
joydump: | index:  45 delta:   8 us data: 00001110    | 
joydump: | index:  46 delta:   7 us data: 00101110    | 
joydump: | index:  47 delta:   1 us data: 00111110    | 
joydump: | index:  48 delta:   8 us data: 00101110    | 
joydump: | index:  49 delta:   7 us data: 00001110    | 
joydump: | index:  50 delta:   1 us data: 00011110    | 
joydump: | index:  51 delta:   8 us data: 00001110    | 
joydump: | index:  52 delta:   9 us data: 00011110    | 
joydump: | index:  53 delta:   8 us data: 00001110    | 
joydump: | index:  54 delta:   7 us data: 00101110    | 
joydump: | index:  55 delta:   1 us data: 00111110    | 
joydump: | index:  56 delta:   8 us data: 00101110    | 
joydump: | index:  57 delta:   7 us data: 00001110    | 
joydump: | index:  58 delta:   1 us data: 00011110    | 
joydump: | index:  59 delta:   9 us data: 00001110    | 
joydump: | index:  60 delta:   8 us data: 00011110    | 
joydump: | index:  61 delta:   3 us data: 11011110    | 
joydump: | index:  62 delta:   5 us data: 11001110    | 
joydump: | index:  63 delta:   9 us data: 11011110    | 
joydump: | index:  64 delta:   8 us data: 11001110    | 
joydump: | index:  65 delta:   8 us data: 11011110    | 
joydump: | index:  66 delta:   9 us data: 11001110    | 
joydump: | index:  67 delta:   8 us data: 11011110    | 
joydump: | index:  68 delta:   8 us data: 11001110    | 
joydump: | index:  69 delta:   8 us data: 11011110    | 
joydump: | index:  70 delta:   8 us data: 11001110    | 
joydump: | index:  71 delta:   7 us data: 11101110    | 
joydump: | index:  72 delta:   2 us data: 11111110    | 
joydump: | index:  73 delta:   8 us data: 11101110    | 
joydump: | index:  74 delta:   8 us data: 11111110    | 
joydump: | index:  75 delta:   8 us data: 11101110    | 
joydump: | index:  76 delta:   8 us data: 11111110    | 
joydump: | index:  77 delta:   9 us data: 11101110    | 
joydump: | index:  78 delta:   8 us data: 11111110    | 
joydump: | index:  79 delta:   4 us data: 00111110    | 
joydump: | index:  80 delta:   4 us data: 00101110    | 
joydump: | index:  81 delta:   9 us data: 00111110    | 
joydump: | index:  82 delta:   8 us data: 00101110    | 
joydump: | index:  83 delta:   9 us data: 00111110    | 
joydump: | index:  84 delta:   8 us data: 00101110    | 
joydump: | index:  85 delta:   8 us data: 00111110    | 
joydump: | index:  86 delta:   8 us data: 00101110    | 
joydump: | index:  87 delta:   8 us data: 00111110    | 
joydump: | index:  88 delta:   9 us data: 00101110    | 
joydump: | index:  89 delta:   6 us data: 00001110    | 
joydump: | index:  90 delta:   2 us data: 00011110    | 
joydump: | index:  91 delta:   8 us data: 00001110    | 
joydump: | index:  92 delta:   8 us data: 00011110    | 
joydump: | index:  93 delta:   8 us data: 00001110    | 
joydump: | index:  94 delta:   9 us data: 00011110    | 
joydump: | index:  95 delta:   8 us data: 00001110    | 
joydump: | index:  96 delta:   8 us data: 00011110    | 
joydump: | index:  97 delta:   4 us data: 11011110    | 
joydump: | index:  98 delta:   4 us data: 11001110    | 
joydump: | index:  99 delta:   9 us data: 11011110    | 
joydump: | index: 100 delta:   8 us data: 11001110    | 
joydump: | index: 101 delta:   7 us data: 11101110    | 
joydump: | index: 102 delta:   2 us data: 11111110    | 
joydump: | index: 103 delta:   8 us data: 11101110    | 
joydump: | index: 104 delta:   7 us data: 11001110    | 
joydump: | index: 105 delta:   1 us data: 11011110    | 
joydump: | index: 106 delta:   8 us data: 11001110    | 
joydump: | index: 107 delta:   8 us data: 11011110    | 
joydump: | index: 108 delta:   9 us data: 11001110    | 
joydump: | index: 109 delta:   8 us data: 11011110    | 
joydump: | index: 110 delta:   8 us data: 11001110    | 
joydump: | index: 111 delta:   8 us data: 11011110    | 
joydump: | index: 112 delta:   9 us data: 11001110    | 
joydump: | index: 113 delta:   8 us data: 11011110    | 
joydump: | index: 114 delta:   8 us data: 11001110    | 
joydump: | index: 115 delta:   7 us data: 11101110    | 
joydump: | index: 116 delta:   1 us data: 11111110    | 
joydump: | index: 117 delta:  16 us data: 11101110    | 
joydump: | index: 118 delta: 400 us data: 11111110    | 
joydump: `-------------------- END -------------------' 
------------------------------------------------------------- 
 
My kernel is 2.6.9-gentoo-r6 
 
The gameport is on my Turtle Beach Santa Cruz sound card, using the cs46xx ALSA 
driver (kernel built it). 
 
 
I don't know what else I can do to help. And sorry for the large post. 
Comment 10 Nishanth Aravamudan 2005-10-30 16:36:27 UTC
Is this still a problem in current kernels (last posts seem to be from
2.6.8/2.6.9  last year!)? Vojtech, do you have any idea why these things are
happening, or is it, as you said, just hardware errors?

Thanks,
Nish
Comment 11 Christian Marillat 2006-02-05 09:14:02 UTC
No news for this bug ?

My sidewinder forcefeedback pro is still broken.

Christian
Comment 12 Natalie Protasevich 2007-09-08 18:54:16 UTC
Hmm, how about the latest kernel (2.6.23+). Let's refresh the data with the latest current kernel.


Thanks.
Comment 13 Natalie Protasevich 2008-03-03 16:25:59 UTC
This bug is two years old now, time to close it.
Please reopen if problem re-appears.

Note You need to log in before you can comment on or make changes to this bug.