diff options
Diffstat (limited to 'sound/soc')
-rw-r--r-- | sound/soc/soc-cache.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/sound/soc/soc-cache.c b/sound/soc/soc-cache.c index 6e5e30a17f87..73907e5f078f 100644 --- a/sound/soc/soc-cache.c +++ b/sound/soc/soc-cache.c | |||
@@ -101,12 +101,11 @@ static unsigned int snd_soc_4_12_read(struct snd_soc_codec *codec, | |||
101 | static int snd_soc_4_12_write(struct snd_soc_codec *codec, unsigned int reg, | 101 | static int snd_soc_4_12_write(struct snd_soc_codec *codec, unsigned int reg, |
102 | unsigned int value) | 102 | unsigned int value) |
103 | { | 103 | { |
104 | u8 data[2]; | 104 | u16 data; |
105 | 105 | ||
106 | data[0] = (reg << 4) | ((value >> 8) & 0x000f); | 106 | data = cpu_to_be16((reg << 12) | (value & 0xffffff)); |
107 | data[1] = value & 0x00ff; | ||
108 | 107 | ||
109 | return do_hw_write(codec, reg, value, data, 2); | 108 | return do_hw_write(codec, reg, value, &data, 2); |
110 | } | 109 | } |
111 | 110 | ||
112 | #if defined(CONFIG_SPI_MASTER) | 111 | #if defined(CONFIG_SPI_MASTER) |
@@ -115,8 +114,8 @@ static int snd_soc_4_12_spi_write(void *control_data, const char *data, | |||
115 | { | 114 | { |
116 | u8 msg[2]; | 115 | u8 msg[2]; |
117 | 116 | ||
118 | msg[0] = data[1]; | 117 | msg[0] = data[0]; |
119 | msg[1] = data[0]; | 118 | msg[1] = data[1]; |
120 | 119 | ||
121 | return do_spi_write(control_data, msg, len); | 120 | return do_spi_write(control_data, msg, len); |
122 | } | 121 | } |