From: Takashi Iwai Date: Thu, 20 Sep 2007 15:34:57 +0000 (+0200) Subject: [ALSA] Workaround for invalid signature read of CS8427 X-Git-Tag: v2.6.24-rc1~832^2~29 X-Git-Url: http://ftp.safe.ca/?a=commitdiff_plain;h=4eb4550ab37d351ab0973ccec921a5a2d8560ec7;p=safe%2Fjmp%2Flinux-2.6 [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 Signed-off-by: Jaroslav Kysela --- diff --git a/sound/i2c/cs8427.c b/sound/i2c/cs8427.c index 64388cb..e601caa 100644 --- a/sound/i2c/cs8427.c +++ b/sound/i2c/cs8427.c @@ -229,6 +229,12 @@ int snd_cs8427_create(struct snd_i2c_bus *bus, snd_i2c_lock(bus); 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) { snd_i2c_unlock(bus); snd_printk(KERN_ERR "unable to find CS8427 signature " "(expected 0x%x, read 0x%x),\n",