[ALSA] Workaround for invalid signature read of CS8427
Reading the signature of CS8427 over SPI/I2C fails on some devices by mysterious reason. In most cases, however, it succeeds at the sequential read. So, let's give a second chance to check the signature again. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
This commit is contained in:
parent
ac8842a039
commit
4eb4550ab3
|
@ -228,6 +228,12 @@ int snd_cs8427_create(struct snd_i2c_bus *bus,
|
||||||
|
|
||||||
snd_i2c_lock(bus);
|
snd_i2c_lock(bus);
|
||||||
err = snd_cs8427_reg_read(device, CS8427_REG_ID_AND_VER);
|
err = snd_cs8427_reg_read(device, CS8427_REG_ID_AND_VER);
|
||||||
|
if (err != CS8427_VER8427A) {
|
||||||
|
/* give second chance */
|
||||||
|
snd_printk(KERN_WARNING "invalid CS8427 signature 0x%x: "
|
||||||
|
"let me try again...\n", err);
|
||||||
|
err = snd_cs8427_reg_read(device, CS8427_REG_ID_AND_VER);
|
||||||
|
}
|
||||||
if (err != CS8427_VER8427A) {
|
if (err != CS8427_VER8427A) {
|
||||||
snd_i2c_unlock(bus);
|
snd_i2c_unlock(bus);
|
||||||
snd_printk(KERN_ERR "unable to find CS8427 signature "
|
snd_printk(KERN_ERR "unable to find CS8427 signature "
|
||||||
|
|
Loading…
Reference in New Issue