15 Sep, 2015

1 commit


11 Aug, 2015

1 commit

  • Quoting Arnd:
    I was thinking the opposite approach and basically removing all uses
    of IORESOURCE_CACHEABLE from the kernel. There are only a handful of
    them.and we can probably replace them all with hardcoded
    ioremap_cached() calls in the cases they are actually useful.

    All existing usages of IORESOURCE_CACHEABLE call ioremap() instead of
    ioremap_nocache() if the resource is cacheable, however ioremap() is
    uncached by default. Clearly none of the existing usages care about the
    cacheability. Particularly devm_ioremap_resource() never worked as
    advertised since it always fell back to plain ioremap().

    Clean this up as the new direction we want is to convert
    ioremap_() usages to memremap(..., flags).

    Suggested-by: Arnd Bergmann
    Reviewed-by: Christoph Hellwig
    Signed-off-by: Dan Williams

    Dan Williams
     

07 Jul, 2015

1 commit

  • This effectively reverts the following three commits:

    7bc10388ccdd ACPI / resources: free memory on error in add_region_before()
    0f1b414d1907 ACPI / PNP: Avoid conflicting resource reservations
    b9a5e5e18fbf ACPI / init: Fix the ordering of acpi_reserve_resources()

    (commit b9a5e5e18fbf introduced regressions some of which, but not
    all, were addressed by commit 0f1b414d1907 and commit 7bc10388ccdd
    was a fixup on top of the latter) and causes ACPI fixed hardware
    resources to be reserved at the fs_initcall_sync stage of system
    initialization.

    The story is as follows. First, a boot regression was reported due
    to an apparent resource reservation ordering change after a commit
    that shouldn't lead to such changes. Investigation led to the
    conclusion that the problem happened because acpi_reserve_resources()
    was executed at the device_initcall() stage of system initialization
    which wasn't strictly ordered with respect to driver initialization
    (and with respect to the initialization of the pcieport driver in
    particular), so a random change causing the device initcalls to be
    run in a different order might break things.

    The response to that was to attempt to run acpi_reserve_resources()
    as soon as we knew that ACPI would be in use (commit b9a5e5e18fbf).
    However, that turned out to be too early, because it caused resource
    reservations made by the PNP system driver to fail on at least one
    system and that failure was addressed by commit 0f1b414d1907.

    That fix still turned out to be insufficient, though, because
    calling acpi_reserve_resources() before the fs_initcall stage of
    system initialization caused a boot regression to happen on the
    eCAFE EC-800-H20G/S netbook. That meant that we only could call
    acpi_reserve_resources() at the fs_initcall initialization stage
    or later, but then we might just as well call it after the PNP
    initalization in which case commit 0f1b414d1907 wouldn't be
    necessary any more.

    For this reason, the changes made by commit 0f1b414d1907 are reverted
    (along with a memory leak fixup on top of that commit), the changes
    made by commit b9a5e5e18fbf that went too far are reverted too and
    acpi_reserve_resources() is changed into fs_initcall_sync, which
    will cause it to be executed after the PNP subsystem initialization
    (which is an fs_initcall) and before device initcalls (including
    the pcieport driver initialization) which should avoid the initial
    issue.

    Link: https://bugzilla.kernel.org/show_bug.cgi?id=100581
    Link: http://marc.info/?t=143092384600002&r=1&w=2
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=99831
    Link: http://marc.info/?t=143389402600001&r=1&w=2
    Fixes: b9a5e5e18fbf "ACPI / init: Fix the ordering of acpi_reserve_resources()"
    Reported-by: Roland Dreier
    Cc: All applicable
    Signed-off-by: Rafael J. Wysocki

    Rafael J. Wysocki
     

19 Jun, 2015

