From 4eb4550ab37d351ab0973ccec921a5a2d8560ec7 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 20 Sep 2007 17:34:57 +0200 Subject: [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 --- sound/i2c/cs8427.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/sound/i2c/cs8427.c b/sound/i2c/cs8427.c index 64388cb8d6e5..e601caa6ea0b 100644 --- a/sound/i2c/cs8427.c +++ b/sound/i2c/cs8427.c @@ -228,6 +228,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 " -- cgit v1.2.3