04 Jan, 2012

1 commit

  • This patch converts the drivers in drivers/power/* to use the
    module_platform_driver() macro which makes the code smaller and a bit
    simpler.

    Cc: Mike Rapoport
    Cc: Lars-Peter Clausen
    Cc: Nithish Mahalingam
    Cc: MyungJoo Ham
    Cc: Haojian Zhuang
    Cc: Balaji Rao
    Cc: Mark Brown
    Signed-off-by: Axel Lin
    Acked-by: Clifton Barnes
    Signed-off-by: Anton Vorontsov

    Axel Lin
     

22 Sep, 2010

1 commit


30 Mar, 2010

1 commit

  • …it slab.h inclusion from percpu.h

    percpu.h is included by sched.h and module.h and thus ends up being
    included when building most .c files. percpu.h includes slab.h which
    in turn includes gfp.h making everything defined by the two files
    universally available and complicating inclusion dependencies.

    percpu.h -> slab.h dependency is about to be removed. Prepare for
    this change by updating users of gfp and slab facilities include those
    headers directly instead of assuming availability. As this conversion
    needs to touch large number of source files, the following script is
    used as the basis of conversion.

    http://userweb.kernel.org/~tj/misc/slabh-sweep.py

    The script does the followings.

    * Scan files for gfp and slab usages and update includes such that
    only the necessary includes are there. ie. if only gfp is used,
    gfp.h, if slab is used, slab.h.

    * When the script inserts a new include, it looks at the include
    blocks and try to put the new include such that its order conforms
    to its surrounding. It's put in the include block which contains
    core kernel includes, in the same order that the rest are ordered -
    alphabetical, Christmas tree, rev-Xmas-tree or at the end if there
    doesn't seem to be any matching order.

    * If the script can't find a place to put a new include (mostly
    because the file doesn't have fitting include block), it prints out
    an error message indicating which .h file needs to be added to the
    file.

    The conversion was done in the following steps.

    1. The initial automatic conversion of all .c files updated slightly
    over 4000 files, deleting around 700 includes and adding ~480 gfp.h
    and ~3000 slab.h inclusions. The script emitted errors for ~400
    files.

    2. Each error was manually checked. Some didn't need the inclusion,
    some needed manual addition while adding it to implementation .h or
    embedding .c file was more appropriate for others. This step added
    inclusions to around 150 files.

    3. The script was run again and the output was compared to the edits
    from #2 to make sure no file was left behind.

    4. Several build tests were done and a couple of problems were fixed.
    e.g. lib/decompress_*.c used malloc/free() wrappers around slab
    APIs requiring slab.h to be added manually.

    5. The script was run on all .h files but without automatically
    editing them as sprinkling gfp.h and slab.h inclusions around .h
    files could easily lead to inclusion dependency hell. Most gfp.h
    inclusion directives were ignored as stuff from gfp.h was usually
    wildly available and often used in preprocessor macros. Each
    slab.h inclusion directive was examined and added manually as
    necessary.

    6. percpu.h was updated not to include slab.h.

    7. Build test were done on the following configurations and failures
    were fixed. CONFIG_GCOV_KERNEL was turned off for all tests (as my
    distributed build env didn't work with gcov compiles) and a few
    more options had to be turned off depending on archs to make things
    build (like ipr on powerpc/64 which failed due to missing writeq).

    * x86 and x86_64 UP and SMP allmodconfig and a custom test config.
    * powerpc and powerpc64 SMP allmodconfig
    * sparc and sparc64 SMP allmodconfig
    * ia64 SMP allmodconfig
    * s390 SMP allmodconfig
    * alpha SMP allmodconfig
    * um on x86_64 SMP allmodconfig

    8. percpu.h modifications were reverted so that it could be applied as
    a separate patch and serve as bisection point.

    Given the fact that I had only a couple of failures from tests on step
    6, I'm fairly confident about the coverage of this conversion patch.
    If there is a breakage, it's likely to be something in one of the arch
    headers which should be easily discoverable easily on most builds of
    the specific arch.

    Signed-off-by: Tejun Heo <tj@kernel.org>
    Guess-its-ok-by: Christoph Lameter <cl@linux-foundation.org>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Lee Schermerhorn <Lee.Schermerhorn@hp.com>

    Tejun Heo
     

16 Dec, 2009

1 commit

  • * git://git.infradead.org/battery-2.6:
    power_supply_sysfs: Handle -ENODATA in a special way
    wm831x_backup: Remove unused variables
    gta02: Set pcf50633 charger_reference_current_ma
    pcf50633: Query charger status directly
    pcf50633: Properly reenable charging when the supply conditions change
    pcf50633: Get rid of charging restart software auto-triggering
    pcf50633: introduces battery charging current control
    pcf50633: Add ac power supply class to the charger
    wm831x: Factor out WM831x backup battery charger

    Linus Torvalds
     

14 Dec, 2009

1 commit

  • Since platform_device_add_data copies the passed data, the allocated
    subdev_pdata is never freed. A simple fix would be to either free subdev_pdata
    or put it onto the stack. But since the pcf50633 child devices can rely on
    beeing children of the pcf50633 core device it's much more elegant to get access
    to pcf50633 core structure through that link. This allows to get completly rid
    of pcf5033_subdev_pdata.

    Signed-off-by: Lars-Peter Clausen
    Signed-off-by: Paul Fertser
    Signed-off-by: Samuel Ortiz

    Lars-Peter Clausen
     

16 Nov, 2009

5 commits

  • Current scheme is fragile and is likely to go off sync, especially on
    batfull->adapter charging automatic MBC transition.

    Query the status bit every time we need it instead.

    We need to export another function to query for USB presence because
    we can't read anything from PCF50633 (via I2C) inside irq context and
    that is needed by usb gadgets.

    Signed-off-by: Paul Fertser
    Signed-off-by: Anton Vorontsov

    Paul Fertser
     
  • If chgmod == BATFULL, setting chgena has no effect. Datasheet says we
    need to set resume instead but when autoresume is used resume doesn't
    work. Clear and set chgena instead.

    This enables a user to force charging by re-plugging USB even when the
    charger entered Battery Full mode, might be handy before a long trip.

    Signed-off-by: Paul Fertser
    Signed-off-by: Anton Vorontsov

    Paul Fertser
     
  • After reaching Battery Full condition MBC state machine switches back
    into charging mode when the battery voltage falls below 96% of a
    battery float voltage. The voltage drop in Li-Ion batteries is
    marginal (1-2%) till about 80% of its capacity - which means, after a
    BATFULL, charging won't be restarted until 75-80%.

    That is a desired behaviour recommended by battery manufacturers,
    don't mess with it.

    Signed-off-by: Paul Fertser
    Signed-off-by: Anton Vorontsov

    Paul Fertser
     
  • Implement a new sysfs attribute to allow changing MBC charging limit on
    the fly independently of usb current limit. It also gets set
    automatically every time usb current limit is changed.

    Limiting charging current also prevents violating USB specification in
    the case when the whole device is shut down and usb current limit is
    reset to the factory default by the pcf50633 state transition.

    Signed-off-by: Balaji Rao
    Signed-off-by: Paul Fertser
    Signed-off-by: Anton Vorontsov

    Balaji Rao
     
  • This adds an appropriate ac power_supply class and shows usb only when
    at the appropriate current limit.

    Signed-off-by: Sean McNeil
    Signed-off-by: Paul Fertser
    Signed-off-by: Anton Vorontsov

    Sean McNeil
     

03 Feb, 2009

3 commits

  • The 'pcf50633_mbc_set_status' function is unused, so remove it.

    Signed-off-by: Balaji Rao
    Cc: Andy Green
    Signed-off-by: Anton Vorontsov

    Balaji Rao
     
  • The battery charger state machine switches into charging mode when
    the battery voltage falls below 96% of a battery float voltage. But
    the voltage drop in Li-ion batteries is marginal(1~2 %) till about
    80% of its capacity - which means, after a BATFULL, charging won't
    be restarted until 80%.

    This work_struct function restarts charging at regular intervals to
    make sure the battery doesn't discharge too much.

    Signed-off-by: Balaji Rao
    Cc: Andy Green
    Signed-off-by: Anton Vorontsov

    Balaji Rao
     
  • container_of(psy, struct pcf50633_mbc, usb); should be
    container_of(psy, struct pcf50633_mbc, adapter);

    Signed-off-by: Balaji Rao
    Cc: Andy Green
    Signed-off-by: Anton Vorontsov

    Balaji Rao
     

11 Jan, 2009

1 commit