2 commits

  • * pnp:
    PNP / ACPI: use unsigned int in pnpacpi_encode_resources()
    PNP / ACPI: use u8 instead of int in acpi_resource_extended_irq context

    * pm-tools:
    cpupower: mperf monitor: fix output in MAX_FREQ_SYSFS mode

    Rafael J. Wysocki
     
  • Commit b9a5e5e18fbf "ACPI / init: Fix the ordering of
    acpi_reserve_resources()" overlooked the fact that the memory
    and/or I/O regions reserved by acpi_reserve_resources() may
    conflict with those reserved by the PNP "system" driver.

    If that conflict actually takes place, it causes the reservations
    made by the "system" driver to fail while before commit b9a5e5e18fbf
    all reservations made by it and by acpi_reserve_resources() would be
    successful. In turn, that allows the resources that haven't been
    reserved by the "system" driver to be used by others (e.g. PCI) which
    sometimes leads to functional problems (up to and including boot
    failures).

    To fix that issue, introduce a common resource reservation routine,
    acpi_reserve_region(), to be used by both acpi_reserve_resources()
    and the "system" driver, that will track all resources reserved by
    it and avoid making conflicting requests.

    Link: https://bugzilla.kernel.org/show_bug.cgi?id=99831
    Link: http://marc.info/?t=143389402600001&r=1&w=2
    Fixes: b9a5e5e18fbf "ACPI / init: Fix the ordering of acpi_reserve_resources()"
    Reported-by: Roland Dreier
    Cc: All applicable
    Signed-off-by: Rafael J. Wysocki

    Rafael J. Wysocki
     

06 May, 2015

2 commits


15 Apr, 2015

1 commit

  • 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
     

19 Mar, 2015

2 commits

  • pnp_register_protocol() and __pnp_add_device() both have a problem
    that if device_register() fails, the objects they create will be left
    in the lists they have been put one beforehand. Unfortunately, that
    is not handled by the callers of those routines either, so in case
    of a device registration errors the PNP bus type's data structures
    will end up in an inconsistent state.

    Make pnp_register_protocol() and __pnp_add_device() remove the
    objects from the lists if device registration fails.

    Signed-off-by: Rafael J. Wysocki

    Rafael J. Wysocki
     
  • pnp_lock is a spinlock, but it is only acquired from process context,
    so it may be a mutex just fine.

    Signed-off-by: Rafael J. Wysocki

    Rafael J. Wysocki
     

16 Mar, 2015

1 commit


13 Mar, 2015

