Commit 4eb4550ab37d351ab0973ccec921a5a2d8560ec7

Authored by Takashi Iwai
Committed by Jaroslav Kysela
1 parent ac8842a039

[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>

Showing 1 changed file with 6 additions and 0 deletions Side-by-side Diff

... ... @@ -229,6 +229,12 @@
229 229 snd_i2c_lock(bus);
230 230 err = snd_cs8427_reg_read(device, CS8427_REG_ID_AND_VER);
231 231 if (err != CS8427_VER8427A) {
  232 + /* give second chance */
  233 + snd_printk(KERN_WARNING "invalid CS8427 signature 0x%x: "
  234 + "let me try again...\n", err);
  235 + err = snd_cs8427_reg_read(device, CS8427_REG_ID_AND_VER);
  236 + }
  237 + if (err != CS8427_VER8427A) {
232 238 snd_i2c_unlock(bus);
233 239 snd_printk(KERN_ERR "unable to find CS8427 signature "
234 240 "(expected 0x%x, read 0x%x),\n",