xref: /openbmc/linux/sound/pci/au88x0/au88x0_xtalk.h (revision 005fdd53)
1005fdd53SThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-or-later */
21da177e4SLinus Torvalds /***************************************************************************
31da177e4SLinus Torvalds  *            au88x0_cxtalk.h
41da177e4SLinus Torvalds  *
51da177e4SLinus Torvalds  *  Wed Nov 19 19:07:17 2003
61da177e4SLinus Torvalds  *  Copyright  2003  mjander
71da177e4SLinus Torvalds  *  mjander@users.sourceforge.org
81da177e4SLinus Torvalds  ****************************************************************************/
91da177e4SLinus Torvalds 
101da177e4SLinus Torvalds /*
111da177e4SLinus Torvalds  */
121da177e4SLinus Torvalds 
131da177e4SLinus Torvalds /* The crosstalk canceler supports 5 stereo input channels. The result is
141da177e4SLinus Torvalds    available at one single output route pair (stereo). */
151da177e4SLinus Torvalds 
161da177e4SLinus Torvalds #ifndef _AU88X0_CXTALK_H
171da177e4SLinus Torvalds #define _AU88X0_CXTALK_H
181da177e4SLinus Torvalds 
191da177e4SLinus Torvalds #include "au88x0.h"
201da177e4SLinus Torvalds 
211da177e4SLinus Torvalds #define XTDLINE_SZ 32
221da177e4SLinus Torvalds #define XTGAINS_SZ 10
231da177e4SLinus Torvalds #define XTINST_SZ 4
241da177e4SLinus Torvalds 
251da177e4SLinus Torvalds #define XT_HEADPHONE	1
261da177e4SLinus Torvalds #define XT_SPEAKER0		2
271da177e4SLinus Torvalds #define XT_SPEAKER1		3
281da177e4SLinus Torvalds #define XT_DIAMOND		4
291da177e4SLinus Torvalds 
3097c67b65STakashi Iwai typedef u32 xtalk_dline_t[XTDLINE_SZ];
3197c67b65STakashi Iwai typedef u16 xtalk_gains_t[XTGAINS_SZ];
3297c67b65STakashi Iwai typedef u16 xtalk_instate_t[XTINST_SZ];
3397c67b65STakashi Iwai typedef u16 xtalk_coefs_t[5][5];
3497c67b65STakashi Iwai typedef u16 xtalk_state_t[5][4];
351da177e4SLinus Torvalds 
361da177e4SLinus Torvalds static void vortex_XtalkHw_SetGains(vortex_t * vortex,
371da177e4SLinus Torvalds 				    xtalk_gains_t const gains);
381da177e4SLinus Torvalds static void vortex_XtalkHw_SetGainsAllChan(vortex_t * vortex);
3997c67b65STakashi Iwai static void vortex_XtalkHw_SetSampleRate(vortex_t * vortex, u32 sr);
401da177e4SLinus Torvalds static void vortex_XtalkHw_ProgramPipe(vortex_t * vortex);
411da177e4SLinus Torvalds static void vortex_XtalkHw_ProgramPipe(vortex_t * vortex);
421da177e4SLinus Torvalds static void vortex_XtalkHw_ProgramXtalkWide(vortex_t * vortex);
431da177e4SLinus Torvalds static void vortex_XtalkHw_ProgramXtalkNarrow(vortex_t * vortex);
441da177e4SLinus Torvalds static void vortex_XtalkHw_ProgramDiamondXtalk(vortex_t * vortex);
451da177e4SLinus Torvalds static void vortex_XtalkHw_Enable(vortex_t * vortex);
461da177e4SLinus Torvalds static void vortex_XtalkHw_Disable(vortex_t * vortex);
471da177e4SLinus Torvalds static void vortex_XtalkHw_init(vortex_t * vortex);
481da177e4SLinus Torvalds 
491da177e4SLinus Torvalds #endif				/* _AU88X0_CXTALK_H */
50