linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / sound / pci / au88x0 / au88x0_a3d.c
index 649849e..d215f39 100644 (file)
@@ -593,23 +593,24 @@ static int Vort3DRend_Initialize(vortex_t * v, unsigned short mode)
 static int vortex_a3d_register_controls(vortex_t * vortex);
 static void vortex_a3d_unregister_controls(vortex_t * vortex);
 /* A3D base support init/shudown */
-static void __devinit vortex_Vort3D_enable(vortex_t * v)
+static void vortex_Vort3D(vortex_t * v, int en)
 {
        int i;
-
-       Vort3DRend_Initialize(v, XT_HEADPHONE);
-       for (i = 0; i < NR_A3D; i++) {
-               vortex_A3dSourceHw_Initialize(v, i % 4, i >> 2);
-               a3dsrc_ZeroStateA3D(&(v->a3d[0]));
+       if (en) {
+               Vort3DRend_Initialize(v, XT_HEADPHONE);
+               for (i = 0; i < NR_A3D; i++) {
+                       vortex_A3dSourceHw_Initialize(v, i % 4, i >> 2);
+                       a3dsrc_ZeroStateA3D(&(v->a3d[0]));
+               }
+       } else {
+               vortex_XtalkHw_Disable(v);
        }
        /* Register ALSA controls */
-       vortex_a3d_register_controls(v);
-}
-
-static void vortex_Vort3D_disable(vortex_t * v)
-{
-       vortex_XtalkHw_Disable(v);
-       vortex_a3d_unregister_controls(v);
+       if (en) {
+               vortex_a3d_register_controls(v);
+       } else {
+               vortex_a3d_unregister_controls(v);
+       }
 }
 
 /* Make A3D subsystem connections. */
@@ -854,7 +855,7 @@ static struct snd_kcontrol_new vortex_a3d_kcontrol __devinitdata = {
 };
 
 /* Control (un)registration. */
-static int __devinit vortex_a3d_register_controls(vortex_t * vortex)
+static int vortex_a3d_register_controls(vortex_t * vortex)
 {
        struct snd_kcontrol *kcontrol;
        int err, i;