24 Sep, 2009

1 commit

  • * git://git.infradead.org/battery-2.6:
    power_supply: Add driver for the PMU on WM831x PMICs
    ds2760_battery: Fix integer overflow for time_to_empty_now
    wm97xx_battery: Convert to dev_pm_ops
    wm97xx_battery: Use irq to detect charger state
    wm97xx_battery: Use platform_data
    wm97xx-core: Pass platform_data to battery
    ds2760_battery: implement set_charged() feature
    power_supply: get_by_name and set_charged functionality
    power_supply: EXPORT_SYMBOL cleanups
    ds2760_battery: add current_accum module parameter
    ds2760_battery: handle full_active_uAh == 0 case correctly
    ds2760_battery: add rated_capacity module parameter
    ds2760_battery: export more features
    ds2760_battery: delay power supply registration
    wm8350_power: Implement charge type property
    power_supply: Add a charge_type property, and use it for olpc driver
    olpc_battery: Add an 'error' sysfs device that displays raw errors
    Revert "power: remove POWER_SUPPLY_PROP_CAPACITY_LEVEL"

    Linus Torvalds
     

23 Sep, 2009

2 commits


22 Sep, 2009

3 commits


23 Aug, 2009

1 commit

  • Introduce a core framework for run-time power management of I/O
    devices. Add device run-time PM fields to 'struct dev_pm_info'
    and device run-time PM callbacks to 'struct dev_pm_ops'. Introduce
    a run-time PM workqueue and define some device run-time PM helper
    functions at the core level. Document all these things.

    Special thanks to Alan Stern for his help with the design and
    multiple detailed reviews of the pereceding versions of this patch
    and to Magnus Damm for testing feedback.

    Signed-off-by: Rafael J. Wysocki
    Acked-by: Magnus Damm

    Rafael J. Wysocki
     

02 Jul, 2009

1 commit


01 Jul, 2009

1 commit

  • This reverts commit 8efe444038a205e79b38b7ad03878824901849a8 and
    4cbc76eadf56399cd11fb736b33c53aec9caab8c.

    Richard@laptop.org was apparently using CAPACITY_LEVEL for debugging
    battery/EC problems, and was upset that it was removed. This readds it.

    Conflicts:

    Documentation/power_supply_class.txt

    Signed-off-by: Andres Salomon
    Signed-off-by: Anton Vorontsov

    Andres Salomon
     

15 Jun, 2009

1 commit

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (31 commits)
    trivial: remove the trivial patch monkey's name from SubmittingPatches
    trivial: Fix a typo in comment of addrconf_dad_start()
    trivial: usb: fix missing space typo in doc
    trivial: pci hotplug: adding __init/__exit macros to sgi_hotplug
    trivial: Remove the hyphen from git commands
    trivial: fix ETIMEOUT -> ETIMEDOUT typos
    trivial: Kconfig: .ko is normally not included in module names
    trivial: SubmittingPatches: fix typo
    trivial: Documentation/dell_rbu.txt: fix typos
    trivial: Fix Pavel's address in MAINTAINERS
    trivial: ftrace:fix description of trace directory
    trivial: unnecessary (void*) cast removal in sound/oss/msnd.c
    trivial: input/misc: Fix typo in Kconfig
    trivial: fix grammo in bus_for_each_dev() kerneldoc
    trivial: rbtree.txt: fix rb_entry() parameters in sample code
    trivial: spelling fix in ppc code comments
    trivial: fix typo in bio_alloc kernel doc
    trivial: Documentation/rbtree.txt: cleanup kerneldoc of rbtree.txt
    trivial: Miscellaneous documentation typo fixes
    trivial: fix typo milisecond/millisecond for documentation and source comments.
    ...

    Linus Torvalds
     

13 Jun, 2009

2 commits


17 Oct, 2008

1 commit

  • As pm_trace uses the system's hardware clock to save its magic value,
    users of that option should be warned that using this debug option will
    result in an incorrect system time after resume.

    Signed-off-by: Frans Pop
    Acked-by: Pavel Machek
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Frans Pop
     

14 Oct, 2008

