mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	ASoC: fsl_sai: store full version instead of major/minor
The driver tests for the hardware revision being newer than 3.1 with (sai->verid.major >= 3 && sai->verid.minor >= 1). The result is obviously wrong for hardware revision 4.0. Fix this by storing the full version in a single variable and comparing to that one. No practical change at the moment as there is no 4.0 ip version currently. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de> Link: https://lore.kernel.org/r/20220302083428.3804687-5-s.hauer@pengutronix.de Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
		
							parent
							
								
									814c9fc46f
								
							
						
					
					
						commit
						99c1e74f25
					
				
					 2 changed files with 5 additions and 9 deletions
				
			
		| 
						 | 
				
			
			@ -962,10 +962,8 @@ static int fsl_sai_check_version(struct device *dev)
 | 
			
		|||
 | 
			
		||||
	dev_dbg(dev, "VERID: 0x%016X\n", val);
 | 
			
		||||
 | 
			
		||||
	sai->verid.major = (val & FSL_SAI_VERID_MAJOR_MASK) >>
 | 
			
		||||
			   FSL_SAI_VERID_MAJOR_SHIFT;
 | 
			
		||||
	sai->verid.minor = (val & FSL_SAI_VERID_MINOR_MASK) >>
 | 
			
		||||
			   FSL_SAI_VERID_MINOR_SHIFT;
 | 
			
		||||
	sai->verid.version = val &
 | 
			
		||||
		(FSL_SAI_VERID_MAJOR_MASK | FSL_SAI_VERID_MINOR_MASK);
 | 
			
		||||
	sai->verid.feature = val & FSL_SAI_VERID_FEATURE_MASK;
 | 
			
		||||
 | 
			
		||||
	ret = regmap_read(sai->regmap, FSL_SAI_PARAM, &val);
 | 
			
		||||
| 
						 | 
				
			
			@ -1137,7 +1135,7 @@ static int fsl_sai_probe(struct platform_device *pdev)
 | 
			
		|||
 | 
			
		||||
	/* Select MCLK direction */
 | 
			
		||||
	if (of_find_property(np, "fsl,sai-mclk-direction-output", NULL) &&
 | 
			
		||||
	    sai->verid.major >= 3 && sai->verid.minor >= 1) {
 | 
			
		||||
	    sai->verid.version >= 0x0301) {
 | 
			
		||||
		regmap_update_bits(sai->regmap, FSL_SAI_MCTL,
 | 
			
		||||
				   FSL_SAI_MCTL_MCLK_EN, FSL_SAI_MCTL_MCLK_EN);
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -227,15 +227,13 @@ struct fsl_sai_soc_data {
 | 
			
		|||
 | 
			
		||||
/**
 | 
			
		||||
 * struct fsl_sai_verid - version id data
 | 
			
		||||
 * @major: major version number
 | 
			
		||||
 * @minor: minor version number
 | 
			
		||||
 * @version: version number
 | 
			
		||||
 * @feature: feature specification number
 | 
			
		||||
 *           0000000000000000b - Standard feature set
 | 
			
		||||
 *           0000000000000000b - Standard feature set
 | 
			
		||||
 */
 | 
			
		||||
struct fsl_sai_verid {
 | 
			
		||||
	u32 major;
 | 
			
		||||
	u32 minor;
 | 
			
		||||
	u32 version;
 | 
			
		||||
	u32 feature;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue