summaryrefslogtreecommitdiff
path: root/drivers/power/ds2760_battery.c
diff options
context:
space:
mode:
authorRhyland Klein <rklein@nvidia.com>2011-03-09 16:18:02 -0800
committerAnton Vorontsov <cbouatmailru@gmail.com>2011-03-16 16:40:58 +0300
commita7d9ace4eb3a6a3c3fcb12fb05510c1893808263 (patch)
tree2464cd8e7285165562ed004cc1996fd6681827cd /drivers/power/ds2760_battery.c
parenta223246f7280422f77c15b71455fe3362d3604b4 (diff)
bq20z75: Fix issues with present and suspend
There are a few issues found around the battery not being present. If the battery isn't present, then a few undesirable things happen. The first was excessive reporting of failed properties. This was fixed by instead returning ENODATA for all properties other than PRESENT if the battery isn't present. That way the callers can identify the difference between a failure and the battery not being there. The next issue was in the suspend logic. It was found that if the battery wasn't present, then it would return a failure, preventing the system from going into suspend. If there is no battery present, the io is expected to fail, so in that case, we shouldn't return the failure and just acknowledge that it was expected. I also found that when a gpio was used, i didn't maintain the internal is_present state properly. I added a set of that to fix that. Lastly, the code to see io's fail and figure out that the battery isn't present when not using a gpio had a problem. In that code, it looked for the read to fail and if it did, then handled it. The problem is that in function to get the property, it first writes a value and that write can fail, causing the code to never reach the logic after the read. Fix is to move the logic till after the write. Signed-off-by: Rhyland Klein <rklein@nvidia.com> Signed-off-by: Anton Vorontsov <cbouatmailru@gmail.com>
Diffstat (limited to 'drivers/power/ds2760_battery.c')
0 files changed, 0 insertions, 0 deletions