X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sound%2Fpci%2Fau88x0%2Fau88x0_a3d.c;h=d215f393ea6460deaf620f9521cff016b21bb766;hb=9464c7cf61b9433057924c36e6e02f303a00e768;hp=649849e540d3893484e61b3c6aa6c6dcb50a22e9;hpb=41689045f6a3cbe0550e1d34e9cc20d2e8c432ba;p=linux-2.6.git diff --git a/sound/pci/au88x0/au88x0_a3d.c b/sound/pci/au88x0/au88x0_a3d.c index 649849e54..d215f393e 100644 --- a/sound/pci/au88x0/au88x0_a3d.c +++ b/sound/pci/au88x0/au88x0_a3d.c @@ -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;