16 Jun, 2020

1 commit

  • There is a regular need in the kernel to provide a way to declare having a
    dynamically sized set of trailing elements in a structure. Kernel code should
    always use “flexible array members”[1] for these cases. The older style of
    one-element or zero-length arrays should no longer be used[2].

    [1] https://en.wikipedia.org/wiki/Flexible_array_member
    [2] https://github.com/KSPP/linux/issues/21

    Signed-off-by: Gustavo A. R. Silva

    Gustavo A. R. Silva
     

05 Jun, 2020

1 commit

  • Pull ARM SoC updates from Arnd Bergmann:
    "One new platform gets added, the Realtek RTD1195, which is an older
    Cortex-a7 based relative of the RTD12xx chips that are already
    supported in arch/arm64. The platform may also be extended to support
    running 32-bit kernels on those 64-bit chips for memory-constrained
    machines.

    In the Renesas shmobile platform, we gain support for "RZ/G1H" or
    R8A7742, an eight-core chip based on Cortex-A15 and Cortex-A7 cores,
    originally released in 2016 as one of the last high-end 32-bit
    designs.

    There is ongoing cleanup for the integrator, tegra, imx, and omap2
    platforms, with integrator getting very close to the goal of having
    zero code in arch/arm/, and omap2 moving more of the chip specifics
    from old board code into device tree files.

    The Versatile Express platform is made more modular, with built-in
    drivers now becoming loadable modules. This is part of a greater
    effort for the Android OS to have a common kernel binary for all
    platforms and any platform specific code in loadable modules.

    The PXA platform drops support for Compulab's pxa2xx boards that had
    rather unusual flash and PCI drivers but no known users remaining. All
    device drivers specific to those boards can now get removed as well.

    Across platforms, there is ongoing cleanup, with Geert and Rob
    revisiting some a lot of Kconfig options"

    * tag 'arm-soc-5.8' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (94 commits)
    ARM: omap2: fix omap5_realtime_timer_init definition
    ARM: zynq: Don't select CONFIG_ICST
    ARM: OMAP2+: Fix regression for using local timer on non-SMP SoCs
    clk: versatile: Fix kconfig dependency on COMMON_CLK_VERSATILE
    ARM: davinci: fix build failure without I2C
    power: reset: vexpress: fix build issue
    power: vexpress: cleanup: use builtin_platform_driver
    power: vexpress: add suppress_bind_attrs to true
    Revert "ARM: vexpress: Don't select VEXPRESS_CONFIG"
    MAINTAINERS: pxa: remove Compulab arm/pxa support
    ARM: pxa: remove Compulab pxa2xx boards
    bus: arm-integrator-lm: Fix return value check in integrator_ap_lm_probe()
    soc: imx: move cpu code to drivers/soc/imx
    ARM: imx: move cpu definitions into a header
    ARM: imx: use device_initcall for imx_soc_device_init
    ARM: imx: pcm037: make pcm970_sja1000_platform_data static
    bus: ti-sysc: Timers no longer need legacy quirk handling
    ARM: OMAP2+: Drop old timer code for dmtimer and 32k counter
    ARM: dts: Configure system timers for omap2
    ARM: dts: Configure system timers for ti81xx
    ...

    Linus Torvalds
     

06 May, 2020

1 commit

  • If amba bus devices defer when adding, the amba bus code simply retries
    adding the devices every 5 seconds. This doesn't work well as it
    completely unsynchronized with starting the init process which can
    happen in less than 5 secs. Add a retry during late_initcall. If the
    amba devices are added, then deferred probe takes over. If the
    dependencies have not probed at this point, then there's no improvement
    over previous behavior. To completely solve this, we'd need to retry
    after every successful probe as deferred probe does.

    The list_empty() check now happens outside the mutex, but the mutex
    wasn't necessary in the first place.

    This needed to use deferred probe instead of fragile initcall ordering
    on 32-bit VExpress systems where the apb_pclk has a number of probe
    dependencies (vexpress-sysregs, vexpress-config).

    Cc: John Stultz
    Cc: Saravana Kannan
    Cc: Nicolas Saenz Julienne
    Cc: Geert Uytterhoeven
    Cc: Russell King
    Tested-by: Sudeep Holla
    Reviewed-by: Sudeep Holla
    Reviewed-by: Linus Walleij
    Signed-off-by: Rob Herring

    Rob Herring
     

28 Apr, 2020

