aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/cw1200/hwio.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/cw1200/hwio.h')
-rw-r--r--drivers/net/wireless/cw1200/hwio.h31
1 files changed, 16 insertions, 15 deletions
diff --git a/drivers/net/wireless/cw1200/hwio.h b/drivers/net/wireless/cw1200/hwio.h
index 563329cfead6..ddf52669dc5b 100644
--- a/drivers/net/wireless/cw1200/hwio.h
+++ b/drivers/net/wireless/cw1200/hwio.h
@@ -169,35 +169,34 @@ int cw1200_reg_write(struct cw1200_common *priv, u16 addr,
169static inline int cw1200_reg_read_16(struct cw1200_common *priv, 169static inline int cw1200_reg_read_16(struct cw1200_common *priv,
170 u16 addr, u16 *val) 170 u16 addr, u16 *val)
171{ 171{
172 u32 tmp; 172 __le32 tmp;
173 int i; 173 int i;
174 i = cw1200_reg_read(priv, addr, &tmp, sizeof(tmp)); 174 i = cw1200_reg_read(priv, addr, &tmp, sizeof(tmp));
175 tmp = le32_to_cpu(tmp); 175 *val = le32_to_cpu(tmp) & 0xfffff;
176 *val = tmp & 0xffff;
177 return i; 176 return i;
178} 177}
179 178
180static inline int cw1200_reg_write_16(struct cw1200_common *priv, 179static inline int cw1200_reg_write_16(struct cw1200_common *priv,
181 u16 addr, u16 val) 180 u16 addr, u16 val)
182{ 181{
183 u32 tmp = val; 182 __le32 tmp = cpu_to_le32((u32)val);
184 tmp = cpu_to_le32(tmp);
185 return cw1200_reg_write(priv, addr, &tmp, sizeof(tmp)); 183 return cw1200_reg_write(priv, addr, &tmp, sizeof(tmp));
186} 184}
187 185
188static inline int cw1200_reg_read_32(struct cw1200_common *priv, 186static inline int cw1200_reg_read_32(struct cw1200_common *priv,
189 u16 addr, u32 *val) 187 u16 addr, u32 *val)
190{ 188{
191 int i = cw1200_reg_read(priv, addr, val, sizeof(*val)); 189 __le32 tmp;
192 *val = le32_to_cpu(*val); 190 int i = cw1200_reg_read(priv, addr, &tmp, sizeof(tmp));
191 *val = le32_to_cpu(tmp);
193 return i; 192 return i;
194} 193}
195 194
196static inline int cw1200_reg_write_32(struct cw1200_common *priv, 195static inline int cw1200_reg_write_32(struct cw1200_common *priv,
197 u16 addr, u32 val) 196 u16 addr, u32 val)
198{ 197{
199 val = cpu_to_le32(val); 198 __le32 tmp = cpu_to_le32(val);
200 return cw1200_reg_write(priv, addr, &val, sizeof(val)); 199 return cw1200_reg_write(priv, addr, &tmp, sizeof(val));
201} 200}
202 201
203int cw1200_indirect_read(struct cw1200_common *priv, u32 addr, void *buf, 202int cw1200_indirect_read(struct cw1200_common *priv, u32 addr, void *buf,
@@ -224,22 +223,24 @@ static inline int cw1200_ahb_read(struct cw1200_common *priv, u32 addr,
224static inline int cw1200_apb_read_32(struct cw1200_common *priv, 223static inline int cw1200_apb_read_32(struct cw1200_common *priv,
225 u32 addr, u32 *val) 224 u32 addr, u32 *val)
226{ 225{
227 int i = cw1200_apb_read(priv, addr, val, sizeof(*val)); 226 __le32 tmp;
228 *val = le32_to_cpu(*val); 227 int i = cw1200_apb_read(priv, addr, &tmp, sizeof(tmp));
228 *val = le32_to_cpu(tmp);
229 return i; 229 return i;
230} 230}
231 231
232static inline int cw1200_apb_write_32(struct cw1200_common *priv, 232static inline int cw1200_apb_write_32(struct cw1200_common *priv,
233 u32 addr, u32 val) 233 u32 addr, u32 val)
234{ 234{
235 val = cpu_to_le32(val); 235 __le32 tmp = cpu_to_le32(val);
236 return cw1200_apb_write(priv, addr, &val, sizeof(val)); 236 return cw1200_apb_write(priv, addr, &tmp, sizeof(val));
237} 237}
238static inline int cw1200_ahb_read_32(struct cw1200_common *priv, 238static inline int cw1200_ahb_read_32(struct cw1200_common *priv,
239 u32 addr, u32 *val) 239 u32 addr, u32 *val)
240{ 240{
241 int i = cw1200_ahb_read(priv, addr, val, sizeof(*val)); 241 __le32 tmp;
242 *val = le32_to_cpu(*val); 242 int i = cw1200_ahb_read(priv, addr, &tmp, sizeof(tmp));
243 *val = le32_to_cpu(tmp);
243 return i; 244 return i;
244} 245}
245 246