Bug 16408

Summary: Psx parallel joystick does not respond after upgrading kernel
Product: Drivers Reporter: Eugene Yudin (Eugene.Yudin)
Component: Input DevicesAssignee: Dmitry Torokhov (dmitry.torokhov)
Status: CLOSED CODE_FIX    
Severity: normal CC: dmitry.torokhov, Eugene.Yudin, maciej.rutecki, rjw
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 2.6.34 Subsystem:
Regression: Yes Bisected commit-id:
Bug Depends on:    
Bug Blocks: 15310    
Attachments: Reference correct pad in PSX mode

Description Eugene Yudin 2010-07-18 06:06:10 UTC
Full description:
Psx parallel joystick after upgrading the kernel from version 2.6.33 to 2.6.34 ceased to respond to pressing. No error messages are not displayed in reports. Rolling back the kernel returns the joystick to work.

Joystick collected under the scheme from the kernel documentation.

The report in dmesg, however, remains the same:
input: PSX controller as /devices/virtual/input/input4

To start the module gamecon I use this command:
# modprobe gamecon map=0,7 psx_delay=3

To reproduce this error enough to do the following:
1. # modprobe gamecon map=0,7 psx_delay=3
2. $ cat /dev/input/js0
3. Output of cat:
�����������������������������   ���                                                                                                          
���                                                                                                                                          
   ������������������������ 
This conclusion does not change when I click on any button.

Kernel version:
Linux version 2.6.34-ARCH (tobias@T-POWA-LX) (gcc version 4.5.0 20100610 (prerelease) (GCC) ) #1 SMP PREEMPT Mon Jul 5 21:03:38 UTC 2010

Output of ver_linux:                                                                                          
Linux arch 2.6.34-ARCH #1 SMP PREEMPT Mon Jul 5 21:03:38 UTC 2010 i686 AMD Athlon(tm) XP 2800+ AuthenticAMD GNU/Linux                                         
                                                                                                                                                              
Gnu C                  4.5.0                                                                                                                                  
Gnu make               3.81                                                                                                                                   
binutils               2.20.1.20100521                                                                                                                        
util-linux             2.18                                                                                                                                   
mount                  support                                                                                                                                
module-init-tools      3.11.1                                                                                                                                 
e2fsprogs              1.41.12                                                                                                                                
jfsutils               1.1.14                                                                                                                                 
reiserfsprogs          3.6.21                                                                                                                                 
xfsprogs               3.1.2                                                                                                                                  
pcmciautils            017                                                                                                                                    
PPP                    2.4.5                                                                                                                                  
Linux C Library        2.12                                                                                                                                   
Dynamic linker (ldd)   2.12                                                                                                                                   
Linux C++ Library      6.0.14                                                                                                                                 
Procps                 3.2.8                                                                                                                                  
Net-tools              1.60                                                                                                                                   
Kbd                    1.15.2                                                                                                                                 
Sh-utils               8.5                                                                                                                                    
wireless-tools         29                                                                                                                                     
Modules Loaded         joydev gamecon ff_memless fuse w83627hf hwmon_vid lirc_serial lirc_dev nfs lockd fscache nfs_acl auth_rpcgss sunrpc ipv6 hid_a4tech usbhid hid snd_seq_dummy snd_seq_oss snd_wavefront snd_seq_midi_event snd_seq pl2303 snd_cs4236 snd_wss_lib snd_opl3_lib snd_hwdep snd_pcm_oss snd_ca0106 snd_ac97_codec ac97_bus snd_pcm usbserial snd_timer snd_mixer_oss snd_page_alloc nvidia fan snd_mpu401 snd_mpu401_uart snd_rawmidi snd_seq_device snd soundcore ohci_hcd analog ppdev nvidia_agp i2c_nforce2 parport_pc ns558 gameport parport ehci_hcd shpchp agpgart i2c_core usbcore sg thermal pci_hotplug evdev button processor forcedeth rtc_cmos rtc_core rtc_lib ext4 mbcache jbd2 crc16 sr_mod sd_mod cdrom pata_acpi pata_amd ata_generic libata scsi_mod 

