xref: /openbmc/linux/sound/pci/au88x0/au88x0_xtalk.h (revision 1da177e4)
11da177e4SLinus Torvalds /***************************************************************************
21da177e4SLinus Torvalds  *            au88x0_cxtalk.h
31da177e4SLinus Torvalds  *
41da177e4SLinus Torvalds  *  Wed Nov 19 19:07:17 2003
51da177e4SLinus Torvalds  *  Copyright  2003  mjander
61da177e4SLinus Torvalds  *  mjander@users.sourceforge.org
71da177e4SLinus Torvalds  ****************************************************************************/
81da177e4SLinus Torvalds 
91da177e4SLinus Torvalds /*
101da177e4SLinus Torvalds  *  This program is free software; you can redistribute it and/or modify
111da177e4SLinus Torvalds  *  it under the terms of the GNU General Public License as published by
121da177e4SLinus Torvalds  *  the Free Software Foundation; either version 2 of the License, or
131da177e4SLinus Torvalds  *  (at your option) any later version.
141da177e4SLinus Torvalds  *
151da177e4SLinus Torvalds  *  This program is distributed in the hope that it will be useful,
161da177e4SLinus Torvalds  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
171da177e4SLinus Torvalds  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
181da177e4SLinus Torvalds  *  GNU Library General Public License for more details.
191da177e4SLinus Torvalds  *
201da177e4SLinus Torvalds  *  You should have received a copy of the GNU General Public License
211da177e4SLinus Torvalds  *  along with this program; if not, write to the Free Software
221da177e4SLinus Torvalds  *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
231da177e4SLinus Torvalds  */
241da177e4SLinus Torvalds 
251da177e4SLinus Torvalds /* The crosstalk canceler supports 5 stereo input channels. The result is
261da177e4SLinus Torvalds    available at one single output route pair (stereo). */
271da177e4SLinus Torvalds 
281da177e4SLinus Torvalds #ifndef _AU88X0_CXTALK_H
291da177e4SLinus Torvalds #define _AU88X0_CXTALK_H
301da177e4SLinus Torvalds 
311da177e4SLinus Torvalds #include "au88x0.h"
321da177e4SLinus Torvalds 
331da177e4SLinus Torvalds #define XTDLINE_SZ 32
341da177e4SLinus Torvalds #define XTGAINS_SZ 10
351da177e4SLinus Torvalds #define XTINST_SZ 4
361da177e4SLinus Torvalds 
371da177e4SLinus Torvalds #define XT_HEADPHONE	1
381da177e4SLinus Torvalds #define XT_SPEAKER0		2
391da177e4SLinus Torvalds #define XT_SPEAKER1		3
401da177e4SLinus Torvalds #define XT_DIAMOND		4
411da177e4SLinus Torvalds 
421da177e4SLinus Torvalds typedef long xtalk_dline_t[XTDLINE_SZ];
431da177e4SLinus Torvalds typedef short xtalk_gains_t[XTGAINS_SZ];
441da177e4SLinus Torvalds typedef short xtalk_instate_t[XTINST_SZ];
451da177e4SLinus Torvalds typedef short xtalk_coefs_t[5][5];
461da177e4SLinus Torvalds typedef short xtalk_state_t[5][4];
471da177e4SLinus Torvalds 
481da177e4SLinus Torvalds static void vortex_XtalkHw_SetGains(vortex_t * vortex,
491da177e4SLinus Torvalds 				    xtalk_gains_t const gains);
501da177e4SLinus Torvalds static void vortex_XtalkHw_SetGainsAllChan(vortex_t * vortex);
511da177e4SLinus Torvalds static void vortex_XtalkHw_SetSampleRate(vortex_t * vortex, int sr);
521da177e4SLinus Torvalds static void vortex_XtalkHw_ProgramPipe(vortex_t * vortex);
531da177e4SLinus Torvalds static void vortex_XtalkHw_ProgramPipe(vortex_t * vortex);
541da177e4SLinus Torvalds static void vortex_XtalkHw_ProgramXtalkWide(vortex_t * vortex);
551da177e4SLinus Torvalds static void vortex_XtalkHw_ProgramXtalkNarrow(vortex_t * vortex);
561da177e4SLinus Torvalds static void vortex_XtalkHw_ProgramDiamondXtalk(vortex_t * vortex);
571da177e4SLinus Torvalds static void vortex_XtalkHw_Enable(vortex_t * vortex);
581da177e4SLinus Torvalds static void vortex_XtalkHw_Disable(vortex_t * vortex);
591da177e4SLinus Torvalds static void vortex_XtalkHw_init(vortex_t * vortex);
601da177e4SLinus Torvalds 
611da177e4SLinus Torvalds #endif				/* _AU88X0_CXTALK_H */
62