21 May, 2016

1 commit

  • async_synchronize_cookie() only serialises all tasks up to the specified
    cookie, and importantly does not wait for the task corresponding with
    the cookie. [This is so that it can be trivially used from inside the
    async_func_t in order to serialise with all preceding tasks.] In order
    to serialise with acpi_battery_init_async() we need to compensate and
    pass in the next cookie instead.

    The impact today is zero since performing an async_schedule() from inside
    a module init function will trigger an async_synchronize_full() prior to
    the module loader's completion. However, if the probe was moved to its
    own unregistered async_domain, then the async_synchronize_cookie would
    be replaced with an async_synchronize_full_domain.

    Signed-off-by: Chris Wilson
    Signed-off-by: Rafael J. Wysocki

    Chris Wilson
     

08 Jul, 2015

1 commit


15 Jun, 2015

3 commits

  • The bat_dmi_table[] DMI table is referenced from the __init function
    acpi_battery_init_async() only. It and its referenced functions can
    therefore be marked __initconst to free up ~1kB of runtime memory after
    initialization is done.

    Signed-off-by: Mathias Krause
    Signed-off-by: Rafael J. Wysocki

    Mathias Krause
     
  • Make the acpi_battery_units() function take a const argument and return
    a const char*, too. Also make it static. It probably doesn't matter, as
    gcc will be clever enough to optimize and inline the code even without
    these hints. However, we also get rid of a #ifdef block by moving the
    function closer to its usage location, so it's at least a small gain in
    code readability.

    Signed-off-by: Mathias Krause
    Signed-off-by: Rafael J. Wysocki

    Mathias Krause
     
  • The offset tables are only read, not modified. Make them const.

    Signed-off-by: Mathias Krause
    Signed-off-by: Rafael J. Wysocki

    Mathias Krause
     

14 May, 2015

3 commits


15 Apr, 2015

