15 Dec, 2015

1 commit


13 Dec, 2015

1 commit

  • Commit bdee237c0343 ("x86: mm: Use 2GB memory block size on large-memory
    x86-64 systems") and 982792c782ef ("x86, mm: probe memory block size for
    generic x86 64bit") introduced large block sizes for x86. This made it
    possible to have multiple sections per memory block where previously,
    there was a only every one section per block.

    Since blocks consist of contiguous ranges of section, there can be holes
    in the blocks where sections are not present. If one attempts to
    offline such a block, a crash occurs since the code is not designed to
    deal with this.

    This patch is a quick fix to gaurd against the crash by not allowing
    blocks with non-present sections to be offlined.

    Addresses https://bugzilla.kernel.org/show_bug.cgi?id=107781

    Signed-off-by: Seth Jennings
    Reported-by: Andrew Banman
    Cc: Daniel J Blueman
    Cc: Yinghai Lu
    Cc: Greg KH
    Cc: Russ Anderson
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Seth Jennings
     

10 Dec, 2015

1 commit

  • A runtime PM centric subsystem/driver may typically use the runtime PM
    helpers, pm_runtime_force_suspend|resume() in the system PM path. This
    means the genpd's runtime PM callbacks might be invoked even when runtime
    PM has been disabled for the device.

    To properly cope with these and similar scenarios when these helper
    functions are used, change genpd to skip validating and measuring the
    device PM QOS latency.

    This is needed because otherwise genpd may prevent the device to be put
    into low power state. If this occurs during system PM, it causes the
    sequence to be aborted as a device's system PM callback returns -EBUSY.

    Fixes: ba2bbfbf6307 (PM / Domains: Remove intermediate states from the power off sequence)
    Reported-by: Cao Minh Hiep
    Reported-by: Harunaga
    Signed-off-by: Ulf Hansson
    Cc: 4.3+ # 4.3+
    Signed-off-by: Rafael J. Wysocki

    Ulf Hansson
     

04 Dec, 2015

2 commits

  • * pm-domains:
    PM / Domains: Fix bad of_node_put() in failure paths of genpd_dev_pm_attach()
    PM / Domains: Validate cases of a non-bound driver in genpd governor

    * pm-cpufreq:
    cpufreq: use last policy after online for drivers with ->setpolicy

    Rafael J. Wysocki
     
  • It looks like these meant to be unreffing the
    of_parse_phandle_with_args() node, since the error paths above it
    don't do of_node_put. That function returns a new ref in pd_args.np,
    though, not a new ref on dev->of_node. Also, it would have leaked the
    ref in the success case.

    Fixes "ERROR: Bad of_node_put()" on bcm2835 in the -EPROBE_DEFER case.

    Fixes: aa42240ab254 (PM / Domains: Add generic OF-based PM domain look-up)
    Signed-off-by: Eric Anholt
    Acked-by: Ulf Hansson
    Acked-by: Kevin Hilman
    Cc: 3.18+ # 3.18+
    Signed-off-by: Rafael J. Wysocki

    Eric Anholt
     

02 Dec, 2015

1 commit

  • Recently genpd removed the requirement of a having a driver bound for its
    attached devices to allow genpd to power off. That change should also have
    removed a corresponding validation in the governor, let's correct that.

    Fixes: 298cd0f08801 (PM / Domains: Remove dev->driver check for runtime)
    Signed-off-by: Ulf Hansson
    Signed-off-by: Rafael J. Wysocki

    Ulf Hansson
     

20 Nov, 2015

1 commit


17 Nov, 2015

1 commit


13 Nov, 2015

1 commit

  • Pull more power management and ACPI updates from Rafael Wysocki:
    "The only new feature in this batch is support for the ACPI _CCA device
    configuration object, which it a pre-requisite for future ACPI PCI
    support on ARM64, but should not affect the other architectures.

    The rest is fixes and cleanups, mostly in cpufreq (including
    intel_pstate), the Operating Performace Points (OPP) framework and
    tools (cpupower and turbostat).

    Specifics:

    - Support for the ACPI _CCA configuration object intended to tell the
    OS whether or not a bus master device supports hardware managed
    cache coherency and a new set of functions to allow drivers to
    check the cache coherency support for devices in a platform
    firmware interface agnostic way (Suravee Suthikulpanit, Jeremy
    Linton).

    - ACPI backlight quirks for ESPRIMO Mobile M9410 and Dell XPS L421X
    (Aaron Lu, Hans de Goede).

    - Fixes for the arm_big_little and s5pv210-cpufreq cpufreq drivers
    (Jon Medhurst, Nicolas Pitre).

    - kfree()-related fixup for the recently introduced CPPC cpufreq
    frontend (Markus Elfring).

    - intel_pstate fix reducing kernel log noise on systems where
    P-states are managed by hardware (Prarit Bhargava).

    - intel_pstate maintainers information update (Srinivas Pandruvada).

    - cpufreq core optimization related to the handling of delayed work
    items used by governors (Viresh Kumar).

    - Locking fixes and cleanups of the Operating Performance Points
    (OPP) framework (Viresh Kumar).

    - Generic power domains framework cleanups (Lina Iyer).

    - cpupower tool updates (Jacob Tanenbaum, Sriram Raghunathan, Thomas
    Renninger).

    - turbostat tool updates (Len Brown)"

    * tag 'pm+acpi-4.4-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (32 commits)
    PCI: ACPI: Add support for PCI device DMA coherency
    PCI: OF: Move of_pci_dma_configure() to pci_dma_configure()
    of/pci: Fix pci_get_host_bridge_device leak
    device property: ACPI: Remove unused DMA APIs
    device property: ACPI: Make use of the new DMA Attribute APIs
    device property: Adding DMA Attribute APIs for Generic Devices
    ACPI: Adding DMA Attribute APIs for ACPI Device
    device property: Introducing enum dev_dma_attr
    ACPI: Honor ACPI _CCA attribute setting
    cpufreq: CPPC: Delete an unnecessary check before the function call kfree()
    PM / OPP: Add opp_rcu_lockdep_assert() to _find_device_opp()
    PM / OPP: Hold dev_opp_list_lock for writers
    PM / OPP: Protect updates to list_dev with mutex
    PM / OPP: Propagate error properly from dev_pm_opp_set_sharing_cpus()
    cpufreq: s5pv210-cpufreq: fix wrong do_div() usage
    MAINTAINERS: update for intel P-state driver
    Creating a common structure initialization pattern for struct option
    cpupower: Enable disabled Cstates if they are below max latency
    cpupower: Remove debug message when using cpupower idle-set -D switch
    cpupower: cpupower monitor reports uninitialized values for offline cpus
    ...

    Linus Torvalds
     

12 Nov, 2015

2 commits

  • * pm-domains:
    PM / Domains: Allocate memory outside domain locks
    PM / Domains: Remove dev->driver check for runtime PM

    Rafael J. Wysocki
     
  • Pull thermal updates from Zhang Rui:

    - Implement generic devfreq cooling mechanism through frequency
    reduction for devices using devfreq. From Ørjan Eide and Javi
    Merino.

    - Introduce OMAP3 support on TI SoC thermal driver. From Pavel Mack
    and Eduardo Valentin.

    - A bounch of small fixes on devfreq_cooling, Exynos, IMX, Armada, and
    Rockchip thermal drivers.

    * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux: (24 commits)
    thermal: exynos: Directly return 0 instead of using local ret variable
    thermal: exynos: Remove unneeded semicolon
    thermal: exynos: Use IS_ERR() because regulator cannot be NULL
    thermal: exynos: Fix first temperature read after registering sensor
    thermal: exynos: Fix unbalanced regulator disable on probe failure
    devfreq_cooling: return on allocation failure
    thermal: rockchip: support the sleep pinctrl state to avoid glitches in s2r
    dt-bindings: rockchip-thermal: Add the pinctrl states in this document
    thermal: devfreq_cooling: Make power a u64
    thermal: devfreq_cooling: use a thermal_cooling_device for register and unregister
    thermal: underflow bug in imx_set_trip_temp()
    thermal: armada: Fix possible overflow in the Armada 380 thermal sensor formula
    thermal: imx: register irq handler later in probe
    thermal: rockhip: fix setting thermal shutdown polarity
    thermal: rockchip: fix handling of invalid readings
    devfreq_cooling: add trace information
    thermal: Add devfreq cooling
    PM / OPP: get the voltage for all OPPs
    tools/thermal: tmon: use pkg-config also for CFLAGS
    linux/thermal.h: rename KELVIN_TO_CELSIUS to DECI_KELVIN_TO_CELSIUS
    ...

    Linus Torvalds
     

11 Nov, 2015

2 commits

  • Pull ARM SoC driver updates from Olof Johansson:
    "As we've enabled multiplatform kernels on ARM, and greatly done away
    with the contents under arch/arm/mach-*, there's still need for
    SoC-related drivers to go somewhere.

    Many of them go in through other driver trees, but we still have
    drivers/soc to hold some of the "doesn't fit anywhere" lowlevel code
    that might be shared between ARM and ARM64 (or just in general makes
    sense to not have under the architecture directory).

    This branch contains mostly such code:

    - Drivers for qualcomm SoCs for SMEM, SMD and SMD-RPM, used to
    communicate with power management blocks on these SoCs for use by
    clock, regulator and bus frequency drivers.

    - Allwinner Reduced Serial Bus driver, again used to communicate with
    PMICs.

    - Drivers for ARM's SCPI (System Control Processor). Not to be
    confused with PSCI (Power State Coordination Interface). SCPI is
    used to communicate with the assistant embedded cores doing power
    management, and we have yet to see how many of them will implement
    this for their hardware vs abstracting in other ways (or not at all
    like in the past).

    - To make confusion between SCPI and PSCI more likely, this release
    also includes an update of PSCI to interface version 1.0.

    - Rockchip support for power domains.

    - A driver to talk to the firmware on Raspberry Pi"

    * tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (57 commits)
    soc: qcom: smd-rpm: Correct size of outgoing message
    bus: sunxi-rsb: Add driver for Allwinner Reduced Serial Bus
    bus: sunxi-rsb: Add Allwinner Reduced Serial Bus (RSB) controller bindings
    ARM: bcm2835: add mutual inclusion protection
    drivers: psci: make PSCI 1.0 functions initialization version dependent
    dt-bindings: Correct paths in Rockchip power domains binding document
    soc: rockchip: power-domain: don't try to print the clock name in error case
    soc: qcom/smem: add HWSPINLOCK dependency
    clk: berlin: add cpuclk
    ARM: berlin: dts: add CLKID_CPU for BG2Q
    ARM: bcm2835: Add the Raspberry Pi firmware driver
    soc: qcom: smem: Move RPM message ram out of smem DT node
    soc: qcom: smd-rpm: Correct the active vs sleep state flagging
    soc: qcom: smd: delete unneeded of_node_put
    firmware: qcom-scm: build for correct architecture level
    soc: qcom: smd: Correct SMEM items for upper channels
    qcom-scm: add missing prototype for qcom_scm_is_available()
    qcom-scm: fix endianess issue in __qcom_scm_is_call_available
    soc: qcom: smd: Reject send of too big packets
    soc: qcom: smd: Handle big endian CPUs
    ...

    Linus Torvalds
     
  • Pull libnvdimm updates from Dan Williams:
    "Outside of the new ACPI-NFIT hot-add support this pull request is more
    notable for what it does not contain, than what it does. There were a
    handful of development topics this cycle, dax get_user_pages, dax
    fsync, and raw block dax, that need more more iteration and will wait
    for 4.5.

    The patches to make devm and the pmem driver NUMA aware have been in
    -next for several weeks. The hot-add support has not, but is
    contained to the NFIT driver and is passing unit tests. The coredump
    support is straightforward and was looked over by Jeff. All of it has
    received a 0day build success notification across 107 configs.

    Summary:

    - Add support for the ACPI 6.0 NFIT hot add mechanism to process
    updates of the NFIT at runtime.

    - Teach the coredump implementation how to filter out DAX mappings.

    - Introduce NUMA hints for allocations made by the pmem driver, and
    as a side effect all devm allocations now hint their NUMA node by
    default"

    * tag 'libnvdimm-for-4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm:
    coredump: add DAX filtering for FDPIC ELF coredumps
    coredump: add DAX filtering for ELF coredumps
    acpi: nfit: Add support for hot-add
    nfit: in acpi_nfit_init, break on a 0-length table
    pmem, memremap: convert to numa aware allocations
    devm_memremap_pages: use numa_mem_id
    devm: make allocations numa aware by default
    devm_memremap: convert to return ERR_PTR
    devm_memunmap: use devres_release()
    pmem: kill memremap_pmem()
    x86, mm: quiet arch_add_memory()

    Linus Torvalds
     

10 Nov, 2015

1 commit


08 Nov, 2015

1 commit

  • Pull trivial updates from Jiri Kosina:
    "Trivial stuff from trivial tree that can be trivially summed up as:

    - treewide drop of spurious unlikely() before IS_ERR() from Viresh
    Kumar

    - cosmetic fixes (that don't really affect basic functionality of the
    driver) for pktcdvd and bcache, from Julia Lawall and Petr Mladek

    - various comment / printk fixes and updates all over the place"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial:
    bcache: Really show state of work pending bit
    hwmon: applesmc: fix comment typos
    Kconfig: remove comment about scsi_wait_scan module
    class_find_device: fix reference to argument "match"
    debugfs: document that debugfs_remove*() accepts NULL and error values
    net: Drop unlikely before IS_ERR(_OR_NULL)
    mm: Drop unlikely before IS_ERR(_OR_NULL)
    fs: Drop unlikely before IS_ERR(_OR_NULL)
    drivers: net: Drop unlikely before IS_ERR(_OR_NULL)
    drivers: misc: Drop unlikely before IS_ERR(_OR_NULL)
    UBI: Update comments to reflect UBI_METAONLY flag
    pktcdvd: drop null test before destroy functions

    Linus Torvalds
     

07 Nov, 2015

8 commits

  • * pm-opp:
    PM / OPP: Add opp_rcu_lockdep_assert() to _find_device_opp()
    PM / OPP: Hold dev_opp_list_lock for writers
    PM / OPP: Protect updates to list_dev with mutex
    PM / OPP: Propagate error properly from dev_pm_opp_set_sharing_cpus()
    PM / OPP: Parse all power-supply related bindings together
    PM / OPP: Rename routines specific to old bindings with _v1
    PM / OPP: Improve print messages with pr_fmt

    Rafael J. Wysocki
     
  • * acpi-pci:
    PCI: ACPI: Add support for PCI device DMA coherency
    PCI: OF: Move of_pci_dma_configure() to pci_dma_configure()
    of/pci: Fix pci_get_host_bridge_device leak
    device property: ACPI: Remove unused DMA APIs
    device property: ACPI: Make use of the new DMA Attribute APIs
    device property: Adding DMA Attribute APIs for Generic Devices
    ACPI: Adding DMA Attribute APIs for ACPI Device
    device property: Introducing enum dev_dma_attr
    ACPI: Honor ACPI _CCA attribute setting

    Conflicts:
    drivers/crypto/ccp/ccp-platform.c

    Rafael J. Wysocki
     
  • These DMA APIs are replaced with the newer versions, which return
    the enum dev_dma_attr. So, we can safely remove them.

    Signed-off-by: Suravee Suthikulpanit
    Acked-by: Bjorn Helgaas
    Reviewed-by: Hanjun Guo
    Signed-off-by: Rafael J. Wysocki

    Suthikulpanit, Suravee
     
  • The function device_dma_is_coherent() does not sufficiently
    communicate device DMA attributes. Instead, this patch introduces
    device_get_dma_attr(), which returns enum dev_dma_attr.
    It replaces the acpi_check_dma(), which will be removed in
    subsequent patch.

    This also provides a convenient function, device_dma_supported(),
    to check DMA support of the specified device.

    Signed-off-by: Suravee Suthikulpanit
    Acked-by: Bjorn Helgaas
    Reviewed-by: Hanjun Guo
    Signed-off-by: Rafael J. Wysocki

    Suthikulpanit, Suravee
     
  • _find_device_opp() should be called with rcu-read lock or
    dev_opp_list_lock held. Add the opp_rcu_lockdep_assert() check to make
    sure caller have taken appropriate locks.

    Fix comment over the routine as well.

    Suggested-by: Stephen Boyd
    Signed-off-by: Viresh Kumar
    Signed-off-by: Rafael J. Wysocki

    Viresh Kumar
     
  • Writers need to update OPP device and their list with dev_opp_list_lock
    mutex held, which was missed at few places. Fix it.

    Signed-off-by: Viresh Kumar
    Cc: 4.3 # 4.3
    Signed-off-by: Rafael J. Wysocki

    Viresh Kumar
     
  • dev_opp_list_lock is used everywhere to protect device and OPP lists,
    but dev_pm_opp_set_sharing_cpus() is missed somehow. And instead we used
    rcu-lock, which wouldn't help here as we are adding a new list_dev.

    This also fixes a problem where we have called kzalloc(..., GFP_KERNEL)
    from within rcu-lock, which isn't allowed as kzalloc can sleep when
    called with GFP_KERNEL.

    With CONFIG_DEBUG_ATOMIC_SLEEP set, we get following lockdep-splat:

    include/linux/rcupdate.h:578 Illegal context switch in RCU read-side critical section!

    other info that might help us debug this:

    rcu_scheduler_active = 1, debug_locks = 0
    5 locks held by swapper/0/1:
    #0: (&dev->mutex){......}, at: [] __driver_attach+0x48/0x98
    #1: (&dev->mutex){......}, at: [] __driver_attach+0x58/0x98
    #2: (cpu_hotplug.lock){++++++}, at: [] get_online_cpus+0x40/0xb0
    #3: (subsys mutex#5){+.+.+.}, at: [] subsys_interface_register+0x44/0xdc
    #4: (rcu_read_lock){......}, at: [] dev_pm_opp_set_sharing_cpus+0x0/0x1e4

    stack backtrace:
    CPU: 1 PID: 1 Comm: swapper/0 Tainted: G W 4.3.0-rc7-00047-g81f5932958a8 #59
    Hardware name: SAMSUNG EXYNOS (Flattened Device Tree)
    [] (unwind_backtrace) from [] (show_stack+0x10/0x14)
    [] (show_stack) from [] (dump_stack+0x94/0xbc)
    [] (dump_stack) from [] (___might_sleep+0x24c/0x298)
    [] (___might_sleep) from [] (kmem_cache_alloc+0xe8/0x164)
    [] (kmem_cache_alloc) from [] (_add_list_dev+0x30/0x58)
    [] (_add_list_dev) from [] (dev_pm_opp_set_sharing_cpus+0xd0/0x1e4)
    [] (dev_pm_opp_set_sharing_cpus) from [] (cpufreq_init+0x4cc/0x62c)
    [] (cpufreq_init) from [] (cpufreq_online+0xbc/0x73c)
    [] (cpufreq_online) from [] (subsys_interface_register+0x98/0xdc)
    [] (subsys_interface_register) from [] (cpufreq_register_driver+0x110/0x17c)
    [] (cpufreq_register_driver) from [] (dt_cpufreq_probe+0x60/0x8c)
    [] (dt_cpufreq_probe) from [] (platform_drv_probe+0x44/0xa4)
    [] (platform_drv_probe) from [] (driver_probe_device+0x208/0x2f4)
    [] (driver_probe_device) from [] (__driver_attach+0x94/0x98)
    [] (__driver_attach) from [] (bus_for_each_dev+0x68/0x9c)

    Reported-by: Michael Turquette
    Reviewed-by: Stephen Boyd
    Signed-off-by: Viresh Kumar
    Cc: 4.3 # 4.3
    Signed-off-by: Rafael J. Wysocki

    Viresh Kumar
     
  • We are returning 0 even in case of errors, fix it.

    Fixes: 8d4d4e98acd6 ("PM / OPP: Add helpers for initializing CPU OPPs")
    Reported-by: Dan Carpenter
    Reviewed-by: Stephen Boyd
    Signed-off-by: Viresh Kumar
    Cc: 4.3 # 4.3
    Signed-off-by: Rafael J. Wysocki

    Viresh Kumar
     

06 Nov, 2015

1 commit

  • Pull clk updates from Stephen Boyd:
    "The majority of the changes are driver updates and new device support.
    The core framework is mostly unchanged this time around, with only a
    couple patches to expose a clk provider API and make getting clk
    parent names from DT more robust.

    Driver updates:

    - Support for clock controllers found on Broadcom Northstar SoCs and
    bcm2835 SoC

    - Support for Allwinner audio clocks

    - A few cleanup patches for Tegra drivers and support for the highest
    DFLL frequencies on Tegra124

    - Samsung exynos7 fixes and improvements

    - i.Mx SoC updates to add a few missing clocks and keep debug uart
    clocks on during kernel intialization

    - Some mediatek cleanups and support for more subsystem clocks

    - Support for msm8916 gpu/audio clocks and qcom's GDSC power domain
    controllers

    - A new driver for the Silabs si514 clock chip"

    * tag 'clk-for-linus-20151104' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: (143 commits)
    clk: qcom: msm8960: Fix dsi1/2 halt bits
    clk: lpc18xx-cgu: fix potential system hang when disabling unused clocks
    clk: lpc18xx-ccu: fix potential system hang when disabling unused clocks
    clk: Add clk_hw_is_enabled() for use by clk providers
    clk: Add stubs for of_clk_*() APIs when CONFIG_OF=n
    clk: versatile-icst: fix memory leak
    clk: Remove clk_{register,unregister}_multiplier()
    clk: iproc: define Broadcom NS2 iProc clock binding
    clk: iproc: define Broadcom NSP iProc clock binding
    clk: ns2: add clock support for Broadcom Northstar 2 SoC
    clk: iproc: Separate status and control variables
    clk: iproc: Split off dig_filter
    clk: iproc: Add PLL base write function
    clk: nsp: add clock support for Broadcom Northstar Plus SoC
    clk: iproc: Add PWRCTRL support
    clk: cygnus: Convert all macros to all caps
    ARM: cygnus: fix link failures when CONFIG_COMMON_CLK_IPROC is disabled
    clk: imx31: add missing of_node_put
    clk: imx27: add missing of_node_put
    clk: si5351: add missing of_node_put
    ...

    Linus Torvalds
     

05 Nov, 2015

2 commits

  • Pull driver core updates from Greg KH:
    "Here's the "big" driver core updates for 4.4-rc1. Primarily a bunch
    of debugfs updates, with a smattering of minor driver core fixes and
    updates as well.

    All have been in linux-next for a long time"

    * tag 'driver-core-4.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
    debugfs: Add debugfs_create_ulong()
    of: to support binding numa node to specified device in devicetree
    debugfs: Add read-only/write-only bool file ops
    debugfs: Add read-only/write-only size_t file ops
    debugfs: Add read-only/write-only x64 file ops
    debugfs: Consolidate file mode checks in debugfs_create_*()
    Revert "mm: Check if section present during memory block (un)registering"
    driver-core: platform: Provide helpers for multi-driver modules
    mm: Check if section present during memory block (un)registering
    devres: fix a for loop bounds check
    CMA: fix CONFIG_CMA_SIZE_MBYTES overflow in 64bit
    base/platform: assert that dev_pm_domain callbacks are called unconditionally
    sysfs: correctly handle short reads on PREALLOC attrs.
    base: soc: siplify ida usage
    kobject: move EXPORT_SYMBOL() macros next to corresponding definitions
    kobject: explain what kobject's sd field is
    debugfs: document that debugfs_remove*() accepts NULL and error values
    debugfs: Pass bool pointer to debugfs_create_bool()
    ACPI / EC: Fix broken 64bit big-endian users of 'global_lock'

    Linus Torvalds
     
  • Pull power management and ACPI updates from Rafael Wysocki:
    "Quite a new features are included this time.

    First off, the Collaborative Processor Performance Control interface
    (version 2) defined by ACPI will now be supported on ARM64 along with
    a cpufreq frontend for CPU performance scaling.

    Second, ACPI gets a new infrastructure for the early probing of IRQ
    chips and clock sources (along the lines of the existing similar
    mechanism for DT).

    Next, the ACPI core and the generic device properties API will now
    support a recently introduced hierarchical properties extension of the
    _DSD (Device Specific Data) ACPI device configuration object. If the
    ACPI platform firmware uses that extension to organize device
    properties in a hierarchical way, the kernel will automatically handle
    it and make those properties available to device drivers via the
    generic device properties API.

    It also will be possible to build the ACPICA's AML interpreter
    debugger into the kernel now and use that to diagnose AML-related
    problems more efficiently. In the future, this should make it
    possible to single-step AML execution and do similar things.
    Interesting stuff, although somewhat experimental at this point.

    Finally, the PM core gets a new mechanism that can be used by device
    drivers to distinguish between suspend-to-RAM (based on platform
    firmware support) and suspend-to-idle (or other variants of system
    suspend the platform firmware is not involved in) and possibly
    optimize their device suspend/resume handling accordingly.

    In addition to that, some existing features are re-organized quite
    substantially.

    First, the ACPI-based handling of PCI host bridges on x86 and ia64 is
    unified and the common code goes into the ACPI core (so as to reduce
    code duplication and eliminate non-essential differences between the
    two architectures in that area).

    Second, the Operating Performance Points (OPP) framework is
    reorganized to make the code easier to find and follow.

    Next, the cpufreq core's sysfs interface is reorganized to get rid of
    the "primary CPU" concept for configurations in which the same
    performance scaling settings are shared between multiple CPUs.

    Finally, some interfaces that aren't necessary any more are dropped
    from the generic power domains framework.

    On top of the above we have some minor extensions, cleanups and bug
    fixes in multiple places, as usual.

    Specifics:

    - ACPICA update to upstream revision 20150930 (Bob Moore, Lv Zheng).

    The most significant change is to allow the AML debugger to be
    built into the kernel. On top of that there is an update related
    to the NFIT table (the ACPI persistent memory interface) and a few
    fixes and cleanups.

    - ACPI CPPC2 (Collaborative Processor Performance Control v2) support
    along with a cpufreq frontend (Ashwin Chaugule).

    This can only be enabled on ARM64 at this point.

    - New ACPI infrastructure for the early probing of IRQ chips and
    clock sources (Marc Zyngier).

    - Support for a new hierarchical properties extension of the ACPI
    _DSD (Device Specific Data) device configuration object allowing
    the kernel to handle hierarchical properties (provided by the
    platform firmware this way) automatically and make them available
    to device drivers via the generic device properties interface
    (Rafael Wysocki).

    - Generic device properties API extension to obtain an index of
    certain string value in an array of strings, along the lines of
    of_property_match_string(), but working for all of the supported
    firmware node types, and support for the "dma-names" device
    property based on it (Mika Westerberg).

    - ACPI core fix to parse the MADT (Multiple APIC Description Table)
    entries in the order expected by platform firmware (and mandated by
    the specification) to avoid confusion on systems with more than 255
    logical CPUs (Lukasz Anaczkowski).

    - Consolidation of the ACPI-based handling of PCI host bridges on x86
    and ia64 (Jiang Liu).

    - ACPI core fixes to ensure that the correct IRQ number is used to
    represent the SCI (System Control Interrupt) in the cases when it
    has been re-mapped (Chen Yu).

    - New ACPI backlight quirk for Lenovo IdeaPad S405 (Hans de Goede).

    - ACPI EC driver fixes (Lv Zheng).

    - Assorted ACPI fixes and cleanups (Dan Carpenter, Insu Yun, Jiri
    Kosina, Rami Rosen, Rasmus Villemoes).

    - New mechanism in the PM core allowing drivers to check if the
    platform firmware is going to be involved in the upcoming system
    suspend or if it has been involved in the suspend the system is
    resuming from at the moment (Rafael Wysocki).

    This should allow drivers to optimize their suspend/resume handling
    in some cases and the changes include a couple of users of it (the
    i8042 input driver, PCI PM).

    - PCI PM fix to prevent runtime-suspended devices with PME enabled
    from being resumed during system suspend even if they aren't
    configured to wake up the system from sleep (Rafael Wysocki).

    - New mechanism to report the number of a wakeup IRQ that woke up the
    system from sleep last time (Alexandra Yates).

    - Removal of unused interfaces from the generic power domains
    framework and fixes related to latency measurements in that code
    (Ulf Hansson, Daniel Lezcano).

    - cpufreq core sysfs interface rework to make it handle CPUs that
    share performance scaling settings (represented by a common cpufreq
    policy object) more symmetrically (Viresh Kumar).

    This should help to simplify the CPU offline/online handling among
    other things.

    - cpufreq core fixes and cleanups (Viresh Kumar).

    - intel_pstate fixes related to the Turbo Activation Ratio (TAR)
    mechanism on client platforms which causes the turbo P-states range
    to vary depending on platform firmware settings (Srinivas
    Pandruvada).

    - intel_pstate sysfs interface fix (Prarit Bhargava).

    - Assorted cpufreq driver (imx, tegra20, powernv, integrator) fixes
    and cleanups (Bai Ping, Bartlomiej Zolnierkiewicz, Shilpasri G
    Bhat, Luis de Bethencourt).

    - cpuidle mvebu driver cleanups (Russell King).

    - OPP (Operating Performance Points) framework code reorganization to
    make it more maintainable (Viresh Kumar).

    - Intel Broxton support for the RAPL (Running Average Power Limits)
    power capping driver (Amy Wiles).

    - Assorted power management code fixes and cleanups (Dan Carpenter,
    Geert Uytterhoeven, Geliang Tang, Luis de Bethencourt, Rasmus
    Villemoes)"

    * tag 'pm+acpi-4.4-rc1-1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (108 commits)
    cpufreq: postfix policy directory with the first CPU in related_cpus
    cpufreq: create cpu/cpufreq/policyX directories
    cpufreq: remove cpufreq_sysfs_{create|remove}_file()
    cpufreq: create cpu/cpufreq at boot time
    cpufreq: Use cpumask_copy instead of cpumask_or to copy a mask
    cpufreq: ondemand: Drop unnecessary locks from update_sampling_rate()
    PM / Domains: Merge measurements for PM QoS device latencies
    PM / Domains: Don't measure ->start|stop() latency in system PM callbacks
    PM / clk: Fix broken build due to non-matching code and header #ifdefs
    ACPI / Documentation: add copy_dsdt to ACPI format options
    ACPI / sysfs: correctly check failing memory allocation
    ACPI / video: Add a quirk to force native backlight on Lenovo IdeaPad S405
    ACPI / CPPC: Fix potential memory leak
    ACPI / CPPC: signedness bug in register_pcc_channel()
    ACPI / PAD: power_saving_thread() is not freezable
    ACPI / PM: Fix incorrect wakeup IRQ setting during suspend-to-idle
    ACPI: Using correct irq when waiting for events
    ACPI: Use correct IRQ when uninstalling ACPI interrupt handler
    cpuidle: mvebu: disable the bind/unbind attributes and use builtin_platform_driver
    cpuidle: mvebu: clean up multiple platform drivers
    ...

    Linus Torvalds
     

04 Nov, 2015

1 commit

  • Pull irq updates from Thomas Gleixner:
    "The irq departement delivers:

    - Rework the irqdomain core infrastructure to accomodate ACPI based
    systems. This is required to support ARM64 without creating
    artificial device tree nodes.

    - Sanitize the ACPI based ARM GIC initialization by making use of the
    new firmware independent irqdomain core

    - Further improvements to the generic MSI management

    - Generalize the irq migration on CPU hotplug

    - Improvements to the threaded interrupt infrastructure

    - Allow the migration of "chained" low level interrupt handlers

    - Allow optional force masking of interrupts in disable_irq[_nosysnc]

    - Support for two new interrupt chips - Sigh!

    - A larger set of errata fixes for ARM gicv3

    - The usual pile of fixes, updates, improvements and cleanups all
    over the place"

    * 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (71 commits)
    Document that IRQ_NONE should be returned when IRQ not actually handled
    PCI/MSI: Allow the MSI domain to be device-specific
    PCI: Add per-device MSI domain hook
    of/irq: Use the msi-map property to provide device-specific MSI domain
    of/irq: Split of_msi_map_rid to reuse msi-map lookup
    irqchip/gic-v3-its: Parse new version of msi-parent property
    PCI/MSI: Use of_msi_get_domain instead of open-coded "msi-parent" parsing
    of/irq: Use of_msi_get_domain instead of open-coded "msi-parent" parsing
    of/irq: Add support code for multi-parent version of "msi-parent"
    irqchip/gic-v3-its: Add handling of PCI requester id.
    PCI/MSI: Add helper function pci_msi_domain_get_msi_rid().
    of/irq: Add new function of_msi_map_rid()
    Docs: dt: Add PCI MSI map bindings
    irqchip/gic-v2m: Add support for multiple MSI frames
    irqchip/gic-v3: Fix translation of LPIs after conversion to irq_fwspec
    irqchip/mxs: Add Alphascale ASM9260 support
    irqchip/mxs: Prepare driver for hardware with different offsets
    irqchip/mxs: Panic if ioremap or domain creation fails
    irqdomain: Documentation updates
    irqdomain/msi: Use fwnode instead of of_node
    ...

    Linus Torvalds
     

03 Nov, 2015

3 commits

  • …inux-soc-thermal into thermal-soc

    Zhang Rui
     
  • Pull regmap updates from Mark Brown:
    "Quite a few new features for regmap this time, mostly expanding things
    around the edges of the existing functionality to cover more devices
    rather than thinsg with wide applicability:

    - Support for offload of the update_bits() operation to hardware
    where devices implement bit level access.
    - Support for a few extra operations that need scratch buffers on
    fast_io devices where we can't sleep.
    - Expanded the feature set of regmap_irq to cope with some extra
    register layouts.
    - Cleanups to the debugfs code"

    * tag 'regmap-v4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap:
    regmap: Allow installing custom reg_update_bits function
    regmap: debugfs: simplify regmap_reg_ranges_read_file() slightly
    regmap: debugfs: use memcpy instead of snprintf
    regmap: debugfs: use snprintf return value in regmap_reg_ranges_read_file()
    regmap: Add generic macro to define regmap_irq
    regmap: debugfs: Remove scratch buffer for register length calculation
    regmap: irq: add ack_invert flag for chips using cleared bits as ack
    regmap: irq: add support for chips who have separate unmask registers
    regmap: Allocate buffers with GFP_ATOMIC when fast_io == true

    Linus Torvalds
     
  • Pull pin control updates from Linus Walleij:
    "This is the big bulk of pin control changes for the v4.4 kernel
    development cycle. Development pace is high in pin control again this
    merge window. 28 contributors, 83 patches.

    It hits a few sites outside the pin control subsystem:

    - Device tree bindings in Documentation (as usual)
    - MAINTAINERS
    - drivers/base/* for the "init" state handling by Doug Anderson.
    This has been ACKed by Greg.
    - drivers/usb/renesas_usbhs/rcar2.c, for a dependent Renesas change
    in the USB subsystem. This has been ACKed by both Greg and Felipe.
    - arch/arm/boot/dts/sama5d2.dtsi - this should ideally have gone
    through the ARM SoC tree but ended up here.

    This time I am using Geert Uytterhoeven as submaintainer for SH PFC
    since the are three-four people working in parallel with new Renesas
    ASICs.

    Summary of changes:

    Infrastructure:

    - Doug Anderson wrote a patch adding an "init" state different from
    the "default" state for pin control state handling in the core
    framework. This is applied before the driver's probe() call if
    defined and takes precedence over "default". If both are defined,
    "init" will be applied *before* probe() and "default" will be
    applied *after* probe().

    Significant subdriver improvements:

    - SH PFC is switched to getting GPIO ranges from the device tree
    ranges property on DT platforms.
    - Got rid of CONFIG_ARCH_SHMOBILE_LEGACY, we are all modernized.
    - Got rid of SH PFC hardcoded IRQ numbers.
    - Allwinner sunxi external interrupt through the "r" controller.
    - Moved the Cygnus driver to use DT-provided GPIO ranges.

    New drivers:

    - Atmel PIO4 pin controller for the SAMA4D2 family

    New subdrivers:

    - Rockchip RK3036 subdriver
    - Renesas SH PFC R8A7795 subdriver
    - Allwinner sunxi A83T PIO subdriver
    - Freescale i.MX7d iomux lpsr subdriver
    - Marvell Berlin BG4CT subdriver
    - SiRF Atlas 7 step B SoC subdriver
    - Intel Broxton SoC subdriver

    Apart from this, the usual slew if syntactic and semantic fixes"

    * tag 'pinctrl-v4.4-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (81 commits)
    pinctrl: pinconf: remove needless loop
    pinctrl: uniphier: guard uniphier directory with CONFIG_PINCTRL_UNIPHIER
    pinctrl: zynq: fix UTF-8 errors
    pinctrl: zynq: Initialize early
    pinctrl: at91: add missing of_node_put
    pinctrl: tegra-xusb: Correct lane mux options
    pinctrl: intel: Add Intel Broxton pin controller support
    pinctrl: intel: Allow requesting pins which are in ACPI mode as GPIOs
    pinctrl: intel: Add support for multiple GPIO chips sharing the interrupt
    drivers/pinctrl: Add the concept of an "init" state
    pinctrl: uniphier: set input-enable before pin-muxing
    pinctrl: cygnus: Add new compatible string for gpio controller driver
    pinctrl: cygnus: Remove GPIO to Pinctrl pin mapping from driver
    pinctrl: cygnus: Optional DT property to support pin mappings
    pinctrl: sunxi: Add irq pinmuxing to sun6i "r" pincontroller
    pinctrl: sunxi: Fix irq_of_xlate for the r_pio pinctrl block
    pinctrl: sh-pfc: Remove obsolete r8a7778 platform_device_id entry
    pinctrl: sh-pfc: Remove obsolete r8a7779 platform_device_id entry
    pinctrl: sh-pfc: Stop including
    usb: renesas_usbhs: Remove unneeded #include
    ...

    Linus Torvalds
     

02 Nov, 2015

10 commits

  • In preparation for supporting IRQ-safe domains, allocate domain data
    outside the domain locks. These functions are not called in an atomic
    context, so we can always allocate memory using GFP_KERNEL. By
    allocating memory before the locks, we can safely lock the domain using
    spinlocks instead of mutexes.

    Reviewed-by: Kevin Hilman
    Acked-by: Ulf Hansson
    Signed-off-by: Lina Iyer
    Signed-off-by: Rafael J. Wysocki

    Lina Iyer
     
  • Remove check for driver of a device, for runtime PM. Device may be
    suspended without an explicit driver. This check seems to be vestigial
    and incorrect in the current context.

    Reviewed-by: Krzysztof Kozlowski
    Acked-by: Ulf Hansson
    Signed-off-by: Kevin Hilman
    Signed-off-by: Lina Iyer
    Signed-off-by: Rafael J. Wysocki

    Lina Iyer
     
  • Move all DT parsing for the power supplies to a single function, rather
    than keeping them at separate places. This will help manage things
    properly.

    Signed-off-by: Viresh Kumar
    Reviewed-by: Stephen Boyd
    Signed-off-by: Rafael J. Wysocki

    Viresh Kumar
     
  • Clearly distinguish routines based on what version of bindings they
    parse. We have already postfixed routines properly with _v2 for new
    bindings. Postfix the older ones now with _v1.

    Signed-off-by: Viresh Kumar
    Reviewed-by: Stephen Boyd
    Signed-off-by: Rafael J. Wysocki

    Viresh Kumar
     
  • To identify OPP core's print messages easily, prefix them with
    KBUILD_MODNAME.

    Signed-off-by: Viresh Kumar
    Reviewed-by: Stephen Boyd
    Signed-off-by: Rafael J. Wysocki

    Viresh Kumar
     
  • Rafael J. Wysocki
     
  • * pm-avs:
    PM / AVS: rockchip-io: Fix module autoload for OF platform driver

    * pm-clk:
    PM / clk: Fix broken build due to non-matching code and header #ifdefs

    * powercap:
    powercap / RAPL: Enable Broxton RAPL support

    Rafael J. Wysocki
     
  • * pm-opp:
    PM / OPP: passing NULL to PTR_ERR()
    PM / OPP: Move cpu specific code to opp/cpu.c
    PM / OPP: Move opp core to its own directory
    PM / OPP: Prefix exported opp routines with dev_pm_opp_
    PM / OPP: Rename opp init/free table routines
    PM / OPP: reuse of_parse_phandle()

    Rafael J. Wysocki
     
  • * pm-domains:
    PM / Domains: Merge measurements for PM QoS device latencies
    PM / Domains: Don't measure ->start|stop() latency in system PM callbacks
    PM / Domains: Rename *pm_genpd_poweron|poweroff()
    PM / Domains: Remove pm_genpd_poweron() API
    PM / Domains: Remove pm_genpd_poweroff_unused() API
    soc: dove: Let genpd deal with disabling of unused PM domains
    PM / Domains: Remove in_progress counter from struct generic_pm_domain
    PM / domains: Drop unused label
    PM / Domains: Remove cpuidle attach
    PM / Domains: Remove name based API for genpd

    Rafael J. Wysocki
     
  • * pm-sleep:
    PM / hibernate: fix a comment typo
    input: i8042: Avoid resetting controller on system suspend/resume
    PM / PCI / ACPI: Kick devices that might have been reset by firmware
    PM / sleep: Add flags to indicate platform firmware involvement
    PM / sleep: Drop pm_request_idle() from pm_generic_complete()
    PCI / PM: Avoid resuming more devices during system suspend
    PM / wakeup: wakeup_source_create: use kstrdup_const
    PM / sleep: Report interrupt that caused system wakeup

    Rafael J. Wysocki