1 commit

  • This improves the machine level API in order to configure
    regulator constraints and consumers as platform data and removes the
    old string based API that required several calls to set up each regulator.

    The intention is to create a struct regulator_init_data, populate
    it's fields with constraints, consumers devices, etc and then register
    the regulator device from board.c in the standard Linux way.

    e.g. regulator LDO2 (supplying codec and sim) platform data.

    /* regulator LDO2 consumer devices */
    static struct regulator_consumer_supply ldo2_consumers[] = {
    {
    .dev = &platform_audio_device.dev,
    .supply = "codec_avdd",
    },
    {
    .dev = &platform_sim_device.dev,
    .supply = "sim_vcc",
    }
    };

    /* regulator LDO2 constraints */
    static struct regulator_init_data ldo2_data = {
    .constraints = {
    .min_uV = 3300000,
    .max_uV = 3300000,
    .valid_modes_mask = REGULATOR_MODE_NORMAL,
    .apply_uV = 1,
    },
    .num_consumer_supplies = ARRAY_SIZE(ldo2_consumers),
    .consumer_supplies = ldo2_consumers,
    };

    /* machine regulator devices with thier consumers and constraints */
    static struct platform_device wm8350_regulator_devices[] = {
    {
    .name = "wm8350-regulator",
    .id = WM8350_LDO_2,
    .dev = {
    .platform_data = &ldo2_data,
    },
    },
    };

    Changes in detail:-

    o Removed all const char* regulator config functions in machine API.
    o Created new struct regulator_init_data to contain regulator
    machine configuration constraints and consmuers.
    o Changed set_supply(), set_machine_constraints(),
    set_consumer_device_supply() to remove their string identifier
    parameters. Also made them static and moved functions nearer top of
    core.c.
    o Removed no longer used inline func to_rdev()
    o Added regulator_get_init_drvdata() to retrieve init data.
    o Added struct device* as parameter to regulator_register().
    o Changed my email address.

    Signed-off-by: Eric Miao
    Signed-off-by: Mark Brown
    Signed-off-by: Liam Girdwood

    Liam Girdwood
     

06 Aug, 2008

1 commit

  • A documentation cleanup patch. With a minor tweak to clarify units for
    kbs.

    [akpm@linux-foundation.org: coding-style fixes]
    Signed-off-by: mark gross
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Richard Hughes
     

02 Aug, 2008

1 commit

  • * 'reg-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/lrg/voltage-2.6:
    regulator: TI bq24022 Li-Ion Charger driver
    regulator: maintainers - add maintainers for regulator framework.
    regulator: documentation - ABI
    regulator: documentation - machine
    regulator: documentation - regulator driver
    regulator: documentation - consumer interface
    regulator: documentation - overview
    regulator: core kbuild files
    regulator: regulator test harness
    regulator: add support for fixed regulators.
    regulator: regulator framework core
    regulator: fixed regulator interface
    regulator: machine driver interface
    regulator: regulator driver interface
    regulator: consumer device interface

    Linus Torvalds
     

30 Jul, 2008

5 commits


25 Jul, 2008

1 commit

  • Remove some obsolete PM documentation.

    The majority of contents of Documentation/power/pm.txt are
    outdated. Remove the outdated parts of this file and move the rest
    to Documentation/power/apm-acpi.txt . Update the index in
    Documentation/power/ as appropriate.

    Signed-off-by: Rafael J. Wysocki
    Acked-by: Pavel Machek
    Acked-by: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Rafael J. Wysocki
     

13 May, 2008

1 commit

  • This adds PROP_CHARGE_COUNTER to the power supply class (documenting it
    as well). The OLPC battery driver uses this for spitting out its ACR
    values (in uAh). We have some rounding errors (the data sheet claims
    416.7, the math actually works out to 416.666667, so we're forced to
    choose between overflows or precision loss. I chose precision loss,
    and stuck w/ data sheet values), but I don't think anyone will care
    that much.

    Signed-off-by: Andres Salomon
    Signed-off-by: Anton Vorontsov

    Andres Salomon
     

20 Apr, 2008

1 commit

  • Modify the PM core to protect its data structures, specifically the
    dpm_active list, from being corrupted if a child of the currently
    suspending device is registered concurrently with its ->suspend()
    callback. In that case, since the new device (the child) is added
    to dpm_active after its parent, the PM core will attempt to
    suspend it after the parent, which is wrong.

    Introduce a new member of struct dev_pm_info, called 'sleeping',
    and use it to check if the parent of the device being added to
    dpm_active has been suspended, in which case the device registration
    fails. Also, use 'sleeping' for checking if the ordering of devices
    on dpm_active is correct.

    Introduce variable 'all_sleeping' that will be set to 'true' once all
    devices have been suspended and make new device registrations fail
    until 'all_sleeping' is reset to 'false', in order to avoid having
    unsuspended devices around while the system is going into a sleep state.

    Remove pm_sleep_rwsem which is not necessary any more.

    Special thanks to Alan Stern for discussions and suggestions that
    lead to the creation of this patch.

    Signed-off-by: Rafael J. Wysocki
    Acked-by: Pavel Machek
    Signed-off-by: Greg Kroah-Hartman

    Rafael J. Wysocki
     

