Latest working kernel version: unknown Earliest failing kernel version: unknown Distribution: Debian lenny AMD64, Ubuntu Hardy Heron AMD64 (kernel 2.6.24) Hardware Environment: x86 PC, AMD64 processor, single core Software Environment: Problem Description: Analog joystick connected to game port produces false input events when CPU frequency changed. More details (with problem determination attempt) could be found at the following Debian bug report: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=+503029 It seems the couse of the problem is usage of rdtsc function for time measurement which is unreliable with recent CPUs which have such features like CPU frequency scaling. Steps to reproduce: 1. Activate CPU frequency scaling function in your system. 2. Connect your joystick to the game port. 3. Load analog kernel module. 4. Run a game with intensive CPU usage (most SDL games).
Hi Radek, Radek Warowny wrote: > I think the problem is located in analog kernel driver and is related > to usage of rdtscl() function to read time (in GET_TIME macro). This > function returns number of clock ticks, not real time. So when cpu [...] The driver hasn't changed much over time, so I suspect this still isn't fixed. If you are interested in fixing it, I think your best bet is writing a patch. If you make progress and then get stuck or want review, Vojtech Pavlik (the author) might still be reachable from <vojtech@suse.cz>; hopefully chapter 7 ("Time, Delays, and Deferred Work") of Linux Device Drivers at http://lwn.net/Kernel/LDD3/ would be helpful for getting vaguely acquainted with the facilities available. Sorry I have no better advice to offer.
I confirm the bug. Analog joystick is unplayable on SB Live! gameport. I must change the cpugouverneut to performance, before loading the emu10k1-gp and analog modules. Probably the MIDI events for the music instruments is also affected by this.