1 commit

  • It's currently the amba driver's responsibility to initialize the pointer,
    dma_parms, for its corresponding struct device. The benefit with this
    approach allows us to avoid the initialization and to not waste memory for
    the struct device_dma_parameters, as this can be decided on a case by case
    basis.

    However, it has turned out that this approach is not very practical. Not
    only does it lead to open coding, but also to real errors. In principle
    callers of dma_set_max_seg_size() doesn't check the error code, but just
    assumes it succeeds.

    For these reasons, let's do the initialization from the common amba bus at
    the device registration point. This also follows the way the PCI devices
    are being managed, see pci_device_add().

    Suggested-by: Christoph Hellwig
    Cc: Russell King
    Cc:
    Tested-by: Haibo Chen
    Reviewed-by: Arnd Bergmann
    Signed-off-by: Ulf Hansson
    Reviewed-by: Christoph Hellwig
    Link: https://lore.kernel.org/r/20200422101013.31267-1-ulf.hansson@linaro.org
    Signed-off-by: Greg Kroah-Hartman

    Ulf Hansson
     

23 Oct, 2019

1 commit

  • :Pull ARM fixes from Russell King:

    - fix for alignment faults under high memory pressure

    - use u32 for ARM instructions in fault handler

    - mark functions that must always be inlined with __always_inline

    - fix for nommu XIP

    - fix ARMv7M switch to handler mode in reboot path

    - fix the recently introduced AMBA reset control error paths

    * tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm:
    ARM: 8926/1: v7m: remove register save to stack before svc
    ARM: 8914/1: NOMMU: Fix exc_ret for XIP
    ARM: 8908/1: add __always_inline to functions called from __get_user_check()
    ARM: mm: alignment: use "u32" for 32-bit instructions
    ARM: mm: fix alignment handler faults under memory pressure
    drivers/amba: fix reset control error handling

    Linus Torvalds
     

10 Oct, 2019