13 Mar, 2008

1 commit


24 Feb, 2008

1 commit

  • During the last step of hibernation in the "platform" mode (with the
    help of ACPI) we use the suspend code, including the devices'
    ->suspend() methods, to prepare the system for entering the ACPI S4
    system sleep state.

    But at least for some devices the operations performed by the
    ->suspend() callback in that case must be different from its operations
    during regular suspend.

    For this reason, introduce the new PM event type PM_EVENT_HIBERNATE and
    pass it to the device drivers' ->suspend() methods during the last phase
    of hibernation, so that they can distinguish this case and handle it as
    appropriate. Modify the drivers that handle PM_EVENT_SUSPEND in a
    special way and need to handle PM_EVENT_HIBERNATE in the same way.

    These changes are necessary to fix a hibernation regression related
    to the i915 driver (ref. http://lkml.org/lkml/2008/2/22/488).

    Signed-off-by: Rafael J. Wysocki
    Acked-by: Pavel Machek
    Tested-by: Jeff Chua
    Signed-off-by: Linus Torvalds

    Rafael J. Wysocki
     

07 Feb, 2008

1 commit


02 Feb, 2008

8 commits


20 Oct, 2007

1 commit

  • Most of these fixes were already submitted for old kernel versions, and were
    approved, but for some reason they never made it into the releases.

    Because this is a consolidation of a couple old missed patches, it touches both
    Kconfigs and documentation texts.

    Signed-off-by: Matt LaPlante
    Acked-by: Randy Dunlap
    Signed-off-by: Adrian Bunk

    Matt LaPlante
     

19 Oct, 2007

4 commits

  • Currently, there's a CONFIG_DISABLE_CONSOLE_SUSPEND that allows one to stop
    the serial console from being suspended when the rest of the machine goes
    to sleep. This is incredibly useful for debugging power management-related
    things; however, having it as a compile-time option has proved to be
    incredibly inconvenient for us (OLPC). There are plenty of times that we
    want serial console to not suspend, but for the most part we'd like serial
    console to be suspended.

    This drops CONFIG_DISABLE_CONSOLE_SUSPEND, and replaces it with a kernel
    boot parameter (no_console_suspend). By default, the serial console will
    be suspended along with the rest of the system; by passing
    'no_console_suspend' to the kernel during boot, serial console will remain
    alive during suspend.

    For now, this is pretty serial console specific; further fixes could be
    applied to make this work for things like netconsole.

    Signed-off-by: Andres Salomon
    Acked-by: "Rafael J. Wysocki"
    Acked-by: Pavel Machek
    Cc: Nigel Cunningham
    Cc: Russell King
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andres Salomon
     
  • The freezer should not send signals to kernel threads, since that may lead to
    subtle problems. In particular, commit
    b74d0deb968e1f85942f17080eace015ce3c332c has changed recalc_sigpending_tsk()
    so that it doesn't clear TIF_SIGPENDING. For this reason, if the freezer
    continues to send fake signals to kernel threads and the freezing of kernel
    threads fails, some of them may be running with TIF_SIGPENDING set forever.

    Accordingly, recalc_sigpending_tsk() shouldn't set the task's TIF_SIGPENDING
    flag if TIF_FREEZE is set.

    Signed-off-by: Rafael J. Wysocki
    Cc: Nigel Cunningham
    Cc: Pavel Machek
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Rafael J. Wysocki
     
  • One important reason to freeze tasks, which is that we don't want them to
    allocate memory after freeing it for the hibernation image, has not been
    documented. Fix it.

    Signed-off-by: Rafael J. Wysocki
    Acked-by: Pavel Machek
    Acked-by: Nigel Cunningham
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Rafael J. Wysocki
     
  • The name of 'struct pm_ops' suggests that it is related to the power
    management in general, but in fact it is only related to suspend.  Moreover,
    its name should indicate what this structure is used for, so it seems
    reasonable to change it to 'struct platform_suspend_ops'.  In that case, the
    name of the global variable of this type used by the PM core and the names of
    related functions should be changed accordingly.

    Signed-off-by: Rafael J. Wysocki
    Acked-by: Pavel Machek
    Cc: Len Brown
    Cc: Greg KH
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Rafael J. Wysocki