07 Jun, 2018

1 commit

  • Pull ARM updates from Russell King:

    - Initial round of Spectre variant 1 and variant 2 fixes for 32-bit ARM

    - Clang support improvements

    - nommu updates for v8 MPU

    - enable ARM_MODULE_PLTS by default to avoid problems loading modules
    with larger kernels

    - vmlinux.lds and dma-mapping cleanups

    * 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm: (31 commits)
    ARM: spectre-v1: fix syscall entry
    ARM: spectre-v1: add array_index_mask_nospec() implementation
    ARM: spectre-v1: add speculation barrier (csdb) macros
    ARM: KVM: report support for SMCCC_ARCH_WORKAROUND_1
    ARM: KVM: Add SMCCC_ARCH_WORKAROUND_1 fast handling
    ARM: spectre-v2: KVM: invalidate icache on guest exit for Brahma B15
    ARM: KVM: invalidate icache on guest exit for Cortex-A15
    ARM: KVM: invalidate BTB on guest exit for Cortex-A12/A17
    ARM: spectre-v2: warn about incorrect context switching functions
    ARM: spectre-v2: add firmware based hardening
    ARM: spectre-v2: harden user aborts in kernel space
    ARM: spectre-v2: add Cortex A8 and A15 validation of the IBE bit
    ARM: spectre-v2: harden branch predictor on context switches
    ARM: spectre: add Kconfig symbol for CPUs vulnerable to Spectre
    ARM: bugs: add support for per-processor bug checking
    ARM: bugs: hook processor bug checking into SMP and suspend paths
    ARM: bugs: prepare processor bug infrastructure
    ARM: add more CPU part numbers for Cortex and Brahma B15 CPUs
    ARM: 8774/1: remove no-op macro VMLINUX_SYMBOL()
    ARM: 8773/1: amba: Export amba_bustype
    ...

    Linus Torvalds
     

06 Jun, 2018

2 commits

  • Pull char/misc driver updates from Greg KH:
    "Here is the "big" char and misc driver patches for 4.18-rc1.

    It's not a lot of stuff here, but there are some highlights:

    - coreboot driver updates

    - soundwire driver updates

    - android binder updates

    - fpga big sync, mostly documentation

    - lots of minor driver updates

    All of these have been in linux-next for a while with no reported
    issues"

    * tag 'char-misc-4.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (81 commits)
    vmw_balloon: fixing double free when batching mode is off
    MAINTAINERS: Add driver-api/fpga path
    fpga: clarify that unregister functions also free
    documentation: fpga: move fpga-region.txt to driver-api
    documentation: fpga: add bridge document to driver-api
    documentation: fpga: move fpga-mgr.txt to driver-api
    Documentation: fpga: move fpga overview to driver-api
    fpga: region: kernel-doc fixes
    fpga: bridge: kernel-doc fixes
    fpga: mgr: kernel-doc fixes
    fpga: use SPDX
    fpga: region: change api, add fpga_region_create/free
    fpga: bridge: change api, don't use drvdata
    fpga: manager: change api, don't use drvdata
    fpga: region: don't use drvdata in common fpga code
    Drivers: hv: vmbus: Removed an unnecessary cast from void *
    ver_linux: Drop redundant calls to system() to test if file is readable
    ver_linux: Move stderr redirection from function parameter to function body
    misc: IBM Virtual Management Channel Driver (VMC)
    rpmsg: Correct support for MODULE_DEVICE_TABLE()
    ...

    Linus Torvalds
     
  • Pull power management updates from Rafael Wysocki:
    "These include a significant update of the generic power domains
    (genpd) and Operating Performance Points (OPP) frameworks, mostly
    related to the introduction of power domain performance levels,
    cpufreq updates (new driver for Qualcomm Kryo processors, updates of
    the existing drivers, some core fixes, schedutil governor
    improvements), PCI power management fixes, ACPI workaround for
    EC-based wakeup events handling on resume from suspend-to-idle, and
    major updates of the turbostat and pm-graph utilities.

    Specifics:

    - Introduce power domain performance levels into the the generic
    power domains (genpd) and Operating Performance Points (OPP)
    frameworks (Viresh Kumar, Rajendra Nayak, Dan Carpenter).

    - Fix two issues in the runtime PM framework related to the
    initialization and removal of devices using device links (Ulf
    Hansson).

    - Clean up the initialization of drivers for devices in PM domains
    (Ulf Hansson, Geert Uytterhoeven).

    - Fix a cpufreq core issue related to the policy sysfs interface
    causing CPU online to fail for CPUs sharing one cpufreq policy in
    some situations (Tao Wang).

    - Make it possible to use platform-specific suspend/resume hooks in
    the cpufreq-dt driver and make the Armada 37xx DVFS use that
    feature (Viresh Kumar, Miquel Raynal).

    - Optimize policy transition notifications in cpufreq (Viresh Kumar).

    - Improve the iowait boost mechanism in the schedutil cpufreq
    governor (Patrick Bellasi).

    - Improve the handling of deferred frequency updates in the schedutil
    cpufreq governor (Joel Fernandes, Dietmar Eggemann, Rafael Wysocki,
    Viresh Kumar).

    - Add a new cpufreq driver for Qualcomm Kryo (Ilia Lin).

    - Fix and clean up some cpufreq drivers (Colin Ian King, Dmitry
    Osipenko, Doug Smythies, Luc Van Oostenryck, Simon Horman, Viresh
    Kumar).

    - Fix the handling of PCI devices with the DPM_SMART_SUSPEND flag set
    and update stale comments in the PCI core PM code (Rafael Wysocki).

    - Work around an issue related to the handling of EC-based wakeup
    events in the ACPI PM core during resume from suspend-to-idle if
    the EC has been put into the low-power mode (Rafael Wysocki).

    - Improve the handling of wakeup source objects in the PM core (Doug
    Berger, Mahendran Ganesh, Rafael Wysocki).

    - Update the driver core to prevent deferred probe from breaking
    suspend/resume ordering (Feng Kan).

    - Clean up the PM core somewhat (Bjorn Helgaas, Ulf Hansson, Rafael
    Wysocki).

    - Make the core suspend/resume code and cpufreq support the RT patch
    (Sebastian Andrzej Siewior, Thomas Gleixner).

    - Consolidate the PM QoS handling in cpuidle governors (Rafael
    Wysocki).

    - Fix a possible crash in the hibernation core (Tetsuo Handa).

    - Update the rockchip-io Adaptive Voltage Scaling (AVS) driver (David
    Wu).

    - Update the turbostat utility (fixes, cleanups, new CPU IDs, new
    command line options, built-in "Low Power Idle" counters support,
    new POLL and POLL% columns) and add an entry for it to MAINTAINERS
    (Len Brown, Artem Bityutskiy, Chen Yu, Laura Abbott, Matt Turner,
    Prarit Bhargava, Srinivas Pandruvada).

    - Update the pm-graph to version 5.1 (Todd Brandt).

    - Update the intel_pstate_tracer utility (Doug Smythies)"

    * tag 'pm-4.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (128 commits)
    tools/power turbostat: update version number
    tools/power turbostat: Add Node in output
    tools/power turbostat: add node information into turbostat calculations
    tools/power turbostat: remove num_ from cpu_topology struct
    tools/power turbostat: rename num_cores_per_pkg to num_cores_per_node
    tools/power turbostat: track thread ID in cpu_topology
    tools/power turbostat: Calculate additional node information for a package
    tools/power turbostat: Fix node and siblings lookup data
    tools/power turbostat: set max_num_cpus equal to the cpumask length
    tools/power turbostat: if --num_iterations, print for specific number of iterations
    tools/power turbostat: Add Cannon Lake support
    tools/power turbostat: delete duplicate #defines
    x86: msr-index.h: Correct SNB_C1/C3_AUTO_UNDEMOTE defines
    tools/power turbostat: Correct SNB_C1/C3_AUTO_UNDEMOTE defines
    tools/power turbostat: add POLL and POLL% column
    tools/power turbostat: Fix --hide Pk%pc10
    tools/power turbostat: Build-in "Low Power Idle" counters support
    tools/power turbostat: Don't make man pages executable
    tools/power turbostat: remove blank lines
    tools/power turbostat: a small C-states dump readability immprovement
    ...

    Linus Torvalds
     

