18c2ecf20Sopenharmony_ciCrystal SoundFusion CS4610/CS4612/CS461 joystick 28c2ecf20Sopenharmony_ci================================================ 38c2ecf20Sopenharmony_ci 48c2ecf20Sopenharmony_ciThis is a new low-level driver to support analog joystick attached to 58c2ecf20Sopenharmony_ciCrystal SoundFusion CS4610/CS4612/CS4615. This code is based upon 68c2ecf20Sopenharmony_ciVortex/Solo drivers as an example of decoration style, and ALSA 78c2ecf20Sopenharmony_ci0.5.8a kernel drivers as an chipset documentation and samples. 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_ciThis version does not have cooked mode support; the basic code 108c2ecf20Sopenharmony_ciis present here, but have not tested completely. The button analysis 118c2ecf20Sopenharmony_ciis completed in this mode, but the axis movement is not. 128c2ecf20Sopenharmony_ci 138c2ecf20Sopenharmony_ciRaw mode works fine with analog joystick front-end driver and cs461x 148c2ecf20Sopenharmony_cidriver as a backend. I've tested this driver with CS4610, 4-axis and 158c2ecf20Sopenharmony_ci4-button joystick; I mean the jstest utility. Also I've tried to 168c2ecf20Sopenharmony_ciplay in xracer game using joystick, and the result is better than 178c2ecf20Sopenharmony_cikeyboard only mode. 188c2ecf20Sopenharmony_ci 198c2ecf20Sopenharmony_ciThe sensitivity and calibrate quality have not been tested; the two 208c2ecf20Sopenharmony_cireasons are performed: the same hardware cannot work under Win95 (blue 218c2ecf20Sopenharmony_ciscreen in VJOYD); I have no documentation on my chip; and the existing 228c2ecf20Sopenharmony_cibehavior in my case was not raised the requirement of joystick calibration. 238c2ecf20Sopenharmony_ciSo the driver have no code to perform hardware related calibration. 248c2ecf20Sopenharmony_ci 258c2ecf20Sopenharmony_ciThis driver have the basic support for PCI devices only; there is no 268c2ecf20Sopenharmony_ciISA or PnP ISA cards supported. 278c2ecf20Sopenharmony_ci 288c2ecf20Sopenharmony_ciThe driver works with ALSA drivers simultaneously. For example, the xracer 298c2ecf20Sopenharmony_ciuses joystick as input device and PCM device as sound output in one time. 308c2ecf20Sopenharmony_ciThere are no sound or input collisions detected. The source code have 318c2ecf20Sopenharmony_cicomments about them; but I've found the joystick can be initialized 328c2ecf20Sopenharmony_ciseparately of ALSA modules. So, you can use only one joystick driver 338c2ecf20Sopenharmony_ciwithout ALSA drivers. The ALSA drivers are not needed to compile or 348c2ecf20Sopenharmony_cirun this driver. 358c2ecf20Sopenharmony_ci 368c2ecf20Sopenharmony_ciThere are no debug information print have been placed in source, and no 378c2ecf20Sopenharmony_cispecific options required to work this driver. The found chipset parameters 388c2ecf20Sopenharmony_ciare printed via printk(KERN_INFO "..."), see the /var/log/messages to 398c2ecf20Sopenharmony_ciinspect cs461x: prefixed messages to determine possible card detection 408c2ecf20Sopenharmony_cierrors. 418c2ecf20Sopenharmony_ci 428c2ecf20Sopenharmony_ciRegards, 438c2ecf20Sopenharmony_ciViktor 44