summaryrefslogtreecommitdiff
path: root/drivers/power
AgeCommit message (Collapse)AuthorFilesLines
2008-06-10power_supply: Fix race in power_supply_ueventDmitry Baryshkov1-1/+1
Commit 54d29ad33e3483bcc7ca433a21cf294854e5154a (Power Supply: fix race in device_create) introduced a race in power_supply_uevent. Previously it checked that power_supply is available by checking for dev->driver_data. But now dev->driver_data is set before power_supply->dev is initialised. Signed-off-by: Dmitry Baryshkov <dbaryshkov@gmail.com> Signed-off-by: Anton Vorontsov <cbouatmailru@gmail.com>
2008-05-21Power Supply: fix race in device_createGreg Kroah-Hartman1-4/+2
There is a race from when a device is created with device_create() and then the drvdata is set with a call to dev_set_drvdata() in which a sysfs file could be open, yet the drvdata will be NULL, causing all sorts of bad things to happen. This patch fixes the problem by using the new function, device_create_drvdata(). Cc: Kay Sievers <kay.sievers@vrfy.org> Cc: Anton Vorontsov <cbou@mail.ru> Cc: David Woodhouse <dwmw2@infradead.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2008-05-03Merge git://git.infradead.org/battery-2.6Linus Torvalds2-1/+12
* git://git.infradead.org/battery-2.6: PMU battery: filenames in sysfs with spaces pda_power: add init and exit function callbacks
2008-05-03PMU battery: filenames in sysfs with spacesChristian Kujau1-1/+1
By changing drivers/power/pmu_battery.c I now have '_' instead of ' ' (spaces) in /sys: /sys/devices/platform/pmu-battery.0/power_supply/PMU_battery_0 /sys/class/power_supply/PMU_battery_0 I'm still not sure if some userspace tool out there uses the old paths and will break now. Signed-off-by: Christian Kujau <lists@nerdbynature.de> Signed-off-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Anton Vorontsov <cbouatmailru@gmail.com>
2008-05-03pda_power: add init and exit function callbacksPhilipp Zabel1-0/+11
This adds init/exit function callbacks to pda_power, to provide a place where the platform code can request/free GPIOs that it wants to use in the is_ac_online, is_usb_online and set_charge functions. Signed-off-by: Philipp Zabel <philipp.zabel@gmail.com> Signed-off-by: Anton Vorontsov <cbouatmailru@gmail.com>
2008-04-29x86: olpc: add One Laptop Per Child architecture supportAndres Salomon1-2/+0
This adds support for OLPC XO hardware. Open Firmware on XOs don't contain the VSA, so it is necessary to emulate the PCI BARs in the kernel. This also adds functionality for running EC commands, and a CONFIG_OLPC. A number of OLPC drivers depend upon CONFIG_OLPC. olpc_ec_timeout is a hack to work around Embedded Controller bugs. [akpm@linux-foundation.org: build fix] [akpm@linux-foundation.org: geode_has_vsa build fix] [akpm@linux-foundation.org: olpc_register_battery_callback doesn't exist] Signed-off-by: Andres Salomon <dilinger@debian.org> Acked-by: Ingo Molnar <mingo@elte.hu> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Andi Kleen <ak@suse.de> Cc: Jordan Crouse <jordan.crouse@amd.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-04-29power: replace remaining __FUNCTION__ occurrencesHarvey Harrison3-7/+7
__FUNCTION__ is gcc-specific, use __func__ Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com> Cc: Greg KH <greg@kroah.com> Cc: "Rafael J. Wysocki" <rjw@sisk.pl> Cc: Len Brown <lenb@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-02-07Merge branch 'release' of ↵Linus Torvalds1-0/+1
git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6 * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6: (112 commits) ACPI: fix build warning Revert "cpuidle: build fix for non-x86" ACPI: update intrd DSDT override console messages ACPI: update DSDT override documentation ACPI: Add "acpi_no_initrd_override" kernel parameter ACPI: its a directory not a folder.... ACPI: misc cleanups ACPI: add missing prink prefix strings ACPI: cleanup acpi.h ACPICA: fix CONFIG_ACPI_DEBUG_FUNC_TRACE build ACPI: video: Ignore ACPI video devices that aren't present in hardware ACPI: video: reset brightness on resume ACPI: video: call ACPI notifier chain for ACPI video notifications ACPI: create notifier chain to get hotkey events to graphics driver ACPI: video: delete unused display switch on hotkey event code ACPI: video: create "brightness_switch_enabled" modparam cpuidle: Add a poll_idle method ACPI: cpuidle: Support C1 idle time accounting ACPI: enable MWAIT for C1 idle ACPI: idle: Fix acpi_safe_halt usages and interrupt enabling/disabling ...
2008-02-07power_supply: remove capacity_level from list of sysfs attributesThadeu Lima de Souza Cascardo1-1/+0
This commit: commit 8efe444038a205e79b38b7ad03878824901849a8 Author: Andres Salomon <dilinger@queued.net> Date: Wed Dec 12 14:12:56 2007 -0500 power: remove POWER_SUPPLY_PROP_CAPACITY_LEVEL Removed CAPACITY_LEVEL from every other code, leaving the array with sysfs attributes with one more entry than the number of enums in power_supply.h. This leads to some attributes containing the value of the attribute right after it. For example, temp_ambient would have the value of time_to_empty_now. In my case, I had time_to_full_avg have the value which should be in model_name, when the former was usually empty. Cc: Andres Salomon <dilinger@debian.org> Cc: David Woodhouse <dwmw2@infradead.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-02-06ACPI: battery: add sysfs serial numbermaximilian attems1-0/+1
egrep serial /proc/acpi/battery/BAT0/info serial number: 32090 serial number can tell you from the imminent danger of beeing set on fire. Signed-off-by: maximilian attems <max@stro.at> Acked-by: Alexey Starikovskiy <astarikovskiy@suse.de> Signed-off-by: Len Brown <len.brown@intel.com>
2008-02-02apm_power: check I.intval for zero value, we use it as the divisorAnton Vorontsov1-0/+3
Signed-off-by: Anton Vorontsov <cbou@mail.ru>
2008-02-02pda_power: implement pollingAnton Vorontsov1-1/+45
Signed-off-by: Anton Vorontsov <cbou@mail.ru>
2008-02-02pda_power: various cleanupsAnton Vorontsov1-55/+92
- handle spurious interrupts correctly; - get rid of pda_power_supplies array, use two variables instead; - factor out psy_changed() function, it will be used for polling. Signed-off-by: Anton Vorontsov <cbou@mail.ru>
2008-02-02apm_power: support using VOLTAGE_* properties for apm calculationsDmitry Baryshkov1-21/+70
It's pretty dummy, but useful for batteries for which we can only get voltages. Signed-off-by: Dmitry Baryshkov <dbaryshkov@gmail.com> Signed-off-by: Anton Vorontsov <cbou@mail.ru>
2008-02-02pda_power: add suspend/resume supportDmitry Baryshkov1-0/+33
Add suspend/resume/wakeup support for pda_power. Signed-off-by: Dmitry Baryshkov <dbaryshkov@gmail.com> Signed-off-by: Anton Vorontsov <cbou@mail.ru>
2008-02-02power_supply: add few more values and propsDmitry Baryshkov1-1/+4
Add LiMn (one of the most common for small non-rechargable batteries) battery technology and voltage_min/_max properties support. Signed-off-by: Dmitry Baryshkov <dbaryshkov@gmail.com> Signed-off-by: Anton Vorontsov <cbou@mail.ru>
2008-02-02pda_power: only register available psuDmitry Baryshkov1-36/+44
Currently pda-power adds both ac and usb power supply units. This patch fixes it so that psu are added only if they are enabled. Signed-off-by: Dmitry Baryshkov <dbaryshkov@gmail.com> Signed-off-by: Anton Vorontsov <cbou@mail.ru>
2008-02-02power: fix incorrect unregistration in power_supply_create_attrs error pathAndres Salomon1-4/+2
In power_supply_create_attrs(), we create static attributes as referenced by power_supply_static_attrs[i]. After that, if we fail, we unregister via power_supply_static_attrs[psy->properties[i]]. This is incorrect, as psy->properties has absolutely no bearing on static attribs. This patch fixes it to unregister the correct attrib. Another line which was unnecessarily line wrapped is also unwrapped. Signed-off-by: Andres Salomon <dilinger@debian.org> Signed-off-by: David Woodhouse <dwmw2@infradead.org>
2008-02-02power: remove POWER_SUPPLY_PROP_CAPACITY_LEVELAndres Salomon2-15/+0
The CAPACITY_LEVEL stuff defines various levels of charge; however, what is the difference between them? What differentiates between HIGH and NORMAL, LOW and CRITICAL, etc? As it appears that these are fairly arbitrary, we end up making such policy decisions in the kernel (or in hardware). This is the sort of decision that should be made in userspace, not in the kernel. If the hardware does not support _CAPACITY and it cannot be easily calculated, then perhaps the driver should register a custom CAPACITY_LEVEL attribute; however, userspace should not become accustomed to looking for such a thing, and we should certainly not encourage drivers to provide CAPACITY_LEVEL stubs. The following removes support for POWER_SUPPLY_PROP_CAPACITY_LEVEL. The OLPC battery driver is the only driver making use of this, so it's removed from there as well. Signed-off-by: Andres Salomon <dilinger@debian.org> Signed-off-by: David Woodhouse <dwmw2@infradead.org>
2008-02-02[BATTERY] power_supply_leds: use kasprintfAkinobu Mita1-18/+7
Use kasprintf instead of kmalloc()-strcpy()-strcat(). Cc: Anton Vorontsov <cbou@mail.ru> Cc: David Woodhouse <dwmw2@infradead.org> Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com> Signed-off-by: Anton Vorontsov <cbou@mail.ru>
2008-02-02[BATTERY] Every file should include the headers containing the prototypes ↵Adrian Bunk2-0/+4
for its global functions. Signed-off-by: Adrian Bunk <bunk@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Anton Vorontsov <cbou@mail.ru>
2008-01-25power supply : use class iteration apiDave Young2-83/+107
Convert to use the class iteration api. Signed-off-by: Dave Young <hidave.darkstar@gmail.com> Cc: Anton Vorontsov <cbou@mail.ru> Cc: David Woodhouse <dwmw2@infradead.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2007-10-23Merge git://git.infradead.org/battery-2.6Linus Torvalds1-39/+102
* git://git.infradead.org/battery-2.6: apm_power: calculate to_full/to_empty time using energy apm_power: improve battery finding algorithm apm_power: fix obviously wrong logic for time reporting
2007-10-19Add missing newlines to some uses of dev_<level> messagesJoe Perches1-1/+1
Found these while looking at printk uses. Add missing newlines to dev_<level> uses Add missing KERN_<level> prefixes to multiline dev_<level>s Fixed a wierd->weird spelling typo Added a newline to a printk Signed-off-by: Joe Perches <joe@perches.com> Cc: "Luck, Tony" <tony.luck@intel.com> Cc: Jens Axboe <jens.axboe@oracle.com> Cc: Mark M. Hoffman <mhoffman@lightlink.com> Cc: Roland Dreier <rolandd@cisco.com> Cc: Tilman Schmidt <tilman@imap.cc> Cc: David Woodhouse <dwmw2@infradead.org> Cc: Jeff Garzik <jeff@garzik.org> Cc: Stephen Hemminger <shemminger@linux-foundation.org> Cc: Greg KH <greg@kroah.com> Cc: Jeremy Fitzhardinge <jeremy@goop.org> Cc: Geert Uytterhoeven <geert@linux-m68k.org> Cc: Alessandro Zummo <a.zummo@towertech.it> Cc: David Brownell <david-b@pacbell.net> Cc: James Smart <James.Smart@Emulex.Com> Cc: Andrew Vasquez <andrew.vasquez@qlogic.com> Cc: "Antonino A. Daplas" <adaplas@pol.net> Cc: Evgeniy Polyakov <johnpol@2ka.mipt.ru> Cc: Russell King <rmk@arm.linux.org.uk> Cc: Jaroslav Kysela <perex@suse.cz> Cc: Takashi Iwai <tiwai@suse.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-10-13Driver core: change add_uevent_var to use a structKay Sievers2-14/+6
This changes the uevent buffer functions to use a struct instead of a long list of parameters. It does no longer require the caller to do the proper buffer termination and size accounting, which is currently wrong in some places. It fixes a known bug where parts of the uevent environment are overwritten because of wrong index calculations. Many thanks to Mathieu Desnoyers for finding bugs and improving the error handling. Signed-off-by: Kay Sievers <kay.sievers@vrfy.org> Cc: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca> Cc: Cornelia Huck <cornelia.huck@de.ibm.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2007-10-05apm_power: calculate to_full/to_empty time using energyAnton Vorontsov1-25/+53
This patch adds ability to calculate time using energy. Needed to calculate time_to_full for PMU batteries. Signed-off-by: Anton Vorontsov <cbou@mail.ru>
2007-10-05apm_power: improve battery finding algorithmAnton Vorontsov1-10/+47
Prior to this patch, if use_for_apm unspecified, apm_power able to choice batteries according to their charge only. This patch adds ability to choice batteries according to their charge, energy, use_for_apm flag, and fallback to any battery if it failed to decide. Patch is mandatory to report Apple PMU batteries through legacy /proc/apm interface using power supply class. Signed-off-by: Anton Vorontsov <cbou@mail.ru>
2007-10-05apm_power: fix obviously wrong logic for time reportingAnton Vorontsov1-12/+10
Prior to this patch, apm_power was unable to report "to empty"/"to full" time for batteries that hardware-report these values, such as Apple PMU batteries. Signed-off-by: Anton Vorontsov <cbou@mail.ru>
2007-09-21[PATCH] missing null termination in power supply ueventStephen Hemminger1-0/+1
Need to null terminate environment. Found by inspection while looking for similar problems to platform uevent bug Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
2007-07-23Don't compile the PMU power driver on 64-bit PowerPCPaul Mackerras1-1/+1
As reported by Stephen Rothwell, an allmodconfig build on 64-bit PowerPC reports these errors: ERROR: "pmu_batteries" [drivers/power/pmu_battery.ko] undefined! ERROR: "pmu_battery_count" [drivers/power/pmu_battery.ko] undefined! ERROR: "pmu_power_flags" [drivers/power/pmu_battery.ko] undefined! This fixes the problem by not building pmu_battery.ko on ppc64. There are no battery-powered ppc64 machines with an Apple PMU, and we can be reasonably confident there never will be. Signed-off-by: Paul Mackerras <paulus@samba.org> Signed-off-by: David Woodhouse <dwmw2@infradead.org>
2007-07-16Merge git://git.infradead.org/battery-2.6Linus Torvalds8-44/+8
* git://git.infradead.org/battery-2.6: git-battery vs git-acpi Power supply class and drivers: remove non obligatory return statements pda_power: clean up irq, timer MAINTAINERS: Add maintainers for power supply subsystem and drivers Fixed up trivial conflict in drivers/w1/slaves/w1_ds2760.c manually
2007-07-16PDA_POWER depends on having request_irq()Al Viro1-0/+1
... so all proud owners of s390-based PDAs will have to live without that one Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-07-15Power supply class and drivers: remove non obligatory return statementsAnton Vorontsov8-35/+0
Per Jeff Garzik request. Signed-off-by: Jeff Garzik <jeff@garzik.org> Signed-off-by: Anton Vorontsov <cbou@mail.ru>
2007-07-15pda_power: clean up irq, timerJeff Garzik1-9/+8
Clean up pda_power interrupt handling: Prior to this patch, the driver would pass information it needed to the interrupt handler dev_id pointer, and then prompt forget it ever did so, recreating that same information after a couple passes through the timer-based state machine. This patch removes the redundant checks by passing the pda_power_supply[] pointer through the state machine. The current code passed 'irq' through the state machine, as an index to recreate the pointer, when we could more simply pass around the pointer itself. This patch makes it easier to remove the 'irq' argument in the future, in addition to cleaning up the driver today. Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-07-10[BATTERY] One Laptop Per Child power/battery driverDavid Woodhouse3-0/+359
Signed-off-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: Anton Vorontsov <cbou@mail.ru>
2007-07-10[BATTERY] Apple PMU driverDavid Woodhouse3-0/+223
Signed-off-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: Anton Vorontsov <cbou@mail.ru>
2007-07-10[BATTERY] 1-Wire ds2760 chip battery driverAnton Vorontsov3-0/+479
This is driver for batteries with ds2760 chip inside, found inside almost every HP iPaq and HTC PDAs/phones. Signed-off-by: Anton Vorontsov <cbou@mail.ru> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: David Woodhouse <dwmw2@infradead.org>
2007-07-10[BATTERY] APM emulation driver for class batteriesAnton Vorontsov3-0/+251
Signed-off-by: Eugeny Boger <eugenyboger@dgap.mipt.ru> Signed-off-by: Anton Vorontsov <cbou@mail.ru> Signed-off-by: David Woodhouse <dwmw2@infradead.org>
2007-07-10[BATTERY] pda_power platform driverAnton Vorontsov3-0/+270
Common power driver for PDAs and phones with one or two external power supplies (AC/USB) connected to main and backup batteries, and optional builtin charger. It's used to stop logic duplication through different embedded devices. So, power supply *logic* is here. pda_power register power supplies, and will take care about notifying batteries about power changes through external power interface. Currently, power consumption legal limits (including USB power consumption) should be handled by platform code, inside set_charge function. Signed-off-by: Anton Vorontsov <cbou@mail.ru> Signed-off-by: Roman Moravcik <roman.moravcik@gmail.com> Signed-off-by: David Woodhouse <dwmw2@infradead.org>
2007-07-10[BATTERY] Universal power supply class (was: battery class)Anton Vorontsov6-0/+717
This class is result of "external power" and "battery" classes merge, as suggested by David Woodhouse. He also implemented uevent support. Here how userspace seeing it now: # ls /sys/class/power\ supply/ ac main-battery usb # cat /sys/class/power\ supply/ac/type AC # cat /sys/class/power\ supply/usb/type USB # cat /sys/class/power\ supply/main-battery/type Battery # cat /sys/class/power\ supply/ac/online 1 # cat /sys/class/power\ supply/usb/online 0 # cat /sys/class/power\ supply/main-battery/status Charging # cat /sys/class/leds/h5400\:red-left/trigger none h5400-radio timer hwtimer ac-online usb-online main-battery-charging-or-full [main-battery-charging] main-battery-full Signed-off-by: Anton Vorontsov <cbou@mail.ru> Signed-off-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>