Modules:
joydev 7503 0 - Live 0xf80d6000                                                                                                              
gamecon 5895 0 - Live 0xf80bf000                                                                                                             
ff_memless 3935 1 gamecon, Live 0xf8053000                                                                                                   
fuse 51934 3 - Live 0xf8165000                                                                                                               
w83627hf 16048 0 - Live 0xf964f000                                                                                                           
hwmon_vid 2000 1 w83627hf, Live 0xf963f000                                                                                                   
lirc_serial 8146 1 - Live 0xf9633000                                                                                                         
lirc_dev 8334 3 lirc_serial, Live 0xf9624000                                                                                                 
nfs 253248 1 - Live 0xf95cf000                                                                                                               
lockd 58536 1 nfs, Live 0xf9564000                                                                                                           
fscache 35391 1 nfs, Live 0xf953c000                                                                                                         
nfs_acl 1907 1 nfs, Live 0xf9526000                                                                                                          
auth_rpcgss 30625 1 nfs, Live 0xf9514000                                                                                                     
sunrpc 160408 16 nfs,lockd,nfs_acl,auth_rpcgss, Live 0xf94d0000                                                                              
ipv6 236510 22 - Live 0xf944f000                                                                                                             
hid_a4tech 1752 0 - Live 0xf841e000                                                                                                          
usbhid 32710 0 - Live 0xf843f000                                                                                                             
hid 60015 2 hid_a4tech,usbhid, Live 0xf840d000                                                                                               
snd_seq_dummy 1071 0 - Live 0xf8390000                                                                                                       
snd_seq_oss 25016 0 - Live 0xf83f8000                                                                                                        
snd_wavefront 28397 0 - Live 0xf83d0000                                                                                                      
snd_seq_midi_event 4488 1 snd_seq_oss, Live 0xf83be000                                                                                       
snd_seq 41656 5 snd_seq_dummy,snd_seq_oss,snd_seq_midi_event, Live 0xf839b000                                                                
pl2303 14722 0 - Live 0xf8365000                                                                                                             
snd_cs4236 22220 0 - Live 0xf834e000                                                                                                         
snd_wss_lib 17636 2 snd_wavefront,snd_cs4236, Live 0xf82d7000                                                                                
snd_opl3_lib 7194 2 snd_wavefront,snd_cs4236, Live 0xf829f000                                                                                
snd_hwdep 4756 2 snd_wavefront,snd_opl3_lib, Live 0xf8234000                                                                                 
snd_pcm_oss 33474 0 - Live 0xf828d000                                                                                                        
snd_ca0106 28330 3 - Live 0xf823c000                                                                                                         
snd_ac97_codec 87773 1 snd_ca0106, Live 0xf8336000                                                                                           
ac97_bus 754 1 snd_ac97_codec, Live 0xf817d000                                                                                               
snd_pcm 58460 6 snd_cs4236,snd_wss_lib,snd_pcm_oss,snd_ca0106,snd_ac97_codec, Live 0xf8215000                                                
usbserial 26886 1 pl2303, Live 0xf81b0000                                                                                                    
snd_timer 15601 5 snd_seq,snd_wss_lib,snd_opl3_lib,snd_pcm, Live 0xf8173000                                                                  
snd_mixer_oss 14328 1 snd_pcm_oss, Live 0xf813c000                                                                                           
snd_page_alloc 5941 3 snd_wss_lib,snd_ca0106,snd_pcm, Live 0xf8135000                                                                        
nvidia 7035787 24 - Live 0xf8c14000 (P)                                                                                                      
fan 2570 0 - Live 0xf811f000                                                                                                                 
snd_mpu401 3832 0 - Live 0xf810e000                                                                                                          
snd_mpu401_uart 4919 3 snd_wavefront,snd_cs4236,snd_mpu401, Live 0xf80f9000                                                                  
snd_rawmidi 15247 3 snd_wavefront,snd_ca0106,snd_mpu401_uart, Live 0xf80df000                                                                
snd_seq_device 4353 5 snd_seq_dummy,snd_seq_oss,snd_seq,snd_opl3_lib,snd_rawmidi, Live 0xf80b9000                                            
snd 42602 21 snd_seq_oss,snd_wavefront,snd_seq,snd_cs4236,snd_wss_lib,snd_opl3_lib,snd_hwdep,snd_pcm_oss,snd_ca0106,snd_ac97_codec,snd_pcm,snd_timer,snd_mixer_oss,snd_mpu401,snd_mpu401_uart,snd_rawmidi,snd_seq_device, Live 0xf8072000                                                 
soundcore 5017 1 snd, Live 0xf8058000                                                                                                        
ohci_hcd 19441 0 - Live 0xf8048000                                                                                                           
analog 7843 0 - Live 0xf8021000                                                                                                              
ppdev 4854 0 - Live 0xf8014000                                                                                                               
nvidia_agp 4136 1 - Live 0xf848a000                                                                                                          
i2c_nforce2 4784 0 - Live 0xf847e000                                                                                                         
parport_pc 27863 1 - Live 0xf846b000                                                                                                         
ns558 1967 0 - Live 0xf844a000                                                                                                               
gameport 7165 3 analog,ns558, Live 0xf8437000                                                                                                
parport 25403 3 gamecon,ppdev,parport_pc, Live 0xf8420000                                                                                    
ehci_hcd 31918 0 - Live 0xf83d9000                                                                                                           
shpchp 25563 0 - Live 0xf8392000                                                                                                             
agpgart 23120 2 nvidia,nvidia_agp, Live 0xf836d000                                                                                           
i2c_core 15144 2 nvidia,i2c_nforce2, Live 0xf8356000                                                                                         
usbcore 120469 6 usbhid,pl2303,usbserial,ohci_hcd,ehci_hcd, Live 0xf8316000                                                                  
sg 20760 0 - Live 0xf82dd000                                                                                                                 
thermal 9746 0 - Live 0xf82c9000                                                                                                             
pci_hotplug 21691 1 shpchp, Live 0xf82b6000                                                                                                  
evdev 6780 7 - Live 0xf82a3000                                                                                                               
button 3738 0 - Live 0xf8297000                                                                                                              
processor 25232 0 - Live 0xf8284000                                                                                                          
forcedeth 47387 0 - Live 0xf8261000                                                                                                          
rtc_cmos 7578 0 - Live 0xf8246000                                                                                                            
rtc_core 11823 1 rtc_cmos, Live 0xf8237000                                                                                                   
rtc_lib 1486 1 rtc_core, Live 0xf8229000                                                                                                     
ext4 298675 2 - Live 0xf81ca000                                                                                                              
mbcache 4282 1 ext4, Live 0xf8161000                                                                                                         
jbd2 63017 1 ext4, Live 0xf8142000                                                                                                           
crc16 1045 1 ext4, Live 0xf8122000                                                                                                           
sr_mod 13129 0 - Live 0xf8115000                                                                                                             
sd_mod 25507 4 - Live 0xf8100000                                                                                                             
cdrom 31337 1 sr_mod, Live 0xf80e6000                                                                                                        
pata_acpi 2300 0 - Live 0xf80d3000                                                                                                           
pata_amd 7804 3 - Live 0xf80c8000                                                                                                            
ata_generic 2175 0 - Live 0xf80bc000                                                                                                         
libata 138839 3 pata_acpi,pata_amd,ata_generic, Live 0xf8087000                                                                              
scsi_mod 79372 4 sg,sr_mod,sd_mod,libata, Live 0xf8032000

