To install SB16 PnP support capability:
1) copy sound_pnp.c to /usr/src/linux/drivers/sound/sound_pnp.c
2) alter /usr/src/linux/drivers/sound/soundcard.c in the following way:

Declare the following at the top of the file:

  extern void init_sound_pnp(void);
  extern void cleanup_sound_pnp(void);
  extern int audio_driver_lock(int inconfig);
  extern void audio_driver_unlock(int inconfig);

In function soundcard_init(), you want:

  init_sound_pnp();
  sndtable_init (0);		/* Initialize call tables and
				   * detect cards */

At the end of function cleanup_module(), you want:

  cleanup_sound_pnp();

In function sound_open(...), you want:

  if ((retval = audio_driver_lock(0)) < 0)
    return retval;

  if ((retval = sound_open_sw (dev, &tmp_file)) < 0) {
    audio_driver_unlock(0);
    return retval;
  }

In function sound_release(), you want:

  sound_release_sw (dev, &files[dev]);
  audio_driver_unlock(0);

3) Compile as module
4) load module and look the configuration in /dev/sndstat
5) remove the module, reconfigure the card and reload the module.
   /dev/sndstat should show the changed configuration.