19 May, 2018

1 commit

  • This patch is provided in the context of allowing the Coresight driver
    subsystem to be loaded as modules. Coresight uses amba_bus in its call
    to bus_find_device() in of_coresight_get_endpoint_device() when
    searching for a configurable endpoint device. This patch allows
    Coresight to reference amba_bustype when built as a module.

    [original LKML submission here: https://lkml.org/lkml/2018/5/9/520]

    Cc: Mathieu Poirier
    Cc: Alex Williamson
    Cc: Eric Auger
    Cc: Greg Kroah-Hartman
    Cc: Todd Kjos
    Cc: Geert Uytterhoeven
    Cc: Thierry Reding
    Reviewed-by: Robin Murphy
    Signed-off-by: Kim Phillips
    Signed-off-by: Russell King

    Kim Phillips
     

15 May, 2018

1 commit


14 May, 2018

1 commit


03 May, 2018

2 commits

  • With each bus implementing its own DMA configuration callback, there is no
    need for bus to explicitly set the force_dma flag. Modify the
    of_dma_configure function to accept an input parameter which specifies if
    implicit DMA configuration is required when it is not described by the
    firmware.

    Signed-off-by: Nipun Gupta
    Acked-by: Bjorn Helgaas # PCI parts
    Reviewed-by: Rob Herring
    [hch: tweaked the changelog a bit]
    Signed-off-by: Christoph Hellwig

    Christoph Hellwig
     
  • ACPI/OF support for configuration of DMA is a bus specific aspect, and
    thus should be configured by the bus. Introduces a 'dma_configure' bus
    method so that busses can control their DMA capabilities.

    Also update the PCI, Platform, ACPI and host1x buses to use the new
    method.

    Suggested-by: Christoph Hellwig
    Signed-off-by: Nipun Gupta
    Acked-by: Bjorn Helgaas # PCI parts
    Acked-by: Thierry Reding
    Reviewed-by: Greg Kroah-Hartman
    [hch: simplified host1x_dma_configure based on a comment from Thierry,
    rewrote changelog]
    Signed-off-by: Christoph Hellwig

    Nipun Gupta
     

26 Apr, 2018

5 commits

  • The driver_override implementation is susceptible to a race condition
    when different threads are reading vs storing a different driver
    override. Add locking to avoid this race condition.

    Cfr. commits 6265539776a0810b ("driver core: platform: fix race
    condition with driver_override") and 9561475db680f714 ("PCI: Fix race
    condition with driver_override").

    Fixes: 3cf385713460eb2b ("ARM: 8256/1: driver coamba: add device binding path 'driver_override'")
    Signed-off-by: Geert Uytterhoeven
    Reviewed-by: Todd Kjos
    Cc: stable
    Signed-off-by: Greg Kroah-Hartman

    Geert Uytterhoeven
     
  • For AMBA devices with unconfigured driver override, the
    "driver_override" sysfs virtual file is empty, while it contains
    "(null)" for platform and PCI devices.

    Make AMBA consistent with other buses by dropping the test for a NULL
    pointer.

    Note that contrary to popular belief, sprintf() handles NULL pointers
    fine; they are printed as "(null)".

    Signed-off-by: Geert Uytterhoeven
    Cc: stable
    Reviewed-by: Todd Kjos
    Signed-off-by: Greg Kroah-Hartman

    Geert Uytterhoeven
     
  • This reverts commit 6b614a87f3f477571e319281e84dba11e0ea0a76.

    My backport was incorrect, as Geert pointed out :(

    Reported-by: Geert Uytterhoeven
    Cc: Todd Kjos
    Cc: stable
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     
  • When printing the driver_override parameter when it is 4095 and 4094
    bytes long, the printing code would access invalid memory because we
    need count + 1 bytes for printing.

    Cfr. commits 4efe874aace57dba ("PCI: Don't read past the end of sysfs
    "driver_override" buffer") and bf563b01c2895a4b ("driver core: platform:
    Don't read past the end of "driver_override" buffer").

    Fixes: 3cf385713460eb2b ("ARM: 8256/1: driver coamba: add device binding path 'driver_override'")
    Signed-off-by: Geert Uytterhoeven
    Reviewed-by: Todd Kjos
    Cc: stable
    Signed-off-by: Greg Kroah-Hartman

    Geert Uytterhoeven
     
  • The driver_override implementation is susceptible to a race condition
    when different threads are reading vs storing a different driver
    override. Add locking to avoid this race condition.

    Cfr. commits 6265539776a0810b ("driver core: platform: fix race
    condition with driver_override") and 9561475db680f714 ("PCI: Fix race
    condition with driver_override").

    Fixes: 3cf385713460eb2b ("ARM: 8256/1: driver coamba: add device binding path 'driver_override'")
    Signed-off-by: Geert Uytterhoeven
    Reviewed-by: Todd Kjos
    Cc: stable
    Signed-off-by: Greg Kroah-Hartman

    Geert Uytterhoeven
     

15 Nov, 2017

1 commit

  • Pull dma-mapping updates from Christoph Hellwig:

    - turn dma_cache_sync into a dma_map_ops instance and remove
    implementation that purely are dead because the architecture doesn't
    support noncoherent allocations

    - add a flag for busses that need DMA configuration (Robin Murphy)

    * tag 'dma-mapping-4.15' of git://git.infradead.org/users/hch/dma-mapping:
    dma-mapping: turn dma_cache_sync into a dma_map_ops method
    sh: make dma_cache_sync a no-op
    xtensa: make dma_cache_sync a no-op
    unicore32: make dma_cache_sync a no-op
    powerpc: make dma_cache_sync a no-op
    mn10300: make dma_cache_sync a no-op
    microblaze: make dma_cache_sync a no-op
    ia64: make dma_cache_sync a no-op
    frv: make dma_cache_sync a no-op
    x86: make dma_cache_sync a no-op
    floppy: consolidate the dummy fd_cacheflush definition
    drivers: flag buses which demand DMA configuration

    Linus Torvalds
     

02 Nov, 2017

1 commit

  • Many source files in the tree are missing licensing information, which
    makes it harder for compliance tools to determine the correct license.

    By default all files without license information are under the default
    license of the kernel, which is GPL version 2.

    Update the files which contain no license information with the 'GPL-2.0'
    SPDX license identifier. The SPDX identifier is a legally binding
    shorthand, which can be used instead of the full boiler plate text.

    This patch is based on work done by Thomas Gleixner and Kate Stewart and
    Philippe Ombredanne.

    How this work was done:

    Patches were generated and checked against linux-4.14-rc6 for a subset of
    the use cases:
    - file had no licensing information it it.
    - file was a */uapi/* one with no licensing information in it,
    - file was a */uapi/* one with existing licensing information,

    Further patches will be generated in subsequent months to fix up cases
    where non-standard license headers were used, and references to license
    had to be inferred by heuristics based on keywords.

    The analysis to determine which SPDX License Identifier to be applied to
    a file was done in a spreadsheet of side by side results from of the
    output of two independent scanners (ScanCode & Windriver) producing SPDX
    tag:value files created by Philippe Ombredanne. Philippe prepared the
    base worksheet, and did an initial spot review of a few 1000 files.

    The 4.13 kernel was the starting point of the analysis with 60,537 files
    assessed. Kate Stewart did a file by file comparison of the scanner
    results in the spreadsheet to determine which SPDX license identifier(s)
    to be applied to the file. She confirmed any determination that was not
    immediately clear with lawyers working with the Linux Foundation.

    Criteria used to select files for SPDX license identifier tagging was:
    - Files considered eligible had to be source code files.
    - Make and config files were included as candidates if they contained >5
    lines of source
    - File already had some variant of a license header in it (even if
    Reviewed-by: Philippe Ombredanne
    Reviewed-by: Thomas Gleixner
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

19 Oct, 2017

1 commit

  • We do not want the common dma_configure() pathway to apply
    indiscriminately to all devices, since there are plenty of buses which
    do not have DMA capability, and if their child devices were used for
    DMA API calls it would only be indicative of a driver bug. However,
    there are a number of buses for which DMA is implicitly expected even
    when not described by firmware - those we whitelist with an automatic
    opt-in to dma_configure(), assuming that the DMA address space and the
    physical address space are equivalent if not otherwise specified.

    Commit 723288836628 ("of: restrict DMA configuration") introduced a
    short-term fix by comparing explicit bus types, but this approach is far
    from pretty, doesn't scale well, and fails to cope at all with bus
    drivers which may be built as modules, like host1x. Let's refine things
    by making that opt-in a property of the bus type, which neatly addresses
    those problems and lets the decision of whether firmware description of
    DMA capability should be optional or mandatory stay internal to the bus
    drivers themselves.

    Signed-off-by: Robin Murphy
    Acked-by: Rob Herring
    Acked-by: Greg Kroah-Hartman
    Acked-by: Thierry Reding
    Signed-off-by: Christoph Hellwig

    Robin Murphy
     

09 Jun, 2017

1 commit


12 Aug, 2016

1 commit


06 May, 2016

1 commit

  • To read pid/cid registers, the probed device need to be properly turned on.
    When it is inside a power domain, the bus code should ensure that the
    given power domain is enabled before trying to access device's registers.
    However in some cases power domain (or clocks) might not be yet available.
    Returning -EPROBE_DEFER is not a solution in such case, because callers
    don't handle this special error code. Instead such devices are added to the
    special list and their registration is retried from periodic worker until
    all resources are available.

    Signed-off-by: Marek Szyprowski
    Signed-off-by: Russell King

    Marek Szyprowski
     

24 Nov, 2015

1 commit


02 Apr, 2015

2 commits

  • amba: tegra-ahb: detect and correct bogus base address

    From a hardware SoC integration point of view, the starting address of
    this IP block in the existing Tegra SoC DT files is off by 4 bytes
    from the actual base address. Since we attempt to make old DT files
    forward-compatible with newer kernels, we cannot fix the IP block base
    address in old DT data. This patch works around the problem by
    detecting the four byte base address offset in the driver code, and
    correcting it if it's detected. (In general, IP block base addresses
    almost always have a null low byte.)

    Future SoC DT data for Tegra AHB should use the correct Tegra AHB base
    address, in cases where there is no DT data backward compatibility
    requirement.

    This patch is a revision of the patch originally titled
    "amba: tegra-ahb: use correct base address for future chip support".
    This revision implements changes requested by Russell King:

    http://marc.info/?l=linux-tegra&m=142658851825062&w=2
    http://marc.info/?l=linux-tegra&m=142658873925178&w=2

    Signed-off-by: Paul Walmsley
    Cc: Paul Walmsley
    Cc: Alexandre Courbot
    Cc: Hiroshi DOYU
    Cc: Stephen Warren
    Cc: Thierry Reding
    Cc: linux-kernel@vger.kernel.org
    Acked-by: Stephen Warren
    Signed-off-by: Russell King

    Paul Walmsley
     
  • amba: tegra-ahb: fix register offsets in the macros

    From a hardware SoC integration point of view, the offsets of the
    Tegra AHB registers that are currently defined in tegra-ahb.c macros
    are all off by four bytes. Similarly, the starting address of this IP
    block in our existing DT files is also off by four bytes. Since we
    attempt to make old DT files forward-compatible with newer kernels, we
    cannot fix the IP block base address in old DT data. However, we can
    fix the offsets in the driver so that they are correct with respect to
    the hardware, which is what this patch does. And a subsequent patch
    will allow the offset to be removed for DT 'compatible' strings used
    in future DT files for newer Tegra chips that the kernel does not yet
    support.

    Signed-off-by: Paul Walmsley
    Cc: Paul Walmsley
    Cc: Alexandre Courbot
    Cc: Hiroshi DOYU
    Cc: Stephen Warren
    Cc: Thierry Reding
    Cc: linux-kernel@vger.kernel.org
    Acked-by: Stephen Warren
    Signed-off-by: Russell King

    Paul Walmsley
     

10 Feb, 2015

1 commit

  • As already demonstrated with PCI [1] and the platform bus [2], a
    driver_override property in sysfs can be used to bypass the id
    matching of a device to a AMBA driver. This can be used by VFIO to
    bind to any AMBA device requested by the user.

    [1] http://lists-archives.com/linux-kernel/28030441-pci-introduce-new-device-binding-path-using-pci_dev-driver_override.html
    [2] https://www.redhat.com/archives/libvir-list/2014-April/msg00382.html

    Signed-off-by: Antonios Motakis
    Reviewed-by: Kim Phillips
    Signed-off-by: Russell King

    Antonios Motakis
     

15 Dec, 2014

2 commits

  • Pull char/misc driver updates from Greg KH:
    "Here's the big char/misc driver update for 3.19-rc1

    Lots of little things all over the place in different drivers, and a
    new subsystem, "coresight" has been added. Full details are in the
    shortlog"

    * tag 'char-misc-3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (73 commits)
    parport: parport_pc, do not remove parent devices early
    spmi: Remove shutdown/suspend/resume kernel-doc
    carma-fpga-program: drop videobuf dependency
    carma-fpga: drop videobuf dependency
    carma-fpga-program.c: fix compile errors
    i8k: Fix temperature bug handling in i8k_get_temp()
    cxl: Name interrupts in /proc/interrupt
    CXL: Return error to PSL if IRQ demultiplexing fails & print clearer warning
    coresight-replicator: remove .owner field for driver
    coresight: fixed comments in coresight.h
    coresight: fix typo in comment in coresight-priv.h
    coresight: bindings for coresight drivers
    coresight: Adding ABI documentation
    w1: support auto-load of w1_bq27000 module.
    w1: avoid potential u16 overflow
    cn: verify msg->len before making callback
    mei: export fw status registers through sysfs
    mei: read and print all six FW status registers
    mei: txe: add cherrytrail device id
    mei: kill cached host and me csr values
    ...

    Linus Torvalds
     
  • Pull driver core update from Greg KH:
    "Here's the set of driver core patches for 3.19-rc1.

    They are dominated by the removal of the .owner field in platform
    drivers. They touch a lot of files, but they are "simple" changes,
    just removing a line in a structure.

    Other than that, a few minor driver core and debugfs changes. There
    are some ath9k patches coming in through this tree that have been
    acked by the wireless maintainers as they relied on the debugfs
    changes.

    Everything has been in linux-next for a while"

    * tag 'driver-core-3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (324 commits)
    Revert "ath: ath9k: use debugfs_create_devm_seqfile() helper for seq_file entries"
    fs: debugfs: add forward declaration for struct device type
    firmware class: Deletion of an unnecessary check before the function call "vunmap"
    firmware loader: fix hung task warning dump
    devcoredump: provide a one-way disable function
    device: Add dev__once variants
    ath: ath9k: use debugfs_create_devm_seqfile() helper for seq_file entries
    ath: use seq_file api for ath9k debugfs files
    debugfs: add helper function to create device related seq_file
    drivers/base: cacheinfo: remove noisy error boot message
    Revert "core: platform: add warning if driver has no owner"
    drivers: base: support cpu cache information interface to userspace via sysfs
    drivers: base: add cpu_device_create to support per-cpu devices
    topology: replace custom attribute macros with standard DEVICE_ATTR*
    cpumask: factor out show_cpumap into separate helper function
    driver core: Fix unbalanced device reference in drivers_probe
    driver core: fix race with userland in device_add()
    sysfs/kernfs: make read requests on pre-alloc files use the buffer.
    sysfs/kernfs: allow attributes to request write buffer be pre-allocated.
    fs: sysfs: return EGBIG on write if offset is larger than file size
    ...

    Linus Torvalds
     

13 Dec, 2014

1 commit

  • Pull ARM updates from Russell King:
    "The major updates included in this update are:

    - Clang compatible stack pointer accesses by Behan Webster.
    - SA11x0 updates from Dmitry Eremin-Solenikov.
    - kgdb handling of breakpoints with read-only text/modules
    - Support for Privileged-no-execute feature on ARMv7 to prevent
    userspace code execution by the kernel.
    - AMBA primecell bus handling of irq-safe runtime PM
    - Unwinding support for memset/memzero/memmove/memcpy functions
    - VFP fixes for Krait CPUs and improvements in detecting the VFP
    architecture
    - A number of code cleanups (using pr_*, removing or reducing the
    severity of a couple of kernel messages, splitting ftrace asm code
    out to a separate file, etc.)
    - Add machine name to stack dump output"

    * 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm: (62 commits)
    ARM: 8247/2: pcmcia: sa1100: make use of device clock
    ARM: 8246/2: pcmcia: sa1111: provide device clock
    ARM: 8245/1: pcmcia: soc-common: enable/disable socket clocks
    ARM: 8244/1: fbdev: sa1100fb: make use of device clock
    ARM: 8243/1: sa1100: add a clock alias for sa1111 pcmcia device
    ARM: 8242/1: sa1100: add cpu clock
    ARM: 8221/1: PJ4: allow building in Thumb-2 mode
    ARM: 8234/1: sa1100: reorder IRQ handling code
    ARM: 8233/1: sa1100: switch to hwirq usage
    ARM: 8232/1: sa1100: merge GPIO multiplexer IRQ to "normal" irq domain
    ARM: 8231/1: sa1100: introduce irqdomains support
    ARM: 8230/1: sa1100: shift IRQs by one
    ARM: 8229/1: sa1100: replace irq numbers with names in irq driver
    ARM: 8228/1: sa1100: drop entry-macro.S
    ARM: 8227/1: sa1100: switch to MULTI_IRQ_HANDLER
    ARM: 8241/1: Update processor_modes for hyp and monitor mode
    ARM: 8240/1: MCPM: document mcpm_sync_init()
    ARM: 8239/1: Introduce {set,clear}_pte_bit
    ARM: 8238/1: mm: Refine set_memory_* functions
    ARM: 8237/1: fix flush_pfn_alias
    ...

    Linus Torvalds
     

11 Dec, 2014

1 commit

  • Pull ACPI and power management updates from Rafael Wysocki:
    "This time we have some more new material than we used to have during
    the last couple of development cycles.

    The most important part of it to me is the introduction of a unified
    interface for accessing device properties provided by platform
    firmware. It works with Device Trees and ACPI in a uniform way and
    drivers using it need not worry about where the properties come from
    as long as the platform firmware (either DT or ACPI) makes them
    available. It covers both devices and "bare" device node objects
    without struct device representation as that turns out to be necessary
    in some cases. This has been in the works for quite a few months (and
    development cycles) and has been approved by all of the relevant
    maintainers.

    On top of that, some drivers are switched over to the new interface
    (at25, leds-gpio, gpio_keys_polled) and some additional changes are
    made to the core GPIO subsystem to allow device drivers to manipulate
    GPIOs in the "canonical" way on platforms that provide GPIO
    information in their ACPI tables, but don't assign names to GPIO lines
    (in which case the driver needs to do that on the basis of what it
    knows about the device in question). That also has been approved by
    the GPIO core maintainers and the rfkill driver is now going to use
    it.

    Second is support for hardware P-states in the intel_pstate driver.
    It uses CPUID to detect whether or not the feature is supported by the
    processor in which case it will be enabled by default. However, it
    can be disabled entirely from the kernel command line if necessary.

    Next is support for a platform firmware interface based on ACPI
    operation regions used by the PMIC (Power Management Integrated
    Circuit) chips on the Intel Baytrail-T and Baytrail-T-CR platforms.
    That interface is used for manipulating power resources and for
    thermal management: sensor temperature reporting, trip point setting
    and so on.

    Also the ACPI core is now going to support the _DEP configuration
    information in a limited way. Basically, _DEP it supposed to reflect
    off-the-hierarchy dependencies between devices which may be very
    indirect, like when AML for one device accesses locations in an
    operation region handled by another device's driver (usually, the
    device depended on this way is a serial bus or GPIO controller). The
    support added this time is sufficient to make the ACPI battery driver
    work on Asus T100A, but it is general enough to be able to cover some
    other use cases in the future.

    Finally, we have a new cpufreq driver for the Loongson1B processor.

    In addition to the above, there are fixes and cleanups all over the
    place as usual and a traditional ACPICA update to a recent upstream
    release.

    As far as the fixes go, the ACPI LPSS (Low-power Subsystem) driver for
    Intel platforms should be able to handle power management of the DMA
    engine correctly, the cpufreq-dt driver should interact with the
    thermal subsystem in a better way and the ACPI backlight driver should
    handle some more corner cases, among other things.

    On top of the ACPICA update there are fixes for race conditions in the
    ACPICA's interrupt handling code which might lead to some random and
    strange looking failures on some systems.

    In the cleanups department the most visible part is the series of
    commits targeted at getting rid of the CONFIG_PM_RUNTIME configuration
    option. That was triggered by a discussion regarding the generic
    power domains code during which we realized that trying to support
    certain combinations of PM config options was painful and not really
    worth it, because nobody would use them in production anyway. For
    this reason, we decided to make CONFIG_PM_SLEEP select
    CONFIG_PM_RUNTIME and that lead to the conclusion that the latter
    became redundant and CONFIG_PM could be used instead of it. The
    material here makes that replacement in a major part of the tree, but
    there will be at least one more batch of that in the second part of
    the merge window.

    Specifics:

    - Support for retrieving device properties information from ACPI _DSD
    device configuration objects and a unified device properties
    interface for device drivers (and subsystems) on top of that. As
    stated above, this works with Device Trees and ACPI and allows
    device drivers to be written in a platform firmware (DT or ACPI)
    agnostic way. The at25, leds-gpio and gpio_keys_polled drivers are
    now going to use this new interface and the GPIO subsystem is
    additionally modified to allow device drivers to assign names to
    GPIO resources returned by ACPI _CRS objects (in case _DSD is not
    present or does not provide the expected data). The changes in
    this set are mostly from Mika Westerberg, Rafael J Wysocki, Aaron
    Lu, and Darren Hart with some fixes from others (Fabio Estevam,
    Geert Uytterhoeven).

    - Support for Hardware Managed Performance States (HWP) as described
    in Volume 3, section 14.4, of the Intel SDM in the intel_pstate
    driver. CPUID is used to detect whether or not the feature is
    supported by the processor. If supported, it will be enabled
    automatically unless the intel_pstate=no_hwp switch is present in
    the kernel command line. From Dirk Brandewie.

    - New Intel Broadwell-H ID for intel_pstate (Dirk Brandewie).

    - Support for firmware interface based on ACPI operation regions used
    by the PMIC chips on the Intel Baytrail-T and Baytrail-T-CR
    platforms for power resource control and thermal management (Aaron
    Lu).

    - Limited support for retrieving off-the-hierarchy dependencies
    between devices from ACPI _DEP device configuration objects and
    deferred probing support for the ACPI battery driver based on the
    _DEP information to make that driver work on Asus T100A (Lan
    Tianyu).

    - New cpufreq driver for the Loongson1B processor (Kelvin Cheung).

    - ACPICA update to upstream revision 20141107 which only affects
    tools (Bob Moore).

    - Fixes for race conditions in the ACPICA's interrupt handling code
    and in the ACPI code related to system suspend and resume (Lv Zheng
    and Rafael J Wysocki).

    - ACPI core fix for an RCU-related issue in the ioremap() regions
    management code that slowed down significantly after CPUs had been
    allowed to enter idle states even if they'd had RCU callbakcs
    queued and triggered some problems in certain proprietary graphics
    driver (and elsewhere). The fix replaces synchronize_rcu() in that
    code with synchronize_rcu_expedited() which makes the issue go
    away. From Konstantin Khlebnikov.

    - ACPI LPSS (Low-Power Subsystem) driver fix to handle power
    management of the DMA engine included into the LPSS correctly. The
    problem is that the DMA engine doesn't have ACPI PM support of its
    own and it simply is turned off when the last LPSS device having
    ACPI PM support goes into D3cold. To work around that, the PM
    domain used by the ACPI LPSS driver is redesigned so at least one
    device with ACPI PM support will be on as long as the DMA engine is
    in use. From Andy Shevchenko.

    - ACPI backlight driver fix to avoid using it on "Win8-compatible"
    systems where it doesn't work and where it was used by default by
    mistake (Aaron Lu).

    - Assorted minor ACPI core fixes and cleanups from Tomasz Nowicki,
    Sudeep Holla, Huang Rui, Hanjun Guo, Fabian Frederick, and Ashwin
    Chaugule (mostly related to the upcoming ARM64 support).

    - Intel RAPL (Running Average Power Limit) power capping driver fixes
    and improvements including new processor IDs (Jacob Pan).

    - Generic power domains modification to power up domains after
    attaching devices to them to meet the expectations of device
    drivers and bus types assuming devices to be accessible at probe
    time (Ulf Hansson).

    - Preliminary support for controlling device clocks from the generic
    power domains core code and modifications of the ARM/shmobile
    platform to use that feature (Ulf Hansson).

    - Assorted minor fixes and cleanups of the generic power domains core
    code (Ulf Hansson, Geert Uytterhoeven).

    - Assorted minor fixes and cleanups of the device clocks control code
    in the PM core (Geert Uytterhoeven, Grygorii Strashko).

    - Consolidation of device power management Kconfig options by making
    CONFIG_PM_SLEEP select CONFIG_PM_RUNTIME and removing the latter
    which is now redundant (Rafael J Wysocki and Kevin Hilman). That
    is the first batch of the changes needed for this purpose.

    - Core device runtime power management support code cleanup related
    to the execution of callbacks (Andrzej Hajda).

    - cpuidle ARM support improvements (Lorenzo Pieralisi).

    - cpuidle cleanup related to the CPUIDLE_FLAG_TIME_VALID flag and a
    new MAINTAINERS entry for ARM Exynos cpuidle (Daniel Lezcano and
    Bartlomiej Zolnierkiewicz).

    - New cpufreq driver callback (->ready) to be executed when the
    cpufreq core is ready to use a given policy object and cpufreq-dt
    driver modification to use that callback for cooling device
    registration (Viresh Kumar).

    - cpufreq core fixes and cleanups (Viresh Kumar, Vince Hsu, James
    Geboski, Tomeu Vizoso).

    - Assorted fixes and cleanups in the cpufreq-pcc, intel_pstate,
    cpufreq-dt, pxa2xx cpufreq drivers (Lenny Szubowicz, Ethan Zhao,
    Stefan Wahren, Petr Cvek).

    - OPP (Operating Performance Points) framework modification to allow
    OPPs to be removed too and update of a few cpufreq drivers
    (cpufreq-dt, exynos5440, imx6q, cpufreq) to remove OPPs (added
    during initialization) on driver removal (Viresh Kumar).

    - Hibernation core fixes and cleanups (Tina Ruchandani and Markus
    Elfring).

    - PM Kconfig fix related to CPU power management (Pankaj Dubey).

    - cpupower tool fix (Prarit Bhargava)"

    * tag 'pm+acpi-3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (120 commits)
    i2c-omap / PM: Drop CONFIG_PM_RUNTIME from i2c-omap.c
    dmaengine / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    tools: cpupower: fix return checks for sysfs_get_idlestate_count()
    drivers: sh / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    e1000e / igb / PM: Eliminate CONFIG_PM_RUNTIME
    MMC / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    MFD / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    misc / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    media / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    input / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    leds: leds-gpio: Fix multiple instances registration without 'label' property
    iio / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    hsi / OMAP / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    i2c-hid / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    drm / exynos / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    gpio / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    hwrandom / exynos / PM: Use CONFIG_PM in #ifdef
    block / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    USB / PM: Drop CONFIG_PM_RUNTIME from the USB core
    PM: Merge the SET*_RUNTIME_PM_OPS() macros
    ...

    Linus Torvalds
     

04 Dec, 2014

1 commit

  • The SET_PM_RUNTIME_PM_OPS() and SET_RUNTIME_PM_OPS() macros are
    identical except that one of them is not empty for CONFIG_PM set,
    while the other one is not empty for CONFIG_PM_RUNTIME set,
    respectively.

    However, after commit b2b49ccbdd54 (PM: Kconfig: Set PM_RUNTIME if
    PM_SLEEP is selected) PM_RUNTIME is always set if PM is set, so one
    of these macros is now redundant.

    For this reason, replace SET_PM_RUNTIME_PM_OPS() with
    SET_RUNTIME_PM_OPS() everywhere and redefine the SET_PM_RUNTIME_PM_OPS
    symbol as SET_RUNTIME_PM_OPS in case new code is starting to use the
    macro being removed here.

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

    Rafael J. Wysocki
     

26 Nov, 2014

2 commits


18 Nov, 2014

1 commit

  • The AMBA bus driver defines runtime Power Management functions which
    disable and unprepare AMBA bus clock. This is problematic for runtime PM
    because unpreparing a clock might sleep so it is not interrupt safe.

    However some drivers may want to implement runtime PM functions in
    interrupt-safe way (see pm_runtime_irq_safe()). In such case the AMBA
    bus driver should only disable/enable the clock in runtime suspend and
    resume callbacks.

    Signed-off-by: Krzysztof Kozlowski
    Reviewed-by: Ulf Hansson
    Signed-off-by: Russell King

    Krzysztof Kozlowski
     

08 Nov, 2014

1 commit

  • CoreSight components are compliant with the ARM CoreSight
    architecture specification and can be connected in various
    topologies to suit a particular SoC tracing needs. These trace
    components can generally be classified as sources, links and
    sinks. Trace data produced by one or more sources flows through
    the intermediate links connecting the source to the currently
    selected sink.

    The CoreSight framework provides an interface for the CoreSight trace
    drivers to register themselves with. It's intended to build up a
    topological view of the CoreSight components and configure the
    correct serie of components on user input via sysfs.

    For eg., when enabling a source, the framework builds up a path
    consisting of all the components connecting the source to the
    currently selected sink(s) and enables all of them.

    The framework also supports switching between available sinks
    and provides status information to user space applications
    through the debugfs interface.

    Signed-off-by: Pratik Patel
    Signed-off-by: Mathieu Poirier
    Signed-off-by: Greg Kroah-Hartman

    Pratik Patel
     

20 Oct, 2014

1 commit


30 Sep, 2014

1 commit

  • The commit 46420dd73b80 (PM / Domains: Add APIs to attach/detach a PM
    domain for a device) started using errno values in pm.h header file.
    It also failed to include the header for these, thus it caused
    compiler errors.

    Instead of including the errno header to pm.h, let's move the functions
    to pm_domain.h, since it's a better match.

    Fixes: 46420dd73b80 (PM / Domains: Add APIs to attach/detach a PM domain for a device)
    Signed-off-by: Ulf Hansson
    Acked-by: Geert Uytterhoeven
    Acked-by: Wolfram Sang
    Acked-by: Mark Brown
    Signed-off-by: Rafael J. Wysocki

    Ulf Hansson
     

22 Sep, 2014

1 commit

  • AMBA devices may on some SoCs resides in PM domains. To be able to
    manage these devices from there, let's try to attach devices to their
    corresponding PM domain during the probe phase.

    To reverse these actions at the remove phase, we try to detach the
    device from its PM domain.

    Signed-off-by: Ulf Hansson
    Reviewed-by: Kevin Hilman
    Reviewed-by: Dmitry Torokhov
    Signed-off-by: Rafael J. Wysocki

    Ulf Hansson
     

17 Jul, 2014

1 commit


06 Apr, 2014

1 commit

  • Pull ARM SoC driver changes from Arnd Bergmann:
    "These changes are mostly for ARM specific device drivers that either
    don't have an upstream maintainer, or that had the maintainer ask us
    to pick up the changes to avoid conflicts.

    A large chunk of this are clock drivers (bcm281xx, exynos, versatile,
    shmobile), aside from that, reset controllers for STi as well as a
    large rework of the Marvell Orion/EBU watchdog driver are notable"

    * tag 'drivers-3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (99 commits)
    Revert "dts: socfpga: Add DTS entry for adding the stmmac glue layer for stmmac."
    Revert "net: stmmac: Add SOCFPGA glue driver"
    ARM: shmobile: r8a7791: Fix SCIFA3-5 clocks
    ARM: STi: Add reset controller support to mach-sti Kconfig
    drivers: reset: stih416: add softreset controller
    drivers: reset: stih415: add softreset controller
    drivers: reset: Reset controller driver for STiH416
    drivers: reset: Reset controller driver for STiH415
    drivers: reset: STi SoC system configuration reset controller support
    dts: socfpga: Add sysmgr node so the gmac can use to reference
    dts: socfpga: Add support for SD/MMC on the SOCFPGA platform
    reset: Add optional resets and stubs
    ARM: shmobile: r7s72100: fix bus clock calculation
    Power: Reset: Generalize qnap-poweroff to work on Synology devices.
    dts: socfpga: Update clock entry to support multiple parents
    ARM: socfpga: Update socfpga_defconfig
    dts: socfpga: Add DTS entry for adding the stmmac glue layer for stmmac.
    net: stmmac: Add SOCFPGA glue driver
    watchdog: orion_wdt: Use %pa to print 'phys_addr_t'
    drivers: cci: Export CCI PMU revision
    ...

    Linus Torvalds
     

19 Feb, 2014

1 commit


06 Feb, 2014

1 commit


10 Dec, 2013

1 commit