ASoC: alc5623: Fix regmap endianness
diff mbox

Message ID 1397565425-1746-1-git-send-email-andrew@lunn.ch
State Accepted
Commit 8aaa414fadaec2b682168a5c937a3950a77956bf
Headers show

Commit Message

Andrew Lunn April 15, 2014, 12:37 p.m. UTC
Commit 0cd257bf9b9b0cbb4fa1a5c988a232506997867c, "ASoC: alc5623:
Convert to direct regmap API usage" broke probing of the codec,
because of wrong endinness of the ID and codec version read from the
device. Fix this by removing the existing flipping of the endiannes,
and extracting the codec type byte from the word from the regmap.

Signed-off-by: Andrew Lunn <andrew@lunn.ch>
---
 sound/soc/codecs/alc5623.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Mark Brown April 15, 2014, 1:21 p.m. UTC | #1
On Tue, Apr 15, 2014 at 02:37:05PM +0200, Andrew Lunn wrote:
> Commit 0cd257bf9b9b0cbb4fa1a5c988a232506997867c, "ASoC: alc5623:
> Convert to direct regmap API usage" broke probing of the codec,
> because of wrong endinness of the ID and codec version read from the
> device. Fix this by removing the existing flipping of the endiannes,
> and extracting the codec type byte from the word from the regmap.

Applied, thanks.

Patch
diff mbox

diff --git a/sound/soc/codecs/alc5623.c b/sound/soc/codecs/alc5623.c
index f500905e9373..2acf82f4a08a 100644
--- a/sound/soc/codecs/alc5623.c
+++ b/sound/soc/codecs/alc5623.c
@@ -1018,13 +1018,13 @@  static int alc5623_i2c_probe(struct i2c_client *client,
 		dev_err(&client->dev, "failed to read vendor ID1: %d\n", ret);
 		return ret;
 	}
-	vid1 = ((vid1 & 0xff) << 8) | (vid1 >> 8);
 
 	ret = regmap_read(alc5623->regmap, ALC5623_VENDOR_ID2, &vid2);
 	if (ret < 0) {
 		dev_err(&client->dev, "failed to read vendor ID2: %d\n", ret);
 		return ret;
 	}
+	vid2 >>= 8;
 
 	if ((vid1 != 0x10ec) || (vid2 != id->driver_data)) {
 		dev_err(&client->dev, "unknown or wrong codec\n");