mirror of
https://github.com/edk2-porting/linux-next.git
synced 2025-01-17 01:54:01 +08:00
ASoC: cirrus: Add helper function for reading the device ID
Many of the older Cirrus devices share very similar code for reading the device ID, and frequently this code is generating cppcheck warnings such as: sound/soc/codecs/cs42l42.c:1886:6: style: Variable 'ret' is reassigned a value before the old one has been used. [redundantAssignment] ret = regmap_read(cs42l42->regmap, CS42L42_DEVID_CD, ®); Add a small helper function that older Cirrus devices can use to read the device ID, which should help correct these issues. Reported-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com> Link: https://lore.kernel.org/r/20210510131357.17170-2-ckeepax@opensource.cirrus.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
3f0d23e849
commit
c8b198ed31
21
sound/soc/codecs/cirrus_legacy.h
Normal file
21
sound/soc/codecs/cirrus_legacy.h
Normal file
@ -0,0 +1,21 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* Some small helpers for older Cirrus Logic parts.
|
||||
*
|
||||
* Copyright (C) 2021 Cirrus Logic, Inc. and
|
||||
* Cirrus Logic International Semiconductor Ltd.
|
||||
*/
|
||||
|
||||
static inline int cirrus_read_device_id(struct regmap *regmap, unsigned int reg)
|
||||
{
|
||||
u8 devid[3];
|
||||
int ret;
|
||||
|
||||
ret = regmap_bulk_read(regmap, reg, devid, ARRAY_SIZE(devid));
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
return ((devid[0] & 0xFF) << 12) |
|
||||
((devid[1] & 0xFF) << 4) |
|
||||
((devid[2] & 0xF0) >> 4);
|
||||
}
|
Loading…
Reference in New Issue
Block a user