Ioports:
0000-001f : dma1                                                                                                                             
0020-0021 : pic1                                                                                                                             
0040-0043 : timer0                                                                                                                           
0050-0053 : timer1                                                                                                                           
0060-0060 : keyboard                                                                                                                         
0064-0064 : keyboard                                                                                                                         
0070-0073 : rtc0                                                                                                                             
0080-008f : dma page reg                                                                                                                     
00a0-00a1 : pic2                                                                                                                             
00c0-00df : dma2                                                                                                                             
00f0-00ff : fpu                                                                                                                              
0170-0177 : 0000:00:09.0                                                                                                                     
  0170-0177 : pata_amd                                                                                                                       
01f0-01f7 : 0000:00:09.0                                                                                                                     
  01f0-01f7 : pata_amd                                                                                                                       
0200-0207 : ns558-pnp                                                                                                                        
0294-0297 : pnp 00:04                                                                                                                        
  0295-0296 : w83627hf                                                                                                                       
    0295-0296 : w83627hf                                                                                                                     
02f8-02ff : serial                                                                                                                           
0330-0331 : MPU401 UART                                                                                                                      
0376-0376 : 0000:00:09.0                                                                                                                     
  0376-0376 : pata_amd                                                                                                                       
0378-037a : parport0                                                                                                                         
037b-037f : parport0                                                                                                                         
03c0-03df : vga+                                                                                                                             
03f6-03f6 : 0000:00:09.0                                                                                                                     
  03f6-03f6 : pata_amd                                                                                                                       
03f8-03ff : lirc_serial                                                                                                                      
04d0-04d1 : pnp 00:04                                                                                                                        
04e0-04e7 : pnp 00:04                                                                                                                        
0a78-0a7b : pnp 00:04                                                                                                                        
0b78-0b7b : pnp 00:04                                                                                                                        
0bbc-0bbf : pnp 00:04                                                                                                                        
0cf8-0cff : PCI conf1                                                                                                                        
0e78-0e7b : pnp 00:04                                                                                                                        
0f78-0f7b : pnp 00:04                                                                                                                        
0fbc-0fbf : pnp 00:04                                                                                                                        
4000-407f : pnp 00:00                                                                                                                        
  4000-4003 : ACPI PM1a_EVT_BLK                                                                                                              
  4004-4005 : ACPI PM1a_CNT_BLK                                                                                                              
  4008-400b : ACPI PM_TMR                                                                                                                    
  4020-4027 : ACPI GPE0_BLK                                                                                                                  