1 commit

  • With commit 79bdcb202a35 ("ARM: 8906/1: drivers/amba: add reset control
    to amba bus probe") it is possible for the the amba bus driver to defer
    probing the device for its IDs because the reset driver may be probed
    later.

    However when a subsequent probe occurs, the call to request_resource()
    in the driver returns -EBUSY as the driver has not released the resource
    from the initial probe attempt - or cleaned up any of the preceding
    actions.

    Fix this both for the deferred probe case as well as a failure to get
    the reset.

    Fixes: 79bdcb202a35 ("ARM: 8906/1: drivers/amba: add reset control to amba bus probe")
    Reported-by: Dinh Nguyen
    Tested-by: Dinh Nguyen
    Signed-off-by: Russell King

    Russell King
     

23 Sep, 2019

1 commit

  • Pull ARM updates from Russell King:

    - fix various clang build and cppcheck issues

    - switch ARM to use new common outgoing-CPU-notification code

    - add some additional explanation about the boot code

    - kbuild "make clean" fixes

    - get rid of another "(____ptrval____)", this time for the VDSO code

    - avoid treating cache maintenance faults as a write

    - add a frame pointer unwinder implementation for clang

    - add EDAC support for Aurora L2 cache

    - improve robustness of adjust_lowmem_bounds() finding the bounds of
    lowmem.

    - add reset control for AMBA primecell devices

    * tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm: (24 commits)
    ARM: 8906/1: drivers/amba: add reset control to amba bus probe
    ARM: 8905/1: Emit __gnu_mcount_nc when using Clang 10.0.0 or newer
    ARM: 8904/1: skip nomap memblocks while finding the lowmem/highmem boundary
    ARM: 8903/1: ensure that usable memory in bank 0 starts from a PMD-aligned address
    ARM: 8891/1: EDAC: armada_xp: Add support for more SoCs
    ARM: 8888/1: EDAC: Add driver for the Marvell Armada XP SDRAM and L2 cache ECC
    ARM: 8892/1: EDAC: Add missing debugfs_create_x32 wrapper
    ARM: 8890/1: l2x0: add marvell,ecc-enable property for aurora
    ARM: 8889/1: dt-bindings: document marvell,ecc-enable binding
    ARM: 8886/1: l2x0: support parity-enable/disable on aurora
    ARM: 8885/1: aurora-l2: add defines for parity and ECC registers
    ARM: 8887/1: aurora-l2: add prefix to MAX_RANGE_SIZE
    ARM: 8902/1: l2c: move cache-aurora-l2.h to asm/hardware
    ARM: 8900/1: UNWINDER_FRAME_POINTER implementation for Clang
    ARM: 8898/1: mm: Don't treat faults reported from cache maintenance as writes
    ARM: 8896/1: VDSO: Don't leak kernel addresses
    ARM: 8895/1: visit mach-* and plat-* directories when cleaning
    ARM: 8894/1: boot: Replace open-coded nop with macro
    ARM: 8893/1: boot: Explain the 8 nops
    ARM: 8876/1: fix O= building with CONFIG_FPE_FASTFPE
    ...

    Linus Torvalds
     

10 Sep, 2019

1 commit

  • The primecell controller on some SoCs, i.e. SoCFPGA, is held in reset
    by default. Until recently, the DMA controller was brought out of reset by the bootloader(i.e. U-Boot). But a recent change in U-Boot, the peripherals that are not used are held in reset and are left to Linux to bring them out of reset.

    Add a mechanism for getting the reset property and de-assert the primecell module from reset if found. This is a not a hard fail if the reset property is not present in the device tree node, so the driver will continue to probe.

    Because there are different variants of the controller that may have
    multiple reset signals, the code will find all reset(s) specified and
    de-assert them.

    Signed-off-by: Dinh Nguyen
    Reviewed-by: Rob Herring
    Reviewed-by: Philipp Zabel
    Reviewed-by: Linus Walleij
    Signed-off-by: Russell King

    DINH L NGUYEN
     

30 Jul, 2019

1 commit

  • Introduce wrappers for {bus/driver/class}_find_device() to
    locate devices by its of_node.

    Cc: Maarten Lankhorst
    Cc: Maxime Ripard
    Cc: dri-devel@lists.freedesktop.org
    Cc: David Airlie
    Cc: Daniel Vetter
    Cc: devicetree@vger.kernel.org
    Cc: Florian Fainelli
    Cc: Frank Rowand
    Cc: Heiko Stuebner
    Cc: Liam Girdwood
    Cc: linux-i2c@vger.kernel.org
    Cc: linux-rockchip@lists.infradead.org
    Cc: linux-spi@vger.kernel.org
    Cc: Mathieu Poirier
    Cc: Rob Herring
    Cc: Srinivas Kandagatla
    Cc: Takashi Iwai
    Cc: Alan Tull
    Cc: linux-fpga@vger.kernel.org
    Cc: Peter Rosin
    Cc: Florian Fainelli
    Cc: Heiner Kallweit
    Cc: "David S. Miller"
    Cc: Andrew Lunn
    Cc: Liam Girdwood
    Cc: "Rafael J. Wysocki"
    Cc: Thor Thayer
    Cc: Jiri Slaby
    Cc: Andrew Lunn
    Cc: Peter Rosin
    Signed-off-by: Suzuki K Poulose
    Acked-by: Lee Jones
    Acked-by: Wolfram Sang # I2C part
    Acked-by: Moritz Fischer # For FPGA part
    Acked-by: Mark Brown
    Link: https://lore.kernel.org/r/20190723221838.12024-3-suzuki.poulose@arm.com
    Signed-off-by: Greg Kroah-Hartman

    Suzuki K Poulose
     

13 Jul, 2019

1 commit

  • Pull driver core and debugfs updates from Greg KH:
    "Here is the "big" driver core and debugfs changes for 5.3-rc1

    It's a lot of different patches, all across the tree due to some api
    changes and lots of debugfs cleanups.

    Other than the debugfs cleanups, in this set of changes we have:

    - bus iteration function cleanups

    - scripts/get_abi.pl tool to display and parse Documentation/ABI
    entries in a simple way

    - cleanups to Documenatation/ABI/ entries to make them parse easier
    due to typos and other minor things

    - default_attrs use for some ktype users

    - driver model documentation file conversions to .rst

    - compressed firmware file loading

    - deferred probe fixes

    All of these have been in linux-next for a while, with a bunch of
    merge issues that Stephen has been patient with me for"

    * tag 'driver-core-5.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (102 commits)
    debugfs: make error message a bit more verbose
    orangefs: fix build warning from debugfs cleanup patch
    ubifs: fix build warning after debugfs cleanup patch
    driver: core: Allow subsystems to continue deferring probe
    drivers: base: cacheinfo: Ensure cpu hotplug work is done before Intel RDT
    arch_topology: Remove error messages on out-of-memory conditions
    lib: notifier-error-inject: no need to check return value of debugfs_create functions
    swiotlb: no need to check return value of debugfs_create functions
    ceph: no need to check return value of debugfs_create functions
    sunrpc: no need to check return value of debugfs_create functions
    ubifs: no need to check return value of debugfs_create functions
    orangefs: no need to check return value of debugfs_create functions
    nfsd: no need to check return value of debugfs_create functions
    lib: 842: no need to check return value of debugfs_create functions
    debugfs: provide pr_fmt() macro
    debugfs: log errors when something goes wrong
    drivers: s390/cio: Fix compilation warning about const qualifiers
    drivers: Add generic helper to match by of_node
    driver_find_device: Unify the match function with class_find_device()
    bus_find_device: Unify the match callback with class_find_device
    ...

    Linus Torvalds
     

24 Jun, 2019

1 commit

  • The driver_find_device() accepts a match function pointer to
    filter the devices for lookup, similar to bus/class_find_device().
    However, there is a minor difference in the prototype for the
    match parameter for driver_find_device() with the now unified
    version accepted by {bus/class}_find_device(), where it doesn't
    accept a "const" qualifier for the data argument. This prevents
    us from reusing the generic match functions for driver_find_device().

    For this reason, change the prototype of the driver_find_device() to
    make the "match" parameter in line with {bus/class}_find_device()
    and adjust its callers to use the const qualifier. Also, we could
    now promote the "data" parameter to const as we pass it down
    as a const parameter to the match functions.

    Cc: Corey Minyard
    Cc: Russell King
    Cc: Thierry Reding
    Cc: Greg Kroah-Hartman
    Cc: "Rafael J. Wysocki"
    Cc: Will Deacon
    Cc: Joerg Roedel
    Cc: Peter Oberparleiter
    Cc: Sebastian Ott
    Cc: David Airlie
    Cc: Daniel Vetter
    Cc: Nehal Shah
    Cc: Shyam Sundar S K
    Cc: Lee Jones
    Cc: Christian Borntraeger
    Signed-off-by: Suzuki K Poulose
    Signed-off-by: Greg Kroah-Hartman

    Suzuki K Poulose
     

19 Jun, 2019

1 commit

  • Based on 2 normalized pattern(s):

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license version 2 as
    published by the free software foundation

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license version 2 as
    published by the free software foundation #

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-only

    has been chosen to replace the boilerplate/reference in 4122 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Enrico Weigelt
    Reviewed-by: Kate Stewart
    Reviewed-by: Allison Randal
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190604081206.933168790@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     

05 Jun, 2019

1 commit

  • Based on 1 normalized pattern(s):

    this software is licensed under the terms of the gnu general public
    license version 2 as published by the free software foundation and
    may be copied distributed and modified under those terms this
    program is distributed in the hope that it will be useful but
    without any warranty without even the implied warranty of
    merchantability or fitness for a particular purpose see the gnu
    general public license for more details

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-only

    has been chosen to replace the boilerplate/reference in 285 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Alexios Zavras
    Reviewed-by: Allison Randal
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190529141900.642774971@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     

21 May, 2019

1 commit


08 May, 2019

1 commit

  • clang warns about an unused variable when CONFIG_PM is disabled, since
    it is only referenced from an #ifdef:

    drivers/amba/tegra-ahb.c:97:18: error: variable 'tegra_ahb_gizmo' is not needed and will not be emitted [-Werror,-Wunneeded-internal-declaration]

    Rather than trying to get the #ifdef right, remove it and use
    __maybe_unused here, which is less error prone.

    Signed-off-by: Arnd Bergmann
    Signed-off-by: Thierry Reding

    Arnd Bergmann
     

26 Feb, 2019

1 commit

  • The patches provide an update of amba_device and matching code to handle
    the additional registers required for the Class 0x9 (CoreSight) UCI.

    The *data pointer in the amba_id is used by the driver to provide extended
    ID register values for matching.

    CoreSight components where PID/CID pair is currently sufficient for
    unique identification need not provide this additional information.

    Signed-off-by: Mike Leach
    Reviewed-by: Mathieu Poirier
    Reviewed-by: Suzuki K Poulose
    Tested-by: Sai Prakash Ranjan
    Signed-off-by: Russell King

    Mike Leach
     

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

1 commit

  • 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