diff options
author | Grazvydas Ignotas <notasas@gmail.com> | 2010-02-12 16:56:46 -0500 |
---|---|---|
committer | Anton Vorontsov <cbouatmailru@gmail.com> | 2010-02-16 13:26:14 -0500 |
commit | 97f70c23a1fa1bffe79187563dc5c6f2c72420a2 (patch) | |
tree | de81a2d6688f9309e71284db1d1759437d76e21e | |
parent | 5324dc0e3872324ed0bf372bce7bc437436910b6 (diff) |
power_supply: bq27x00: remove double endian swap
The bq27x00 registers are little endian, so just read them as such
and don't do double endian swap on LE machines.
This also gets rid of strange looking shift that was done after
reading 8bit register because endian swap in bq27x00_read() was
messing it up.
Signed-off-by: Grazvydas Ignotas <notasas@gmail.com>
Acked-by: Rodolfo Giometti <giometti@linux.it>
Signed-off-by: Anton Vorontsov <cbouatmailru@gmail.com>
-rw-r--r-- | drivers/power/bq27x00_battery.c | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/drivers/power/bq27x00_battery.c b/drivers/power/bq27x00_battery.c index 62bb98124e26..537915cc491e 100644 --- a/drivers/power/bq27x00_battery.c +++ b/drivers/power/bq27x00_battery.c | |||
@@ -74,12 +74,7 @@ static enum power_supply_property bq27x00_battery_props[] = { | |||
74 | static int bq27x00_read(u8 reg, int *rt_value, int b_single, | 74 | static int bq27x00_read(u8 reg, int *rt_value, int b_single, |
75 | struct bq27x00_device_info *di) | 75 | struct bq27x00_device_info *di) |
76 | { | 76 | { |
77 | int ret; | 77 | return di->bus->read(reg, rt_value, b_single, di); |
78 | |||
79 | ret = di->bus->read(reg, rt_value, b_single, di); | ||
80 | *rt_value = be16_to_cpu(*rt_value); | ||
81 | |||
82 | return ret; | ||
83 | } | 78 | } |
84 | 79 | ||
85 | /* | 80 | /* |
@@ -161,7 +156,7 @@ static int bq27x00_battery_rsoc(struct bq27x00_device_info *di) | |||
161 | return ret; | 156 | return ret; |
162 | } | 157 | } |
163 | 158 | ||
164 | return rsoc >> 8; | 159 | return rsoc; |
165 | } | 160 | } |
166 | 161 | ||
167 | #define to_bq27x00_device_info(x) container_of((x), \ | 162 | #define to_bq27x00_device_info(x) container_of((x), \ |
@@ -238,7 +233,7 @@ static int bq27200_read(u8 reg, int *rt_value, int b_single, | |||
238 | err = i2c_transfer(client->adapter, msg, 1); | 233 | err = i2c_transfer(client->adapter, msg, 1); |
239 | if (err >= 0) { | 234 | if (err >= 0) { |
240 | if (!b_single) | 235 | if (!b_single) |
241 | *rt_value = get_unaligned_be16(data); | 236 | *rt_value = get_unaligned_le16(data); |
242 | else | 237 | else |
243 | *rt_value = data[0]; | 238 | *rt_value = data[0]; |
244 | 239 | ||