mirror of
https://github.com/torvalds/linux.git
synced 2026-06-01 02:53:36 +02:00
ASoC: cs530x: Check the DEVID matches the devtype
If the read device ID is not the expected devtype derived from the compatible device match then fail the probe as other configuration details may be incorrect. Signed-off-by: Simon Trimmer <simont@opensource.cirrus.com> Signed-off-by: Vitaly Rodionov <vitalyr@opensource.cirrus.com> Link: https://patch.msgid.link/20251023090327.58275-9-vitalyr@opensource.cirrus.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
3941abb26f
commit
c37c3e5e39
|
|
@ -1181,6 +1181,12 @@ static int cs530x_check_device_id(struct cs530x_priv *cs530x)
|
|||
dev_id);
|
||||
}
|
||||
|
||||
if (cs530x->devtype != dev_id) {
|
||||
dev_err(dev, "Read device ID 0x%x is not the expected devtype 0x%x\n",
|
||||
dev_id, cs530x->devtype);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
dev_dbg(dev, "Device ID 0x%x Rev ID 0x%x (%d in %d out)\n", dev_id, rev,
|
||||
cs530x->num_adcs, cs530x->num_dacs);
|
||||
|
||||
|
|
|
|||
|
|
@ -211,13 +211,13 @@
|
|||
#define CS530X_NUM_SUPPLIES 2
|
||||
|
||||
enum cs530x_type {
|
||||
CS4282,
|
||||
CS4302,
|
||||
CS4304,
|
||||
CS4308,
|
||||
CS5302,
|
||||
CS5304,
|
||||
CS5308,
|
||||
CS4282 = CS530X_2CH_CODEC_DEV_ID,
|
||||
CS4302 = CS530X_2CH_DAC_DEV_ID,
|
||||
CS4304 = CS530X_4CH_DAC_DEV_ID,
|
||||
CS4308 = CS530X_8CH_DAC_DEV_ID,
|
||||
CS5302 = CS530X_2CH_ADC_DEV_ID,
|
||||
CS5304 = CS530X_4CH_ADC_DEV_ID,
|
||||
CS5308 = CS530X_8CH_ADC_DEV_ID,
|
||||
};
|
||||
|
||||
/* codec private data */
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user