Preface.

This is a new low-level driver to support analog joystick attached to
Crystal SoundFusion CS4610/CS4612/CS4615. This code is based upon 
Vortex/Solo drivers as an example of decoration style, and ALSA
0.5.8a kernel drivers as an chipset documentation and samples.

This version does not have cooked mode support; the basic code 
is present here, but have not tested completely. The button analysis 
is completed in this mode, but the axis movement is not. 

Raw mode works fine with analog joystick front-end driver and cs461x
driver as a backend. I've tested this driver with CS4610, 4-axis and 
4-button joystick; I mean the jstest utility. Also I've tried to
play in xracer game using joystick, and the result is better than
keyboard only mode.

The sensitivity and calibrate quality have not been tested; the two
reasons are performed: the same hardware cannot work under Win95 (blue 
screen in VJOYD); I have no documentation on my chip; and the existing 
behavior in my case was not raised the requirement of joystick calibration. 
So the driver have no code to perform hardware related calibration.

The patch contains minor changes of Config.in and Makefile files. All
needed code have been moved to one separate file cs461x.c like ns558.c
This driver have the basic support for PCI devices only; there is no
ISA or PnP ISA cards supported. AFAIK the ns558 have support for Crystal 
ISA and PnP ISA series.

The driver works witn ALSA drivers simultaneously. For exmple, the xracer
uses joystick as input device and PCM device as sound output in one time.
There are no sound or input collisions detected. The source code have
comments about them; but I've found the joystick can be initialized 
separately of ALSA modules. So, you canm use only one joystick driver
without ALSA drivers. The ALSA drivers are not needed to compile or
run this driver.

There are no debug information print have been placed in source, and no
specific options required to work this driver. The found chipset parameters
are printed via printk(KERN_INFO "..."), see the /var/log/messages to
inspect cs461x: prefixed messages to determine possible card detection 
errors.

Regards,
Viktor