2 commits

  • Pull power management and ACPI updates from Rafael Wysocki:
    "These are mostly fixes and cleanups all over, although there are a few
    items that sort of fall into the new feature category.

    First off, we have new callbacks for PM domains that should help us to
    handle some issues related to device initialization in a better way.

    There also is some consolidation in the unified device properties API
    area allowing us to use that inferface for accessing data coming from
    platform initialization code in addition to firmware-provided data.

    We have some new device/CPU IDs in a few drivers, support for new
    chips and a new cpufreq driver too.

    Specifics:

    - Generic PM domains support update including new PM domain callbacks
    to handle device initialization better (Russell King, Rafael J
    Wysocki, Kevin Hilman)

    - Unified device properties API update including a new mechanism for
    accessing data provided by platform initialization code (Rafael J
    Wysocki, Adrian Hunter)

    - ARM cpuidle update including ARM32/ARM64 handling consolidation
    (Daniel Lezcano)

    - intel_idle update including support for the Silvermont Core in the
    Baytrail SOC and for the Airmont Core in the Cherrytrail and
    Braswell SOCs (Len Brown, Mathias Krause)

    - New cpufreq driver for Hisilicon ACPU (Leo Yan)

    - intel_pstate update including support for the Knights Landing chip
    (Dasaratharaman Chandramouli, Kristen Carlson Accardi)

    - QorIQ cpufreq driver update (Tang Yuantian, Arnd Bergmann)

    - powernv cpufreq driver update (Shilpasri G Bhat)

    - devfreq update including Tegra support changes (Tomeu Vizoso,
    MyungJoo Ham, Chanwoo Choi)

    - powercap RAPL (Running-Average Power Limit) driver update including
    support for Intel Broadwell server chips (Jacob Pan, Mathias Krause)

    - ACPI device enumeration update related to the handling of the
    special PRP0001 device ID allowing DT-style 'compatible' property
    to be used for ACPI device identification (Rafael J Wysocki)

    - ACPI EC driver update including limited _DEP support (Lan Tianyu,
    Lv Zheng)

    - ACPI backlight driver update including a new mechanism to allow
    native backlight handling to be forced on non-Windows 8 systems and
    a new quirk for Lenovo Ideapad Z570 (Aaron Lu, Hans de Goede)

    - New Windows Vista compatibility quirk for Sony VGN-SR19XN (Chen Yu)

    - Assorted ACPI fixes and cleanups (Aaron Lu, Martin Kepplinger,
    Masanari Iida, Mika Westerberg, Nan Li, Rafael J Wysocki)

    - Fixes related to suspend-to-idle for the iTCO watchdog driver and
    the ACPI core system suspend/resume code (Rafael J Wysocki, Chen Yu)

    - PM tracing support for the suspend phase of system suspend/resume
    transitions (Zhonghui Fu)

    - Configurable delay for the system suspend/resume testing facility
    (Brian Norris)

    - PNP subsystem cleanups (Peter Huewe, Rafael J Wysocki)"

    * tag 'pm+acpi-4.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (74 commits)
    ACPI / scan: Fix NULL pointer dereference in acpi_companion_match()
    ACPI / scan: Rework modalias creation when "compatible" is present
    intel_idle: mark cpu id array as __initconst
    powercap / RAPL: mark rapl_ids array as __initconst
    powercap / RAPL: add ID for Broadwell server
    intel_pstate: Knights Landing support
    intel_pstate: remove MSR test
    cpufreq: fix qoriq uniprocessor build
    ACPI / scan: Take the PRP0001 position in the list of IDs into account
    ACPI / scan: Simplify acpi_match_device()
    ACPI / scan: Generalize of_compatible matching
    device property: Introduce firmware node type for platform data
    device property: Make it possible to use secondary firmware nodes
    PM / watchdog: iTCO: stop watchdog during system suspend
    cpufreq: hisilicon: add acpu driver
    ACPI / EC: Call acpi_walk_dep_device_list() after installing EC opregion handler
    cpufreq: powernv: Report cpu frequency throttling
    intel_idle: Add support for the Airmont Core in the Cherrytrail and Braswell SOCs
    intel_idle: Update support for Silvermont Core in Baytrail SOC
    PM / devfreq: tegra: Register governor on module init
    ...

    Linus Torvalds
     
  • Commit 297d716f6260 ("power_supply: Change ownership from driver to
    core") inverted the logic in battery_notify(). As an effect already
    present battery was re-added on each system suspend or hibernation.

    WARNING: CPU: 0 PID: 303 at ../fs/sysfs/dir.c:31 sysfs_warn_dup+0x68/0x80()
    sysfs: cannot create duplicate filename '/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A03:00/PNP0C0A:00/power_supply/BAT0'
    CPU: 0 PID: 303 Comm: rtcwake Not tainted 4.0.0-ARCH-02621-g07e6253af953 #48
    Call Trace:
    sysfs_create_dir_ns+0x8d/0xa0
    kobject_add_internal+0xb6/0x370
    kobject_add+0x6f/0xd0
    device_add+0x120/0x6c0
    __power_supply_register+0x145/0x290
    power_supply_register_no_ws+0x10/0x20
    sysfs_add_battery+0x84/0xc5 [battery]
    battery_notify+0x45/0x6b [battery]
    notifier_call_chain+0x4f/0x80
    __blocking_notifier_call_chain+0x4b/0x70
    blocking_notifier_call_chain+0x16/0x20
    pm_notifier_call_chain+0x1a/0x40
    pm_suspend+0x3ed/0x4e0

    Signed-off-by: Krzysztof Kozlowski
    Reported-by: Linus Torvalds
    Acked-by: Rafael J. Wysocki
    Reviewed-By: Sebastian Reichel
    Signed-off-by: Linus Torvalds

    Krzysztof Kozlowski
     

18 Mar, 2015

1 commit


14 Mar, 2015

2 commits

  • Change the ownership of power_supply structure from each driver
    implementing the class to the power supply core.

    The patch changes power_supply_register() function thus all drivers
    implementing power supply class are adjusted.

    Each driver provides the implementation of power supply. However it
    should not be the owner of power supply class instance because it is
    exposed by core to other subsystems with power_supply_get_by_name().
    These other subsystems have no knowledge when the driver will unregister
    the power supply. This leads to several issues when driver is unbound -
    mostly because user of power supply accesses freed memory.

    Instead let the core own the instance of struct 'power_supply'. Other
    users of this power supply will still access valid memory because it
    will be freed when device reference count reaches 0. Currently this
    means "it will leak" but power_supply_put() call in next patches will
    solve it.

    This solves invalid memory references in following race condition
    scenario:

    Thread 1: charger manager
    Thread 2: power supply driver, used by charger manager

    THREAD 1 (charger manager) THREAD 2 (power supply driver)
    ========================== ==============================
    psy = power_supply_get_by_name()
    Driver unbind, .remove
    power_supply_unregister()
    Device fully removed
    psy->get_property()

    The 'get_property' call is executed in invalid context because the driver was
    unbound and struct 'power_supply' memory was freed.

    This could be observed easily with charger manager driver (here compiled
    with max17040 fuel gauge):

    $ cat /sys/devices/virtual/power_supply/cm-battery/capacity &
    $ echo "1-0036" > /sys/bus/i2c/drivers/max17040/unbind
    [ 55.725123] Unable to handle kernel NULL pointer dereference at virtual address 00000000
    [ 55.732584] pgd = d98d4000
    [ 55.734060] [00000000] *pgd=5afa2831, *pte=00000000, *ppte=00000000
    [ 55.740318] Internal error: Oops: 80000007 [#1] PREEMPT SMP ARM
    [ 55.746210] Modules linked in:
    [ 55.749259] CPU: 1 PID: 2936 Comm: cat Tainted: G W 3.19.0-rc1-next-20141226-00048-gf79f475f3c44-dirty #1496
    [ 55.760190] Hardware name: SAMSUNG EXYNOS (Flattened Device Tree)
    [ 55.766270] task: d9b76f00 ti: daf54000 task.ti: daf54000
    [ 55.771647] PC is at 0x0
    [ 55.774182] LR is at charger_get_property+0x2f4/0x36c
    [ 55.779201] pc : [] lr : [] psr: 60000013
    [ 55.779201] sp : daf55e90 ip : 00000003 fp : 00000000
    [ 55.790657] r10: 00000000 r9 : c06e2878 r8 : d9b26c68
    [ 55.795865] r7 : dad81610 r6 : daec7410 r5 : daf55ebc r4 : 00000000
    [ 55.802367] r3 : 00000000 r2 : daf55ebc r1 : 0000002a r0 : d9b26c68
    [ 55.808879] Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user
    [ 55.815994] Control: 10c5387d Table: 598d406a DAC: 00000015
    [ 55.821723] Process cat (pid: 2936, stack limit = 0xdaf54210)
    [ 55.827451] Stack: (0xdaf55e90 to 0xdaf56000)
    [ 55.831795] 5e80: 60000013 c01459c4 0000002a c06f8ef8
    [ 55.839956] 5ea0: db651000 c06f8ef8 daebac00 c04cb668 daebac08 c0346864 00000000 c01459c4
    [ 55.848115] 5ec0: d99eaa80 c06f8ef8 00000fff 00001000 db651000 c027f25c c027f240 d99eaa80
    [ 55.856274] 5ee0: d9a06c00 c0146218 daf55f18 00001000 d99eaa80 db4c18c0 00000001 00000001
    [ 55.864468] 5f00: daf55f80 c0144c78 c0144c54 c0107f90 00015000 d99eaab0 00000000 00000000
    [ 55.872603] 5f20: 000051c7 00000000 db4c18c0 c04a9370 00015000 00001000 daf55f80 00001000
    [ 55.880763] 5f40: daf54000 00015000 00000000 c00e53dc db4c18c0 c00e548c 0000000d 00008124
    [ 55.888937] 5f60: 00000001 00000000 00000000 db4c18c0 db4c18c0 00001000 00015000 c00e5550
    [ 55.897099] 5f80: 00000000 00000000 00001000 00001000 00015000 00000003 00000003 c000f364
    [ 55.905239] 5fa0: 00000000 c000f1a0 00001000 00015000 00000003 00015000 00001000 0001333c
    [ 55.913399] 5fc0: 00001000 00015000 00000003 00000003 00000002 00000000 00000000 00000000
    [ 55.921560] 5fe0: 7fffe000 be999850 0000a225 b6f3c19c 60000010 00000003 00000000 00000000
    [ 55.929744] [] (charger_get_property) from [] (power_supply_show_property+0x48/0x20c)
    [ 55.939286] [] (power_supply_show_property) from [] (dev_attr_show+0x1c/0x48)
    [ 55.948130] [] (dev_attr_show) from [] (sysfs_kf_seq_show+0x84/0x104)
    [ 55.956298] [] (sysfs_kf_seq_show) from [] (kernfs_seq_show+0x24/0x28)
    [ 55.964536] [] (kernfs_seq_show) from [] (seq_read+0x1b0/0x484)
    [ 55.972172] [] (seq_read) from [] (__vfs_read+0x18/0x4c)
    [ 55.979188] [] (__vfs_read) from [] (vfs_read+0x7c/0x100)
    [ 55.986304] [] (vfs_read) from [] (SyS_read+0x40/0x8c)
    [ 55.993164] [] (SyS_read) from [] (ret_fast_syscall+0x0/0x48)
    [ 56.000626] Code: bad PC value
    [ 56.011652] ---[ end trace 7b64343fbdae8ef1 ]---

    Signed-off-by: Krzysztof Kozlowski
    Reviewed-by: Bartlomiej Zolnierkiewicz

    [for the nvec part]
    Reviewed-by: Marc Dietrich

    [for compal-laptop.c]
    Acked-by: Darren Hart

    [for the mfd part]
    Acked-by: Lee Jones

    [for the hid part]
    Acked-by: Jiri Kosina

    [for the acpi part]
    Acked-by: Rafael J. Wysocki

    Signed-off-by: Sebastian Reichel

    Krzysztof Kozlowski
     
  • Add new structure 'power_supply_config' for holding run-time
    initialization data like of_node, supplies and private driver data.

    The power_supply_register() function is changed so all power supply
    drivers need updating.

    When registering the power supply this new 'power_supply_config' should be
    used instead of directly initializing 'struct power_supply'. This allows
    changing the ownership of power_supply structure from driver to the
    power supply core in next patches.

    When a driver does not use of_node or supplies then it should use NULL
    as config. If driver uses of_node or supplies then it should allocate
    config on stack and initialize it with proper values.

    Signed-off-by: Krzysztof Kozlowski
    Reviewed-by: Bartlomiej Zolnierkiewicz
    Acked-by: Pavel Machek

    [for the nvec part]
    Reviewed-by: Marc Dietrich

    [for drivers/platform/x86/compal-laptop.c]
    Reviewed-by: Darren Hart

    [for drivers/hid/*]
    Reviewed-by: Jiri Kosina

    Signed-off-by: Sebastian Reichel

    Krzysztof Kozlowski
     

24 Nov, 2014

1 commit

  • ACPI 5.0 introduces _DEP (Operation Region Dependencies) to designate
    device objects that OSPM should assign a higher priority in start
    ordering due to future operation region accesses.

    On Asus T100TA, ACPI battery info are read from a I2C slave device via
    I2C operation region. Before I2C operation region handler is installed,
    battery _STA always returns 0. There is a _DEP method of designating
    start order under battery device node.

    This patch is to implement _DEP feature to fix battery issue on the
    Asus T100TA. Introducing acpi_dep_list and adding dep_unmet count
    in struct acpi_device. During ACPI namespace scan, create struct
    acpi_dep_data for a valid pair of master (device pointed to by _DEP)/
    slave(device with _DEP), record master's and slave's ACPI handle in
    it and put it into acpi_dep_list. The dep_unmet count will increase
    by one if there is a device under its _DEP. Driver's probe() should
    return EPROBE_DEFER when find dep_unmet is larger than 0. When I2C
    operation region handler is installed, remove all struct acpi_dep_data
    on the acpi_dep_list whose master is pointed to I2C host controller
    and decrease slave's dep_unmet. When dep_unmet decreases to 0, all
    _DEP conditions are met and then do acpi_bus_attach() for the device
    in order to resolve battery _STA issue on the Asus T100TA.

    Link: https://bugzilla.kernel.org/show_bug.cgi?id=69011
    Tested-by: Jan-Michael Brummer
    Tested-by: Adam Williamson
    Tested-by: Michael Shigorin
    Acked-by: Wolfram Sang
    Acked-by: Mika Westerberg
    Signed-off-by: Lan Tianyu
    Signed-off-by: Rafael J. Wysocki

    Lan Tianyu
     

25 Sep, 2014

1 commit

  • The kernel used to contain two functions for length-delimited,
    case-insensitive string comparison, strnicmp with correct semantics
    and a slightly buggy strncasecmp. The latter is the POSIX name, so
    strnicmp was renamed to strncasecmp, and strnicmp made into a wrapper
    for the new strncasecmp to avoid breaking existing users.

    To allow the compat wrapper strnicmp to be removed at some point in
    the future, and to avoid the extra indirection cost, do
    s/strnicmp/strncasecmp/g.

    Signed-off-by: Rasmus Villemoes
    Signed-off-by: Rafael J. Wysocki

    Rasmus Villemoes
     

09 Sep, 2014

2 commits

  • This reverts commit 232de5143790 ("ACPI / battery: fix wrong value of
    capacity_now reported when fully charged")

    There is nothing wrong or unexpected about 'capacity_now' increasing above
    the last 'full_charge_capacity' value. Different charging cycles will cause
    'full_charge_capacity' to vary, both up and down. Good battery firmwares
    will update 'full_charge_capacity' when the current charging cycle is
    complete, increasing it if necessary. It might even go above
    'design_capacity' on a fresh and healthy battery.

    Capping 'capacity_now' to 'full_charge_capacity' is plain wrong, and
    printing a warning if this doesn't happen to match the 'design_capacity'
    is both annoying and terribly wrong.

    This results in bogus warnings on perfectly working systems/firmwares:

    [Firmware Bug]: battery: reported current charge level (39800) is higher than reported maximum charge level (39800).

    and wrong values being reported for 'capacity_now' and
    'full_charge_capacity' after the warning has been triggered.

    Fixes: 232de5143790 ("ACPI / battery: fix wrong value of capacity_now reported when fully charged")
    Cc: 3.16+ # 3.16+
    Signed-off-by: Bjørn Mork
    Signed-off-by: Rafael J. Wysocki

    Bjørn Mork
     
  • This reverts commit d719870b41e0 ("ACPI / battery: Fix warning message in
    acpi_battery_get_state()")

    Capping 'capacity_now' to 'full_charge_capacity' is plain wrong. If this
    is necessary to work around some buggy firmware, then the workaround needs
    protection against being applied to working firmwares.

    Good battery firmwares will allow 'capacity_now' to increase above
    'full_charge_capacity', and will update the latter when the battery
    is fully charged. By capping 'capacity_now' we lose accurate capacity
    reporting until charging is complete whenever 'full_charge_capacity'
    needs to be increased.

    Fixes: d719870b41e0 ("ACPI / battery: Fix warning message in acpi_battery_get_state()")
    Cc: 3.16+ # 3.16+
    Signed-off-by: Bjørn Mork
    Signed-off-by: Rafael J. Wysocki

    Bjørn Mork
     

10 Aug, 2014

1 commit

  • capacity_now should be assigned after comparing it to design_capacity.

    Otherwise warning is printed even when capacity_now before assignment is
    equal to design_capacity, making the check useless and "current charge level"
    wrong (it should be higher than, not equal to, "maximum charge level", which
    is full_charge_capacity):

    "battery: reported current charge level (56410) is higher than reported
    maximum charge level (56410)."

    Fixes: 232de5143790 (ACPI / battery: fix wrong value of capacity_now reported when fully charged)
    Signed-off-by: Mariusz Ceier
    Cc: 3.16+ # 3.16+
    [rjw: Subject]
    Signed-off-by: Rafael J. Wysocki

    Mariusz Ceier
     

30 Jul, 2014

1 commit


08 Jul, 2014

1 commit

  • It seems that some batteries (noticed on DELL JYPJ136) assume
    capacity_now = design_capacity when fully charged. This causes
    reported capacity to suddenly jump to >full_charge_capacity (and that
    means capacity reported to userspace is >100% and incorrect)
    values after 99%. This patch detects capacity_now > full_charge_capacity,
    notifies userspace (unless it is the known bug where capacity_now ==
    design_capacity) and trims the value to full_charge_capacity.

    Signed-off-by: Josef Gajdusek
    Signed-off-by: Rafael J. Wysocki

    Josef Gajdusek
     

07 Jul, 2014

1 commit

  • Some machines (eg. Lenovo Z480) ECs are not stable during boot up
    and causes battery driver fails to be loaded due to failure of getting
    battery information from EC sometimes. After several retries, the
    operation will work. This patch is to retry to get battery information 5
    times if the first try fails.

    Link: https://bugzilla.kernel.org/show_bug.cgi?id=75581
    Reported-and-tested-by: naszar
    Cc: All applicable
    Signed-off-by: Lan Tianyu
    Signed-off-by: Rafael J. Wysocki

    Lan Tianyu
     

19 Jun, 2014

1 commit


17 Jun, 2014

3 commits

  • simple_strto*() are obsolete; use kstrto*() instead. Add proper error
    checking.

    Signed-off-by: Christoph Jaeger
    Acked-by: David Rientjes
    Signed-off-by: Rafael J. Wysocki

    Christoph Jaeger
     
  • On Acer Aspire V5-573G battery notifications are sometimes
    triggered too early. For example, when AC is unplugged and
    notification is triggered, battery state is still reported as
    "Full", and changes to "Discharging" only after short delay,
    without any notification.

    This patch solves the problem by adding 1 second sleep.
    Similar quirk is already implemented in AC driver for other laptop.

    Signed-off-by: Alexander Mezin
    Acked-by: Lan Tianyu
    Signed-off-by: Rafael J. Wysocki

    Alexander Mezin
     
  • Use callback for setting up quirk instead of checking return code
    of dmi_check_system(). This change will allow using bat_dmi_table
    for other quirks.

    Signed-off-by: Alexander Mezin
    Acked-by: Lan Tianyu
    Signed-off-by: Rafael J. Wysocki

    Alexander Mezin
     

30 May, 2014

2 commits

  • ACPI Battery device receives notifications from firmware frequently,
    and most of these notifications are some general events, like battery
    remaining capacity change, etc, which should not wake the system up
    if the system is in suspend/hibernate state.

    This causes a problem that the system wakes up from suspend to freeze
    shortly, because there is an ACPI battery notification every 10 seconds.

    Fix the problem in this patch by registering ACPI battery device'
    own wakeup source, and waking up the system only when the battery remaining
    capacity is critical low, or lower than the alarm capacity set via _BTP.

    Link: https://bugzilla.kernel.org/show_bug.cgi?id=76221
    Signed-off-by: Zhang Rui
    Signed-off-by: Rafael J. Wysocki

    Zhang Rui
     
  • ACPI battery device receives notifications when
    1. the remaining battery capacity becomes critical low
    2. the trip point set by the _BTP (Design capacity of Warning by default)
    is reached or crossed.

    So it is able to support POWER_SUPPLY_PROP_CAPACITY_LEVEL to report
    POWER_SUPPLY_CAPACITY_LEVEL_CRITICAL,
    POWER_SUPPLY_CAPACITY_LEVEL_LOW,
    POWER_SUPPLY_CAPACITY_LEVEL_NORMAL,
    POWER_SUPPLY_CAPACITY_LEVEL_FULL,
    capacity levels to power supply core and user space.

    Introduce support for POWER_SUPPLY_PROP_CAPACITY_LEVEL in this patch.

    Signed-off-by: Zhang Rui
    Signed-off-by: Rafael J. Wysocki

    Zhang Rui
     

16 May, 2014

1 commit

  • Most time of battery resume callback is spent on executing AML code
    _BTP, _BIF and _BIF to get battery info, status and set alarm. These
    AML methods may access EC operation regions several times and consumes
    time.

    These operations are not necessary during devices resume and can run
    during POST_SUSPEND/HIBERNATION event when all processes are thawed.

    This also can avoid removing and adding battery sysfs nodes every system
    resume even if the battery unit is not actually changed. The original code
    updates sysfs nodes without check and this seems not reasonable.

    Signed-off-by: Lan Tianyu
    Signed-off-by: Rafael J. Wysocki

    Lan Tianyu
     

06 May, 2014

1 commit


19 Mar, 2014

2 commits


13 Feb, 2014

1 commit


05 Feb, 2014

1 commit


13 Jan, 2014

1 commit

  • * acpi-cleanup: (22 commits)
    ACPI / tables: Return proper error codes from acpi_table_parse() and fix comment.
    ACPI / tables: Check if id is NULL in acpi_table_parse()
    ACPI / proc: Include appropriate header file in proc.c
    ACPI / EC: Remove unused functions and add prototype declaration in internal.h
    ACPI / dock: Include appropriate header file in dock.c
    ACPI / PCI: Include appropriate header file in pci_link.c
    ACPI / PCI: Include appropriate header file in pci_slot.c
    ACPI / EC: Mark the function acpi_ec_add_debugfs() as static in ec_sys.c
    ACPI / NVS: Include appropriate header file in nvs.c
    ACPI / OSL: Mark the function acpi_table_checksum() as static
    ACPI / processor: initialize a variable to silence compiler warning
    ACPI / processor: use ACPI_COMPANION() to get ACPI device
    ACPI: correct minor typos
    ACPI / sleep: Drop redundant acpi_disabled check
    ACPI / dock: Drop redundant acpi_disabled check
    ACPI / table: Replace '1' with specific error return values
    ACPI: remove trailing whitespace
    ACPI / IBFT: Fix incorrect inclusion in iSCSI boot firmware module
    ACPI / i915: Fix incorrect inclusions via
    SFI / ACPI: Fix warnings reported during builds with W=1
    ...

    Conflicts:
    drivers/acpi/nvs.c
    drivers/hwmon/asus_atk0110.c

    Rafael J. Wysocki
     

07 Jan, 2014

1 commit

  • The AML method _BIX of NEC LZ750/LS returns a broken package which
    skips the first member "Revision" (ACPI 5.0, Table 10-234).

    Add a quirk for this machine to skip member "Revision" during parsing
    the package returned by _BIX.

    Reference: https://bugzilla.kernel.org/show_bug.cgi?id=67351
    Reported-and-tested-by: Francisco Castro
    Cc: 3.8+ " 3.8+
    Signed-off-by: Lan Tianyu
    Reviewed-by: Dmitry Torokhov
    Signed-off-by: Rafael J. Wysocki

    Lan Tianyu
     

07 Dec, 2013

1 commit

  • Replace direct inclusions of , and
    , which are incorrect, with
    inclusions and remove some inclusions of those files that aren't
    necessary.

    First of all, , and
    should not be included directly from any files that are built for
    CONFIG_ACPI unset, because that generally leads to build warnings about
    undefined symbols in !CONFIG_ACPI builds. For CONFIG_ACPI set,
    includes those files and for CONFIG_ACPI unset it
    provides stub ACPI symbols to be used in that case.

    Second, there are ordering dependencies between those files that always
    have to be met. Namely, it is required that be included
    prior to so that the acpi_pci_root declarations the
    latter depends on are always there. And which provides
    basic ACPICA type declarations should always be included prior to any other
    ACPI headers in CONFIG_ACPI builds. That also is taken care of including
    as appropriate.

    Signed-off-by: Lv Zheng
    Cc: Greg Kroah-Hartman
    Cc: Matthew Garrett
    Cc: Tony Luck
    Cc: "H. Peter Anvin"
    Acked-by: Bjorn Helgaas (drivers/pci stuff)
    Acked-by: Konrad Rzeszutek Wilk (Xen stuff)
    Signed-off-by: Rafael J. Wysocki

    Lv Zheng
     

12 Oct, 2013

1 commit


27 Aug, 2013

2 commits

  • * acpi-assorted:
    ACPI / osl: Kill macro INVALID_TABLE().
    earlycpio.c: Fix the confusing comment of find_cpio_data().
    ACPI / x86: Print Hot-Pluggable Field in SRAT.
    ACPI / thermal: Use THERMAL_TRIPS_NONE macro to replace number
    ACPI / thermal: Remove unused macros in the driver/acpi/thermal.c
    ACPI / thermal: Remove the unused lock of struct acpi_thermal
    ACPI / osl: Fix osi_setup_entries[] __initdata attribute location
    ACPI / numa: Fix __init attribute location in slit_valid()
    ACPI / dock: Fix __init attribute location in find_dock_and_bay()
    ACPI / Sleep: Fix incorrect placement of __initdata
    ACPI / processor: Fix incorrect placement of __initdata
    ACPI / EC: Fix incorrect placement of __initdata
    ACPI / scan: Drop unnecessary label from acpi_create_platform_device()
    ACPI: Move acpi_bus_get_device() from bus.c to scan.c
    ACPI / scan: Allow platform device creation without any IO resources
    ACPI: Cleanup sparse warning on acpi_os_initialize1()
    platform / thinkpad: Remove deprecated hotkey_report_mode parameter
    ACPI: Remove the old /proc/acpi/event interface

    Rafael J. Wysocki
     
  • * acpi-cleanup: (21 commits)
    ACPI / dock: fix error return code in dock_add()
    ACPI / dock: Drop unnecessary local variable from dock_add()
    ACPI / dock / PCI: Drop ACPI dock notifier chain
    ACPI / dock: Do not check CONFIG_ACPI_DOCK_MODULE
    ACPI / dock: Do not leak memory on falilures to add a dock station
    ACPI: Drop ACPI bus notifier call chain
    ACPI / dock: Rework the handling of notifications
    ACPI / dock: Simplify dock_init_hotplug() and dock_release_hotplug()
    ACPI / dock: Walk list in reverse order during removal of devices
    ACPI / dock: Rework and simplify find_dock_devices()
    ACPI / dock: Drop the hp_lock mutex from struct dock_station
    ACPI: simplify acpiphp driver with new helper functions
    ACPI: simplify dock driver with new helper functions
    ACPI: Export acpi_(bay)|(dock)_match() from scan.c
    ACPI: introduce two helper functions for _EJ0 and _LCK
    ACPI: introduce helper function acpi_execute_simple_method()
    ACPI: introduce helper function acpi_has_method()
    ACPI / dock: simplify dock_create_acpi_device()
    ACPI / dock: mark initialization functions with __init
    ACPI / dock: drop redundant spin lock in dock station object
    ...

    Rafael J. Wysocki
     

15 Aug, 2013

1 commit