aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/mfd/wm8994-core.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/mfd/wm8994-core.c b/drivers/mfd/wm8994-core.c
index ce93796e7f57..475bd50d5528 100644
--- a/drivers/mfd/wm8994-core.c
+++ b/drivers/mfd/wm8994-core.c
@@ -107,9 +107,7 @@ static int wm8994_write(struct wm8994 *wm8994, unsigned short reg,
107 107
108 for (i = 0; i < bytes / 2; i++) { 108 for (i = 0; i < bytes / 2; i++) {
109 dev_vdbg(wm8994->dev, "Write %04x to R%d(0x%x)\n", 109 dev_vdbg(wm8994->dev, "Write %04x to R%d(0x%x)\n",
110 buf[i], reg + i, reg + i); 110 be16_to_cpu(buf[i]), reg + i, reg + i);
111
112 buf[i] = cpu_to_be16(buf[i]);
113 } 111 }
114 112
115 return wm8994->write_dev(wm8994, reg, bytes, src); 113 return wm8994->write_dev(wm8994, reg, bytes, src);
@@ -127,6 +125,8 @@ int wm8994_reg_write(struct wm8994 *wm8994, unsigned short reg,
127{ 125{
128 int ret; 126 int ret;
129 127
128 val = cpu_to_be16(val);
129
130 mutex_lock(&wm8994->io_lock); 130 mutex_lock(&wm8994->io_lock);
131 131
132 ret = wm8994_write(wm8994, reg, 2, &val); 132 ret = wm8994_write(wm8994, reg, 2, &val);
@@ -143,7 +143,7 @@ EXPORT_SYMBOL_GPL(wm8994_reg_write);
143 * @wm8994: Device to write to 143 * @wm8994: Device to write to
144 * @reg: First register 144 * @reg: First register
145 * @count: Number of registers 145 * @count: Number of registers
146 * @buf: Buffer to write from. 146 * @buf: Buffer to write from. Data must be big-endian formatted.
147 */ 147 */
148int wm8994_bulk_write(struct wm8994 *wm8994, unsigned short reg, 148int wm8994_bulk_write(struct wm8994 *wm8994, unsigned short reg,
149 int count, u16 *buf) 149 int count, u16 *buf)
@@ -183,6 +183,8 @@ int wm8994_set_bits(struct wm8994 *wm8994, unsigned short reg,
183 r &= ~mask; 183 r &= ~mask;
184 r |= val; 184 r |= val;
185 185
186 r = cpu_to_be16(r);
187
186 ret = wm8994_write(wm8994, reg, 2, &r); 188 ret = wm8994_write(wm8994, reg, 2, &r);
187 189
188out: 190out: