mirror of
				https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
				synced 2025-10-31 18:53:24 +00:00 
			
		
		
		
	 6a4f578745
			
		
	
	
		6a4f578745
		
	
	
	
	
		
			
			This patch fixes the initialisation and reset of the tas codec. The tas will often reset if the i2s clocks go away so it needs to be completely re-initialised when clocks come back. Also, this patch adds some code for DRC that will be exploited later to add a DRC control again, fixing a regression over snd-powermac. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
		
			
				
	
	
		
			56 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * Apple Onboard Audio driver for tas codec (header)
 | |
|  *
 | |
|  * Copyright 2006 Johannes Berg <johannes@sipsolutions.net>
 | |
|  *
 | |
|  * GPL v2, can be found in COPYING.
 | |
|  */
 | |
| #ifndef __SND_AOA_CODECTASH
 | |
| #define __SND_AOA_CODECTASH
 | |
| 
 | |
| #define TAS_REG_MCS	0x01	/* main control */
 | |
| #	define TAS_MCS_FASTLOAD		(1<<7)
 | |
| #	define TAS_MCS_SCLK64		(1<<6)
 | |
| #	define TAS_MCS_SPORT_MODE_MASK	(3<<4)
 | |
| #	define TAS_MCS_SPORT_MODE_I2S	(2<<4)
 | |
| #	define TAS_MCS_SPORT_MODE_RJ	(1<<4)
 | |
| #	define TAS_MCS_SPORT_MODE_LJ	(0<<4)
 | |
| #	define TAS_MCS_SPORT_WL_MASK	(3<<0)
 | |
| #	define TAS_MCS_SPORT_WL_16BIT	(0<<0)
 | |
| #	define TAS_MCS_SPORT_WL_18BIT	(1<<0)
 | |
| #	define TAS_MCS_SPORT_WL_20BIT	(2<<0)
 | |
| #	define TAS_MCS_SPORT_WL_24BIT	(3<<0)
 | |
| 
 | |
| #define TAS_REG_DRC	0x02
 | |
| #define TAS_REG_VOL	0x04
 | |
| #define TAS_REG_TREBLE	0x05
 | |
| #define TAS_REG_BASS	0x06
 | |
| #define TAS_REG_LMIX	0x07
 | |
| #define TAS_REG_RMIX	0x08
 | |
| 
 | |
| #define TAS_REG_ACR	0x40	/* analog control */
 | |
| #	define TAS_ACR_B_MONAUREAL	(1<<7)
 | |
| #	define TAS_ACR_B_MON_SEL_RIGHT	(1<<6)
 | |
| #	define TAS_ACR_DEEMPH_MASK	(3<<2)
 | |
| #	define TAS_ACR_DEEMPH_OFF	(0<<2)
 | |
| #	define TAS_ACR_DEEMPH_48KHz	(1<<2)
 | |
| #	define TAS_ACR_DEEMPH_44KHz	(2<<2)
 | |
| #	define TAS_ACR_INPUT_B		(1<<1)
 | |
| #	define TAS_ACR_ANALOG_PDOWN	(1<<0)
 | |
| 
 | |
| #define TAS_REG_MCS2	0x43	/* main control 2 */
 | |
| #	define TAS_MCS2_ALLPASS		(1<<1)
 | |
| 
 | |
| #define TAS_REG_LEFT_BIQUAD6	0x10
 | |
| #define TAS_REG_RIGHT_BIQUAD6	0x19
 | |
| 
 | |
| #define TAS_REG_LEFT_LOUDNESS		0x21
 | |
| #define TAS_REG_RIGHT_LOUDNESS		0x22
 | |
| #define TAS_REG_LEFT_LOUDNESS_GAIN	0x23
 | |
| #define TAS_REG_RIGHT_LOUDNESS_GAIN	0x24
 | |
| 
 | |
| #define TAS3001_DRC_MAX		0x5f
 | |
| #define TAS3004_DRC_MAX		0xef
 | |
| 
 | |
| #endif /* __SND_AOA_CODECTASH */
 |