device/azalia_device.h: Rewrite verb macros
Introduce the `AZALIA_VERB_12B` macro to encode HDA commands with 12-bit verb identifiers and rewrite existing helper macros to use it. Tested with BUILD_TIMELESS=1, Purism Librem Mini remains identical. Change-Id: I5b2418f6d2faf6d5ab424949d18784ca6d519799 Signed-off-by: Angel Pons <th3fanbus@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/58901 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Arthur Heymans <arthur@aheymans.xyz> Reviewed-by: Tim Wawrzynczak <twawrzynczak@chromium.org> Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
This commit is contained in:
		@@ -126,26 +126,27 @@ enum azalia_pin_location_2 {
 | 
				
			|||||||
	ARRAY_SIZE(pc_beep_verbs);				\
 | 
						ARRAY_SIZE(pc_beep_verbs);				\
 | 
				
			||||||
	const u32 cim_verb_data_size = sizeof(cim_verb_data)
 | 
						const u32 cim_verb_data_size = sizeof(cim_verb_data)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define AZALIA_VERB_12B(codec, pin, verb, val)		\
 | 
				
			||||||
 | 
						((codec) << 28 | (pin) << 20 | (verb) << 8 | (val))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define AZALIA_PIN_CFG(codec, pin, val)					\
 | 
					#define AZALIA_PIN_CFG(codec, pin, val)					\
 | 
				
			||||||
	(((codec) << 28) | ((pin) << 20) | (0x71c << 8)	\
 | 
						AZALIA_VERB_12B(codec, pin, 0x71c, ((val) >>  0) & 0xff),	\
 | 
				
			||||||
		| ((val) & 0xff)),			\
 | 
						AZALIA_VERB_12B(codec, pin, 0x71d, ((val) >>  8) & 0xff),	\
 | 
				
			||||||
	(((codec) << 28) | ((pin) << 20) | (0x71d << 8)	\
 | 
						AZALIA_VERB_12B(codec, pin, 0x71e, ((val) >> 16) & 0xff),	\
 | 
				
			||||||
		| (((val) >> 8) & 0xff)),		\
 | 
						AZALIA_VERB_12B(codec, pin, 0x71f, ((val) >> 24) & 0xff)
 | 
				
			||||||
	(((codec) << 28) | ((pin) << 20) | (0x71e << 8)	\
 | 
					 | 
				
			||||||
		| (((val) >> 16) & 0xff)),		\
 | 
					 | 
				
			||||||
	(((codec) << 28) | ((pin) << 20) | (0x71f << 8)	\
 | 
					 | 
				
			||||||
		| (((val) >> 24) & 0xff))
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define AZALIA_PIN_CFG_NC(n)   (0x411111f0 | ((n) & 0xf))
 | 
					#define AZALIA_PIN_CFG_NC(n)   (0x411111f0 | ((n) & 0xf))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define AZALIA_RESET(pin)			\
 | 
					#define AZALIA_RESET(pin)			\
 | 
				
			||||||
	(((pin) << 20) | 0x7ff00), (((pin) << 20) | 0x7ff00),	\
 | 
						AZALIA_VERB_12B(0, pin, 0x7ff, 0),	\
 | 
				
			||||||
	(((pin) << 20) | 0x7ff00), (((pin) << 20) | 0x7ff00)
 | 
						AZALIA_VERB_12B(0, pin, 0x7ff, 0),	\
 | 
				
			||||||
 | 
						AZALIA_VERB_12B(0, pin, 0x7ff, 0),	\
 | 
				
			||||||
 | 
						AZALIA_VERB_12B(0, pin, 0x7ff, 0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define AZALIA_SUBVENDOR(codec, val)				\
 | 
					#define AZALIA_SUBVENDOR(codec, val)				\
 | 
				
			||||||
	(((codec) << 28) | (0x01720 << 8) | ((val) & 0xff)),	\
 | 
						AZALIA_VERB_12B(codec, 1, 0x720, ((val) >>  0) & 0xff),	\
 | 
				
			||||||
	(((codec) << 28) | (0x01721 << 8) | (((val) >> 8) & 0xff)), \
 | 
						AZALIA_VERB_12B(codec, 1, 0x721, ((val) >>  8) & 0xff),	\
 | 
				
			||||||
	(((codec) << 28) | (0x01722 << 8) | (((val) >> 16) & 0xff)), \
 | 
						AZALIA_VERB_12B(codec, 1, 0x722, ((val) >> 16) & 0xff),	\
 | 
				
			||||||
	(((codec) << 28) | (0x01723 << 8) | (((val) >> 24) & 0xff))
 | 
						AZALIA_VERB_12B(codec, 1, 0x723, ((val) >> 24) & 0xff)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif /* DEVICE_AZALIA_H */
 | 
					#endif /* DEVICE_AZALIA_H */
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user