1 commit

  • After 0509ad5e1a7d ("PNP: disable PNP motherboard resources that overlap
    PCI BARs"), we disable and warn about PNP resources that overlap PCI BARs.
    But we assume that all PCI BARs are valid, which is incorrect, because a
    BAR may not have any space assigned to it. In that case, we will not
    enable the BAR, so no other resource can conflict with it.

    Ignore PCI BARs that are unassigned, as indicated by IORESOURCE_UNSET.

    Firmware often leaves PCI BARs unassigned, containing zero. Zero is a
    valid BAR value, so we can't just check for that, but the PCI core can set
    IORESOURCE_UNSET when it detects an unassigned BAR by other means. This
    should get rid of many of the annoying messages like this:

    pnp 00:00: disabling [io 0x0061] because it overlaps 0001:05:00.0 BAR 0 [io 0x0000-0x00ff]

    Signed-off-by: Bjorn Helgaas
    Acked-by: Rafael J. Wysocki

    Bjorn Helgaas
     

21 Feb, 2015

1 commit

  • * pnp:
    PNP: Switch from __check_region() to __request_region()

    * pm-cpuidle:
    cpuidle: powernv: Avoid endianness conversions while parsing DT
    cpuidle: powernv: Read target_residency value of idle states from DT if available

    * pm-cpufreq:
    cpufreq: s3c: remove last use of resume_clocks callback
    cpufreq: s3c: remove incorrect __init annotations

    Rafael J. Wysocki
     

16 Feb, 2015

2 commits

  • Pull tty/serial driver patches from Greg KH:
    "Here's the big tty/serial driver update for 3.20-rc1. Nothing huge
    here, just lots of driver updates and some core tty layer fixes as
    well. All have been in linux-next with no reported issues"

    * tag 'tty-3.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (119 commits)
    serial: 8250: Fix UART_BUG_TXEN workaround
    serial: driver for ETRAX FS UART
    tty: remove unused variable sprop
    serial: of-serial: fetch line number from DT
    serial: samsung: earlycon support depends on CONFIG_SERIAL_SAMSUNG_CONSOLE
    tty/serial: serial8250_set_divisor() can be static
    tty/serial: Add Spreadtrum sc9836-uart driver support
    Documentation: DT: Add bindings for Spreadtrum SoC Platform
    serial: samsung: remove redundant interrupt enabling
    tty: Remove external interface for tty_set_termios()
    serial: omap: Fix RTS handling
    serial: 8250_omap: Use UPSTAT_AUTORTS for RTS handling
    serial: core: Rework hw-assisted flow control support
    tty/serial: 8250_early: Add support for PXA UARTs
    tty/serial: of_serial: add support for PXA/MMP uarts
    tty/serial: of_serial: add DT alias ID handling
    serial: 8250: Prevent concurrent updates to shadow registers
    serial: 8250: Use canary to restart console after suspend
    serial: 8250: Refactor XR17V35X divisor calculation
    serial: 8250: Refactor divisor programming
    ...

    Linus Torvalds
     
  • Pull char / misc patches from Greg KH:
    "Here's the big char/misc driver update for 3.20-rc1.

    Lots of little things in here, all described in the changelog.
    Nothing major or unusual, except maybe the binder selinux stuff, which
    was all acked by the proper selinux people and they thought it best to
    come through this tree.

    All of this has been in linux-next with no reported issues for a while"

    * tag 'char-misc-3.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (90 commits)
    coresight: fix function etm_writel_cp14() parameter order
    coresight-etm: remove check for unknown Kconfig macro
    coresight: fixing CPU hwid lookup in device tree
    coresight: remove the unnecessary function coresight_is_bit_set()
    coresight: fix the debug AMBA bus name
    coresight: remove the extra spaces
    coresight: fix the link between orphan connection and newly added device
    coresight: remove the unnecessary replicator property
    coresight: fix the replicator subtype value
    pdfdocs: Fix 'make pdfdocs' failure for 'uio-howto.tmpl'
    mcb: Fix error path of mcb_pci_probe
    virtio/console: verify device has config space
    ti-st: clean up data types (fix harmless memory corruption)
    mei: me: release hw from reset only during the reset flow
    mei: mask interrupt set bit on clean reset bit
    extcon: max77693: Constify struct regmap_config
    extcon: adc-jack: Release IIO channel on driver remove
    extcon: Remove duplicated include from extcon-class.c
    Drivers: hv: vmbus: hv_process_timer_expiration() can be static
    Drivers: hv: vmbus: serialize Offer and Rescind offer
    ...

    Linus Torvalds
     

04 Feb, 2015

1 commit


03 Feb, 2015

1 commit

  • If the serial console is an ACPI PNP device, the PNP bus always powers
    down the device at system suspend, even though the no_console_suspend
    command line parameter is specified (eg., when debugging suspend/resume).

    Add PNP_CONSOLE capability, which when set, prevents calling both the
    ->disable() and ->suspend() PNP protocol methods if console suspend
    is disabled.

    Signed-off-by: Peter Hurley
    Signed-off-by: Greg Kroah-Hartman

    Peter Hurley
     

26 Jan, 2015

2 commits

  • struct acpi_resource_address and struct acpi_resource_extended_address64 share substracts
    just at different offsets. To unify the parsing functions, OSPMs like Linux
    need a new ACPI_ADDRESS64_ATTRIBUTE as their substructs, so they can
    extract the shared data.

    This patch also synchronizes the structure changes to the Linux kernel.
    The usages are searched by matching the following keywords:
    1. acpi_resource_address
    2. acpi_resource_extended_address
    3. ACPI_RESOURCE_TYPE_ADDRESS
    4. ACPI_RESOURCE_TYPE_EXTENDED_ADDRESS
    And we found and fixed the usages in the following files:
    arch/ia64/kernel/acpi-ext.c
    arch/ia64/pci/pci.c
    arch/x86/pci/acpi.c
    arch/x86/pci/mmconfig-shared.c
    drivers/xen/xen-acpi-memhotplug.c
    drivers/acpi/acpi_memhotplug.c
    drivers/acpi/pci_root.c
    drivers/acpi/resource.c
    drivers/char/hpet.c
    drivers/pnp/pnpacpi/rsparser.c
    drivers/hv/vmbus_drv.c

    Build tests are passed with defconfig/allnoconfig/allyesconfig and
    defconfig+CONFIG_ACPI=n.

    Original-by: Thomas Gleixner
    Original-by: Jiang Liu
    Signed-off-by: Lv Zheng
    Signed-off-by: Rafael J. Wysocki

    Lv Zheng
     
  • A small number of systems respond to PnP dock queries with bogus values.
    This causes us to keep logging an error every 2 seconds. Instead of trying
    again just assume the BIOS is crapware and doesn't actually have dock
    functionality.

    Signed-off-by: Alan Cox
    Signed-off-by: Greg Kroah-Hartman

    Alan Cox
     

22 Jan, 2015

1 commit

  • PNP core is the last user of the __check_region() which has been
    deprecated for almost 12 years (since v2.5.54). Replace it with a combo
    of __request_region() followed by __release_region().

    pnp_check_port() and pnp_check_mem() remain racy after this change.

    Signed-off-by: Jakub Sitnicki
    Signed-off-by: Rafael J. Wysocki

    Jakub Sitnicki
     

14 Oct, 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
    Cc: "Rafael J. Wysocki"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Rasmus Villemoes
     

23 Jul, 2014

1 commit

  • The ACPI_HANDLE() macro evaluates ACPI_COMPANION() internally to
    return the handle of the device's ACPI companion, so it is much
    more straightforward and efficient to use ACPI_COMPANION()
    directly to obtain the device's ACPI companion object instead of
    using ACPI_HANDLE() and acpi_bus_get_device() on the returned
    handle for the same thing.

    Do that in several places in the ACPI PNP core code.

    Also use acpi_device_set_power() and acpi_device_power_manageable()
    instead of acpi_bus_set_power() and acpi_bus_power_manageable(),
    respectively, because the former two are more efficient if the
    ACPI device object is already available.

    Signed-off-by: Rafael J. Wysocki

    Rafael J. Wysocki
     

07 Jul, 2014

1 commit

  • PNPACPI uses acpi_bus_type to do ACPI binding for the PNPACPI devices.

    This is overkill because PNPACPI code already knows which ACPI
    device object to bind during PNPACPI device enumeration.

    This patch removes acpi_pnp_bus and does the binding by invoking
    acpi_bind_one() directly after device enumerated.

    This also fixes a bug in the previous code that some PNPACPI devices failed
    to be bound because
    1. the ACPI device _HID is not pnpid, e.g. "MSFT0001", but its _CID is,
    e.g. "PNP0303", thus ACPI _CID is used as the pnp device device id.
    2. device is bound only if the pnp device id matches the ACPI device _HID.

    Tested-by: Prigent Christophe
    Signed-off-by: Zhang Rui
    Signed-off-by: Rafael J. Wysocki

    Zhang Rui
     

04 Jun, 2014

1 commit

  • * pnp:
    MAINTAINERS: Remove Bjorn Helgaas as PNP maintainer
    PNP / resources: remove positive test on unsigned values

    * powercap:
    powercap / RAPL: add new CPU IDs
    powercap / RAPL: further relax energy counter checks

    * pm-runtime:
    PM / runtime: Update documentation to reflect the current code flow

    * pm-opp:
    PM / OPP: discard duplicate OPPs
    PM / OPP: Make OPP invisible to users in Kconfig
    PM / OPP: fix incorrect OPP count handling in of_init_opp_table

    Rafael J. Wysocki
     

30 May, 2014

1 commit

  • ACPI can be used to enumerate PNP devices, but the code does not
    handle this in the right way currently. Namely, if an ACPI device
    object
    1. Has a _CRS method,
    2. Has an identification of
    "three capital characters followed by four hex digits",
    3. Is not in the excluded IDs list,
    it will be enumerated to PNP bus (that is, a PNP device object will
    be create for it). This means that, actually, the PNP bus type is
    used as the default bus type for enumerating _HID devices in ACPI.

    However, more and more _HID devices need to be enumerated to the
    platform bus instead (that is, platform device objects need to be
    created for them). As a result, the device ID list in acpi_platform.c
    is used to enforce creating platform device objects rather than PNP
    device objects for matching devices. That list has been continuously
    growing recently, unfortunately, and it is pretty much guaranteed to
    grow even more in the future.

    To address that problem it is better to enumerate _HID devices
    as platform devices by default. To this end, change the way of
    enumerating PNP devices by adding a PNP ACPI scan handler that
    will use a device ID list to create PNP devices for the ACPI
    device objects whose device IDs are present in that list.

    The initial device ID list in the PNP ACPI scan handler contains
    all of the pnp_device_id strings from all the existing PNP drivers,
    so this change should be transparent to the PNP core and all of the
    PNP drivers. Still, in the future it should be possible to reduce
    its size by converting PNP drivers that need not be PNP for any
    technical reasons into platform drivers.

    Signed-off-by: Zhang Rui
    [rjw: Rewrote the changelog, modified the PNP ACPI scan handler code]
    Signed-off-by: Rafael J. Wysocki
    Reviewed-by: Mika Westerberg

    Zhang Rui
     

10 May, 2014

1 commit


06 May, 2014

1 commit


01 May, 2014

1 commit

  • The ACPI PNP subsystem returns errors from pnpacpi_set_resources()
    and pnpacpi_disable_resources() if the _SRS or _DIS methods are not
    present, respectively, but it should not do that, because those
    methods are optional. For this reason, modify pnpacpi_set_resources()
    and pnpacpi_disable_resources(), respectively, to ignore missing _SRS
    or _DIS.

    This problem has been uncovered by commit 202317a573b2 (ACPI / scan:
    Add acpi_device objects for all device nodes in the namespace) and
    manifested itself by causing serial port suspend to fail on some
    systems.

    Fixes: 202317a573b2 (ACPI / scan: Add acpi_device objects for all device nodes in the namespace)
    References: https://bugzilla.kernel.org/show_bug.cgi?id=74371
    Reported-by: wxg4net
    Reported-and-tested-by:
    Cc: 3.14+ # 3.14+
    Signed-off-by: Rafael J. Wysocki

    Rafael J. Wysocki
     

30 Apr, 2014

1 commit

  • Fix the compile error:

    drivers/pnp/quirks.c:393:2: error: implicit declaration of function 'pcibios_bus_to_resource'

    that occurs when building with CONFIG_PCI unset. The quirk is only
    relevent to Intel devices, so we could use "#if defined(CONFIG_X86) &&
    defined(CONFIG_PCI)" instead, but testing CONFIG_X86 is not strictly
    necessary.

    Fixes: cb171f7abb9a (PNP: Work around BIOS defects in Intel MCH area reporting)
    Reported-by: Randy Dunlap
    Signed-off-by: Bjorn Helgaas
    Signed-off-by: Rafael J. Wysocki

    Bjorn Helgaas
     

24 Apr, 2014

1 commit

  • Work around BIOSes that don't report the entire Intel MCH area.

    MCHBAR is not an architected PCI BAR, so MCH space is usually reported as a
    PNP0C02 resource. The MCH space was once 16KB, but is 32KB in newer parts.
    Some BIOSes still report a PNP0C02 resource that is only 16KB, which means
    the rest of the MCH space is consumed but unreported.

    This can cause resource map sanity check warnings or (theoretically) a
    device conflict if we assigned the unreported space to another device.

    The Intel perf event uncore driver tripped over this when it claimed the
    MCH region:

    resource map sanity check conflict: 0xfed10000 0xfed15fff 0xfed10000 0xfed13fff pnp 00:01
    Info: mapping multiple BARs. Your kernel is fine.

    To prevent this, if we find a PNP0C02 resource that covers part of the MCH
    space, extend it to cover the entire space.

    References: http://lkml.kernel.org/r/20140224162400.GE16457@pd.tnic
    Reported-and-tested-by: Borislav Petkov
    Signed-off-by: Bjorn Helgaas
    Acked-by: Borislav Petkov
    Acked-by: Stephane Eranian
    Signed-off-by: Rafael J. Wysocki

    Bjorn Helgaas
     

03 Apr, 2014

1 commit

  • Pull more ACPI and power management updates from Rafael Wysocki:
    "These are commits that were not quite ready when I sent the original
    pull request for 3.15-rc1 several days ago, but they have spent some
    time in linux-next since then and appear to be good to go. All of
    them are fixes and cleanups.

    Specifics:

    - Remaining changes from upstream ACPICA release 20140214 that
    introduce code to automatically serialize the execution of methods
    creating any named objects which really cannot be executed in
    parallel with each other anyway (previously ACPICA attempted to
    address that by aborting methods upon conflict detection, but that
    wasn't reliable enough and led to other issues). From Bob Moore
    and Lv Zheng.

    - intel_pstate fix to use del_timer_sync() instead of del_timer() in
    the exit path before freeing the timer structure from Dirk
    Brandewie (original patch from Thomas Gleixner).

    - cpufreq fix related to system resume from Viresh Kumar.

    - Serialization of frequency transitions in cpufreq that involve
    PRECHANGE and POSTCHANGE notifications to avoid ordering issues
    resulting from race conditions. From Srivatsa S Bhat and Viresh
    Kumar.

    - Revert of an ACPI processor driver change that was based on a
    specific interpretation of the ACPI spec which may not be correct
    (the relevant part of the spec appears to be incomplete). From
    Hanjun Guo.

    - Runtime PM core cleanups and documentation updates from Geert
    Uytterhoeven.

    - PNP core cleanup from Michael Opdenacker"

    * tag 'pm+acpi-3.15-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    cpufreq: Make cpufreq_notify_transition & cpufreq_notify_post_transition static
    cpufreq: Convert existing drivers to use cpufreq_freq_transition_{begin|end}
    cpufreq: Make sure frequency transitions are serialized
    intel_pstate: Use del_timer_sync in intel_pstate_cpu_stop
    cpufreq: resume drivers before enabling governors
    PM / Runtime: Spelling s/competing/completing/
    PM / Runtime: s/foo_process_requests/foo_process_next_request/
    PM / Runtime: GENERIC_SUBSYS_PM_OPS is gone
    PM / Runtime: Correct documented return values for generic PM callbacks
    PM / Runtime: Split line longer than 80 characters
    PM / Runtime: dev_pm_info.runtime_error is signed
    Revert "ACPI / processor: Make it possible to get APIC ID via GIC"
    ACPICA: Enable auto-serialization as a default kernel behavior.
    ACPICA: Ignore sync_level for methods that have been auto-serialized.
    ACPICA: Add additional named objects for the auto-serialize method scan.
    ACPICA: Add auto-serialization support for ill-behaved control methods.
    ACPICA: Remove global option to serialize all control methods.
    PNP: remove deprecated IRQF_DISABLED

    Linus Torvalds
     

01 Apr, 2014

1 commit

  • Pull x86 LTO changes from Peter Anvin:
    "More infrastructure work in preparation for link-time optimization
    (LTO). Most of these changes is to make sure symbols accessed from
    assembly code are properly marked as visible so the linker doesn't
    remove them.

    My understanding is that the changes to support LTO are still not
    upstream in binutils, but are on the way there. This patchset should
    conclude the x86-specific changes, and remaining patches to actually
    enable LTO will be fed through the Kbuild tree (other than keeping up
    with changes to the x86 code base, of course), although not
    necessarily in this merge window"

    * 'x86-asmlinkage-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (25 commits)
    Kbuild, lto: Handle basic LTO in modpost
    Kbuild, lto: Disable LTO for asm-offsets.c
    Kbuild, lto: Add a gcc-ld script to let run gcc as ld
    Kbuild, lto: add ld-version and ld-ifversion macros
    Kbuild, lto: Drop .number postfixes in modpost
    Kbuild, lto, workaround: Don't warn for initcall_reference in modpost
    lto: Disable LTO for sys_ni
    lto: Handle LTO common symbols in module loader
    lto, workaround: Add workaround for initcall reordering
    lto: Make asmlinkage __visible
    x86, lto: Disable LTO for the x86 VDSO
    initconst, x86: Fix initconst mistake in ts5500 code
    initconst: Fix initconst mistake in dcdbas
    asmlinkage: Make trace_hardirqs_on/off_caller visible
    asmlinkage, x86: Fix 32bit memcpy for LTO
    asmlinkage Make __stack_chk_failed and memcmp visible
    asmlinkage: Mark rwsem functions that can be called from assembler asmlinkage
    asmlinkage: Make main_extable_sort_needed visible
    asmlinkage, mutex: Mark __visible
    asmlinkage: Make trace_hardirq visible
    ...

    Linus Torvalds
     

21 Mar, 2014

1 commit


12 Mar, 2014

1 commit

  • Before commit b355cee88e3b (ACPI / resources: ignore invalid ACPI
    device resources), if acpi_dev_resource_memory()/acpi_dev_resource_io()
    returns false, it means the the resource is not a memeory/IO resource.

    But after commit b355cee88e3b, those functions return false if the
    given memory/IO resource entry is invalid (the length of the resource
    is zero).

    This breaks pnpacpi_allocated_resource(), because it now recognizes
    the invalid memory/io resources as resources of unknown type. Thus
    users see confusing warning messages on machines with zero length
    ACPI memory/IO resources.

    Fix the problem by rearranging pnpacpi_allocated_resource() so that
    it calls acpi_dev_resource_memory() for memory type and IO type
    resources only, respectively.

    Fixes: b355cee88e3b (ACPI / resources: ignore invalid ACPI device resources)
    Signed-off-by: Zhang Rui
    Reported-and-tested-by: Markus Trippelsdorf
    Reported-and-tested-by: Julian Wollrath
    Reported-and-tested-by: Paul Bolle
    [rjw: Changelog]
    Signed-off-by: Rafael J. Wysocki

    Zhang Rui
     

14 Feb, 2014

1 commit


13 Jan, 2014

3 commits

  • * pnp:
    PNPBIOS: check return value of pnp_add_device()
    PNP: Mark the function pnp_build_option() as static in resource.c
    PNP / card: add missing put_device() call
    PNPACPI: check return value of pnp_add_device()

    Rafael J. Wysocki
     
  • * acpi-hotplug:
    ACPI / scan: ACPI device object sysfs attribute for _STA evaluation
    ACPI / hotplug / driver core: Handle containers in a special way
    ACPI / hotplug: Add demand_offline hotplug profile flag
    ACPI / bind: Move acpi_get_child() to drivers/ide/ide-acpi.c
    ACPI / bind: Pass struct acpi_device pointer to acpi_bind_one()
    ACPI / bind: Rework struct acpi_bus_type
    ACPI / bind: Redefine acpi_preset_companion()
    ACPI / bind: Redefine acpi_get_child()
    PCI / ACPI: Use acpi_find_child_device() for child devices lookup
    ACPI / bind: Simplify child device lookups
    ACPI / scan: Use direct recurrence for device hierarchy walks
    ACPI: Introduce acpi_set_device_status()
    ACPI / hotplug: Drop unfinished global notification handling routines
    ACPI / hotplug: Rework generic code to handle suprise removals
    ACPI / hotplug: Move container-specific code out of the core
    ACPI / hotplug: Make ACPI PCI root hotplug use common hotplug code
    ACPI / hotplug: Introduce common hotplug function acpi_device_hotplug()
    ACPI / hotplug: Do not fail bus and device checks for disabled hotplug
    ACPI / scan: Add acpi_device objects for all device nodes in the namespace
    ACPI / scan: Define non-empty device removal handler

    Rafael J. Wysocki
     
  • * 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


06 Jan, 2014

1 commit

  • This patch marks the function pnp_build_option() as static in resource.c
    because it is not used outside this file.

    Thus, it also eliminates the following warning in resource.c:
    drivers/pnp/resource.c:34:20: warning: no previous prototype for ‘pnp_build_option’ [-Wmissing-prototypes]

    Signed-off-by: Rashika Kheria
    Reviewed-by: Josh Triplett
    Signed-off-by: Rafael J. Wysocki

    Rashika Kheria