4080-40ff : pnp 00:00                                                                                                                        
4200-427f : pnp 00:00                                                                                                                        
4280-42ff : pnp 00:00                                                                                                                        
4400-447f : pnp 00:00                                                                                                                        
4480-44ff : pnp 00:00                                                                                                                        
  44a0-44af : ACPI GPE1_BLK                                                                                                                  
5000-503f : pnp 00:01                                                                                                                        
  5000-503f : nForce2_smbus                                                                                                                  
5040-507f : nForce2_smbus                                                                                                                    
d000-dfff : PCI Bus 0000:01                                                                                                                  
  d000-d01f : 0000:01:09.0                                                                                                                   
    d000-d01f : snd_ca0106                                                                                                                   
e000-e007 : 0000:00:04.0                                                                                                                     
  e000-e007 : forcedeth                                                                                                                      
ec00-ec1f : 0000:00:01.1                                                                                                                     
f000-f00f : 0000:00:09.0                                                                                                                     
  f000-f00f : pata_amd

Iomem:
00000000-0000ffff : reserved                                                                                                                 
00010000-0009ffff : System RAM                                                                                                               
000a0000-000bffff : Video RAM area                                                                                                           
000c0000-000cf7ff : Video ROM                                                                                                                
000d0000-000d17ff : Adapter ROM                                                                                                              
000d1800-000d3fff : pnp 00:02                                                                                                                
000f0000-000fffff : reserved                                                                                                                 
  000f0000-000fffff : System ROM                                                                                                             
00100000-3ffeffff : System RAM                                                                                                               
  01000000-012dc8fb : Kernel code                                                                                                            
  012dc8fc-0140adbf : Kernel data                                                                                                            
  01474000-0155ad83 : Kernel bss                                                                                                             
3fff0000-3fff2fff : ACPI Non-volatile Storage                                                                                                
3fff3000-3fffffff : ACPI Tables                                                                                                              
d0000000-dfffffff : PCI Bus 0000:02                                                                                                          
  d0000000-dfffffff : 0000:02:00.0                                                                                                           
e0000000-e7ffffff : 0000:00:00.0                                                                                                             
e8000000-e9ffffff : PCI Bus 0000:02                                                                                                          
  e8000000-e8ffffff : 0000:02:00.0                                                                                                           
    e8000000-e8ffffff : nvidia                                                                                                               
  e9000000-e901ffff : 0000:02:00.0                                                                                                           
ea000000-ea0000ff : 0000:00:02.2                                                                                                             
  ea000000-ea0000ff : ehci_hcd                                                                                                               
ea001000-ea001fff : 0000:00:04.0                                                                                                             
  ea001000-ea001fff : forcedeth                                                                                                              
ea003000-ea003fff : 0000:00:02.0                                                                                                             
  ea003000-ea003fff : ohci_hcd                                                                                                               
ea004000-ea004fff : 0000:00:02.1                                                                                                             
  ea004000-ea004fff : ohci_hcd                                                                                                               
fec00000-fec00fff : reserved                                                                                                                 
  fec00000-fec003ff : IOAPIC 0                                                                                                               
fee00000-fee00fff : Local APIC                                                                                                               
  fee00000-fee00fff : reserved                                                                                                               
    fee00000-fee00fff : pnp 00:02                                                                                                            
ffff0000-ffffffff : reserved                                                                                                                 
  ffff0000-ffffffff : pnp 00:02
Comment 1 Dmitry Torokhov 2010-07-19 05:15:34 UTC
Could you please try reverting the following commits and tell me which one broke your device:

5bc923c Input: gamecon - fix off by one range check
a1e1274 Input: gamecon - use pr_err() and friends
af930d6 Input: gamecon - constify some of the setup structures
0995174 Input: gamecon - simplify pad type handling
315543f Input: gamecon - simplify coordinate calculation for PSX
d38fcb9 Input: gamecon - fix some formatting issues

Thanks!
Comment 2 Eugene Yudin 2010-07-19 08:00:59 UTC
Thank you for your reply!

Joystick stops working after applying the patch "simplify pad type handling".
Comment 3 Dmitry Torokhov 2010-07-20 00:29:00 UTC
Created attachment 27163 [details]
Reference correct pad in PSX mode

Thanks for determining the culprit Eugene. Could you please try this patch and let me know if it fixes the issue.
Comment 4 Eugene Yudin 2010-07-20 05:55:31 UTC
Thanks for the patch!
It completely fixes the problem.
Everything work like a charm!
Comment 5 Rafael J. Wysocki 2010-07-22 21:45:48 UTC
Handled-By : Dmitry Torokhov <dmitry.torokhov@gmail.com>
Patch : https://bugzilla.kernel.org/attachment.cgi?id=27163
Comment 6 Rafael J. Wysocki 2010-07-23 11:37:28 UTC
Fixed by commit c25f7b763cc35a249232ce612a36a811b0e263f9 .