|
@@ -90,12 +90,10 @@ static int ak4104_spi_write(struct snd_soc_codec *codec, unsigned int reg,
|
|
if (reg >= codec->reg_cache_size)
|
|
if (reg >= codec->reg_cache_size)
|
|
return -EINVAL;
|
|
return -EINVAL;
|
|
|
|
|
|
- reg &= AK4104_REG_MASK;
|
|
|
|
- reg |= AK4104_WRITE;
|
|
|
|
-
|
|
|
|
/* only write to the hardware if value has changed */
|
|
/* only write to the hardware if value has changed */
|
|
if (cache[reg] != value) {
|
|
if (cache[reg] != value) {
|
|
- u8 tmp[2] = { reg, value };
|
|
|
|
|
|
+ u8 tmp[2] = { (reg & AK4104_REG_MASK) | AK4104_WRITE, value };
|
|
|
|
+
|
|
if (spi_write(spi, tmp, sizeof(tmp))) {
|
|
if (spi_write(spi, tmp, sizeof(tmp))) {
|
|
dev_err(&spi->dev, "SPI write failed\n");
|
|
dev_err(&spi->dev, "SPI write failed\n");
|
|
return -EIO;
|
|
return -EIO;
|