10 Aug, 2016

1 commit


02 Aug, 2016

1 commit

  • Pull ARM SoC driver updates from Olof Johansson:
    "Driver updates for ARM SoCs.

    A slew of changes this release cycle. The reset driver tree, that we
    merge through arm-soc for historical reasons, is also sizable this
    time around.

    Among the changes:

    - clps711x: Treewide changes to compatible strings, merged here for simplicity.
    - Qualcomm: SCM firmware driver cleanups, move to platform driver
    - ux500: Major cleanups, removal of old mach-specific infrastructure.
    - Atmel external bus memory driver
    - Move of brcmstb platform to the rest of bcm
    - PMC driver updates for tegra, various fixes and improvements
    - Samsung platform driver updates to support 64-bit Exynos platforms
    - Reset controller cleanups moving to devm_reset_controller_register() APIs
    - Reset controller driver for Amlogic Meson
    - Reset controller driver for Hisilicon hi6220
    - ARM SCPI power domain support"

    * tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (100 commits)
    ARM: ux500: consolidate base platform files
    ARM: ux500: move soc_id driver to drivers/soc
    ARM: ux500: call ux500_setup_id later
    ARM: ux500: consolidate soc_device code in id.c
    ARM: ux500: remove cpu_is_u* helpers
    ARM: ux500: use CLK_OF_DECLARE()
    ARM: ux500: move l2x0 init to .init_irq
    mfd: db8500 stop passing around platform data
    ASoC: ab8500-codec: remove platform data based probe
    ARM: ux500: move ab8500_regulator_plat_data into driver
    ARM: ux500: remove unused regulator data
    soc: raspberrypi-power: add CONFIG_OF dependency
    firmware: scpi: add CONFIG_OF dependency
    video: clps711x-fb: Changing the compatibility string to match with the smallest supported chip
    input: clps711x-keypad: Changing the compatibility string to match with the smallest supported chip
    pwm: clps711x: Changing the compatibility string to match with the smallest supported chip
    serial: clps711x: Changing the compatibility string to match with the smallest supported chip
    irqchip: clps711x: Changing the compatibility string to match with the smallest supported chip
    clocksource: clps711x: Changing the compatibility string to match with the smallest supported chip
    clk: clps711x: Changing the compatibility string to match with the smallest supported chip
    ...

    Linus Torvalds
     

01 Aug, 2016

1 commit

  • The ARM architected timer produces level-triggered interrupts (this
    is mandated by the architecture). Unfortunately, a number of
    device-trees get this wrong, and expose an edge-triggered interrupt.

    Until now, this wasn't too much an issue, as the programming of the
    trigger would fail (the corresponding PPI cannot be reconfigured),
    and the kernel would be happy with this. But we're about to change
    this, and trust DT a lot if the driver doesn't provide its own
    trigger information. In that context, the timer breaks badly.

    While we do need to fix the DTs, there is also some userspace out
    there (kvmtool) that generates the same kind of broken DT on the
    fly, and that will completely break with newer kernels.

    As a safety measure, and to keep buggy software alive as well as
    buying us some time to fix DTs all over the place, let's check
    what trigger configuration has been given us by the firmware.
    If this is not a level configuration, then we know that the
    DT/ACPI configuration is bust, and we pick some defaults which
    won't be worse than the existing setup.

    Signed-off-by: Marc Zyngier
    Cc: Andrew Lunn
    Cc: Liu Gang
    Cc: Mark Rutland
    Cc: Masahiro Yamada
    Cc: Wenbin Song
    Cc: Mingkai Hu
    Cc: Florian Fainelli
    Cc: Kevin Hilman
    Cc: Daniel Lezcano
    Cc: Michal Simek
    Cc: Jon Hunter
    Cc: arm@kernel.org
    Cc: bcm-kernel-feedback-list@broadcom.com
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: Sebastian Hesselbarth
    Cc: Jason Cooper
    Cc: Ray Jui
    Cc: "Hou Zhiqiang"
    Cc: Tirumalesh Chalamarla
    Cc: linux-samsung-soc@vger.kernel.org
    Cc: Yuan Yao
    Cc: Jan Glauber
    Cc: Gregory Clement
    Cc: linux-amlogic@lists.infradead.org
    Cc: soren.brinkmann@xilinx.com
    Cc: Rajesh Bhagat
    Cc: Scott Branden
    Cc: Duc Dang
    Cc: Kukjin Kim
    Cc: Carlo Caione
    Cc: Dinh Nguyen
    Link: http://lkml.kernel.org/r/1470045256-9032-2-git-send-email-marc.zyngier@arm.com
    Signed-off-by: Thomas Gleixner

    Marc Zyngier
     

15 Jul, 2016

9 commits

  • Install the callbacks via the state machine and let the core invoke
    the callbacks on the already online CPUs.

    Signed-off-by: Richard Cochran
    Signed-off-by: Anna-Maria Gleixner
    Reviewed-by: Sebastian Andrzej Siewior
    Cc: Barry Song
    Cc: Daniel Lezcano
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: rt@linutronix.de
    Link: http://lkml.kernel.org/r/20160713153338.310333816@linutronix.de
    Signed-off-by: Ingo Molnar

    Richard Cochran
     
  • Install the callbacks via the state machine and let the core invoke
    the callbacks on the already online CPUs.

    Signed-off-by: Richard Cochran
    Signed-off-by: Anna-Maria Gleixner
    Reviewed-by: Sebastian Andrzej Siewior
    Cc: Daniel Lezcano
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: rt@linutronix.de
    Link: http://lkml.kernel.org/r/20160713153338.229913786@linutronix.de
    Signed-off-by: Ingo Molnar

    Richard Cochran
     
  • Install the callbacks via the state machine and let the core invoke
    the callbacks on the already online CPUs.

    Signed-off-by: Richard Cochran
    Signed-off-by: Anna-Maria Gleixner
    Reviewed-by: Sebastian Andrzej Siewior
    Cc: Daniel Lezcano
    Cc: Krzysztof Kozlowski
    Cc: Kukjin Kim
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: linux-samsung-soc@vger.kernel.org
    Cc: rt@linutronix.de
    Link: http://lkml.kernel.org/r/20160713153338.147940411@linutronix.de
    Signed-off-by: Ingo Molnar

    Richard Cochran
     
  • Install the callbacks via the state machine and let the core invoke
    the callbacks on the already online CPUs.

    Signed-off-by: Richard Cochran
    Signed-off-by: Anna-Maria Gleixner
    Reviewed-by: Sebastian Andrzej Siewior
    Cc: Daniel Lezcano
    Cc: Linus Torvalds
    Cc: Maxime Coquelin
    Cc: Patrice Chotard
    Cc: Peter Zijlstra
    Cc: Srinivas Kandagatla
    Cc: Thomas Gleixner
    Cc: kernel@stlinux.com
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: rt@linutronix.de
    Link: http://lkml.kernel.org/r/20160713153338.062741642@linutronix.de
    Signed-off-by: Ingo Molnar

    Richard Cochran
     
  • Install the callbacks via the state machine and let the core invoke
    the callbacks on the already online CPUs.

    Signed-off-by: Richard Cochran
    Signed-off-by: Anna-Maria Gleixner
    Reviewed-by: Sebastian Andrzej Siewior
    Cc: Daniel Lezcano
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: rt@linutronix.de
    Link: http://lkml.kernel.org/r/20160713153336.380737946@linutronix.de
    Signed-off-by: Ingo Molnar

    Richard Cochran
     
  • Install the callbacks via the state machine and let the core invoke
    the callbacks on the already online CPUs.

    Signed-off-by: Richard Cochran
    Signed-off-by: Anna-Maria Gleixner
    Reviewed-by: Sebastian Andrzej Siewior
    Cc: Daniel Lezcano
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: rt@linutronix.de
    Link: http://lkml.kernel.org/r/20160713153336.295486558@linutronix.de
    Signed-off-by: Ingo Molnar

    Richard Cochran
     
  • Install the callbacks via the state machine and let the core invoke
    the callbacks on the already online CPUs.

    Signed-off-by: Richard Cochran
    Signed-off-by: Anna-Maria Gleixner
    Reviewed-by: Sebastian Andrzej Siewior
    Cc: Daniel Lezcano
    Cc: James Hogan
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: linux-metag@vger.kernel.org
    Cc: rt@linutronix.de
    Link: http://lkml.kernel.org/r/20160713153336.215137642@linutronix.de
    Signed-off-by: Ingo Molnar

    Richard Cochran
     
  • Install the callbacks via the state machine and let the core invoke
    the callbacks on the already online CPUs.

    Signed-off-by: Richard Cochran
    Signed-off-by: Anna-Maria Gleixner
    Reviewed-by: Sebastian Andrzej Siewior
    Cc: Daniel Lezcano
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: rt@linutronix.de
    Link: http://lkml.kernel.org/r/20160713153336.130385842@linutronix.de
    Signed-off-by: Ingo Molnar

    Richard Cochran
     
  • Install the callbacks via the state machine and let the core invoke
    the callbacks on the already online CPUs.

    Signed-off-by: Richard Cochran
    Signed-off-by: Anna-Maria Gleixner
    Reviewed-by: Sebastian Andrzej Siewior
    Cc: Daniel Lezcano
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: rt@linutronix.de
    Link: http://lkml.kernel.org/r/20160713153336.048259040@linutronix.de
    Signed-off-by: Ingo Molnar

    Richard Cochran
     

12 Jul, 2016

1 commit

  • The failure check of armada_370_xp_timer_setup() in
    armada_370_xp_timer_common_init() is negated. This leads to an error message
    and exit in case of a successful initialization. Remove the stray '!'.

    Fixes: 12549e27c63c ("clocksource/drivers/time-armada-370-xp: Convert init function to return error")
    Signed-off-by: Anna-Maria Gleixner
    Cc: Daniel Lezcano
    Link: http://lkml.kernel.org/r/alpine.DEB.2.11.1607121731020.1344@hypnos.tec.linutronix.de
    Signed-off-by: Thomas Gleixner

    Anna-Maria Gleixner
     

07 Jul, 2016

1 commit


06 Jul, 2016

1 commit


28 Jun, 2016

25 commits

  • Disabling the eventstream can be useful for both remotely debugging a
    deployed production system and development of code using WFE-based
    polling loops. Whilst this can currently be controlled via a Kconfig
    option (CONFIG_ARM_ARCH_TIMER_EVTSTREAM), it's often desirable to toggle
    the feature on the command line, so this patch adds a new command-line
    option ("clocksource.arm_arch_timer.evtstrm") to do just that. The
    default behaviour is determined based on CONFIG_ARM_ARCH_TIMER_EVTSTREAM.

    Cc: Marc Zyngier
    Cc: Mark Rutland
    Signed-off-by: Will Deacon
    Signed-off-by: Daniel Lezcano

    Will Deacon
     
  • Change the Kconfig option logic to fullfil with the current approach,
    allowing the user to compile the driver on different platforms.

    The current option let the user to select the clocksource or not.

    The Kconfig option policy is to let the platform to select the
    timer automatically.

    Add the COMPILE_TEST option, so the prompt to select the driver will
    be showed only when COMPILE_TEST is set and will let this driver
    to compile on different platform, thus increasing the compilation
    test coverage.

    Signed-off-by: Daniel Lezcano

    Daniel Lezcano
     
  • Change the Kconfig option logic to fullfil with the current approach,
    allowing the user to compile the driver on different platforms.

    Signed-off-by: Daniel Lezcano

    Daniel Lezcano
     
  • Change the Kconfig option logic to fullfil with the current approach,
    allowing the user to compile the driver on different platforms.

    Signed-off-by: Daniel Lezcano

    Daniel Lezcano
     
  • Change the Kconfig option logic to fullfil with the current approach.

    A new Kconfig option is added, CONFIG_INTEGRATOR_AP_TIMER and is selected
    by the platform. Then the clocksource's Kconfig is changed to make this
    option selectable by the user if the COMPILE_TEST option is set. Otherwise,
    it is up to the platform's Kconfig to select the timer.

    Signed-off-by: Daniel Lezcano

    Daniel Lezcano
     
  • Change the Kconfig option logic to fullfil with the current approach.

    A new Kconfig option is added, CONFIG_KEYSTONE_TIMER and is selected by the
    platform. Then the clocksource's Kconfig is changed to make this option
    selectable by the user if the COMPILE_TEST option is set. Otherwise, it is
    up to the platform's Kconfig to select the timer.

    Signed-off-by: Daniel Lezcano

    Daniel Lezcano
     
  • Change the Kconfig option logic to fullfil with the current approach.

    A new Kconfig option is added, CONFIG_NSPIRE_TIMER and is selected by the
    platform. Then the clocksource's Kconfig is changed to make this option
    selectable by the user if the COMPILE_TEST option is set. Otherwise, it is
    up to the platform's Kconfig to select the timer.

    Signed-off-by: Daniel Lezcano

    Daniel Lezcano
     
  • Change the Kconfig option logic to fullfil with the current approach.

    A new Kconfig option is added, CONFIG_U300_TIMER and is selected by the
    platform. Then the clocksource's Kconfig is changed to make this option
    selectable by the user if the COMPILE_TEST option is set. Otherwise, it is
    up to the platform's Kconfig to select the timer.

    Due on the delay specific code, this driver will compile only on the ARM
    architecture.

    Signed-off-by: Daniel Lezcano

    Daniel Lezcano
     
  • Change the Kconfig option logic to fullfil with the current approach.

    A new Kconfig option is added, CONFIG_PRIMA2_TIMER and is selected by the
    platform. Then the clocksource's Kconfig is changed to make this option
    selectable by the user if the COMPILE_TEST option is set. Otherwise, it is
    up to the platform's Kconfig to select the timer.

    Signed-off-by: Daniel Lezcano

    Daniel Lezcano
     
  • The driver includes the header but it is pointless.

    Remove it.

    Signed-off-by: Daniel Lezcano

    Daniel Lezcano
     
  • Change the Kconfig option logic to fullfil with the current approach.

    A new Kconfig option is added, CONFIG_MXS_TIMER and is selected by the
    platform. Then the clocksource's Kconfig is changed to make this option
    selectable by the user if the COMPILE_TEST option is set. Otherwise, it is
    up to the platform's Kconfig to select the timer.

    Signed-off-by: Daniel Lezcano

    Daniel Lezcano
     
  • The driver includes the header but it is pointless.

    Remove it.

    Signed-off-by: Daniel Lezcano

    Daniel Lezcano
     
  • Change the Kconfig option logic to fullfil with the current approach.

    A new Kconfig option is added, CONFIG_MOXART_TIMER and is selected by the
    platform. Then the clocksource's Kconfig is changed to make this option
    selectable by the user if the COMPILE_TEST option is set. Otherwise, it is
    up to the platform's Kconfig to select the timer.

    Signed-off-by: Daniel Lezcano

    Daniel Lezcano
     
  • Change the Kconfig option logic to fullfil with the current approach.

    A new Kconfig option is added, CONFIG_ATLAS7_TIMER and is selected by the
    platform. Then the clocksource's Kconfig is changed to make this option
    selectable by the user if the COMPILE_TEST option is set. Otherwise, it is
    up to the platform's Kconfig to select the timer.

    Signed-off-by: Daniel Lezcano

    Daniel Lezcano
     
  • Change the Kconfig option logic to fullfil with the current approach.

    A new Kconfig option is added, CONFIG_CLPS711X_TIMER and is selected by the
    platform. Then the clocksource's Kconfig is changed to make this option
    selectable by the user if the COMPILE_TEST option is set. Otherwise, it is
    up to the platform's Kconfig to select the timer.

    Signed-off-by: Daniel Lezcano

    Daniel Lezcano
     
  • Change the Kconfig option logic to fullfil with the current approach.

    A new Kconfig option is added, CONFIG_BCM_KONA_TIMER and is selected by the
    platform. Then the clocksource's Kconfig is changed to make this option
    selectable by the user if the COMPILE_TEST option is set. Otherwise, it is
    up to the platform's Kconfig to select the timer.

    Signed-off-by: Daniel Lezcano

    Daniel Lezcano
     
  • In order to increase the compilation test coverage, add the COMPILE_TEST
    so the driver can be compiled even if it does not belong to the platform
    or the architecture.

    The io.h header inclusion is also added as it the driver does not compile
    on UM platform.

    Signed-off-by: Daniel Lezcano

    Daniel Lezcano
     
  • Change the Kconfig option logic to fullfil with the current approach.

    A new Kconfig option is added, CONFIG_BCM2835_TIMER and is selected by the
    platform. Then the clocksource's Kconfig is changed to make this option
    selectable by the user if the COMPILE_TEST option is set. Otherwise, it
    is up to the platform's Kconfig to select the timer.

    Signed-off-by: Daniel Lezcano

    Daniel Lezcano
     
  • The driver includes the header but it is pointless.

    Remove it.

    Signed-off-by: Daniel Lezcano

    Daniel Lezcano
     
  • All the clocksource drivers's init function are now converted to return
    an error code. CLOCKSOURCE_OF_DECLARE is no longer used as well as the
    clksrc-of table.

    Let's convert back the names:
    - CLOCKSOURCE_OF_DECLARE_RET => CLOCKSOURCE_OF_DECLARE
    - clksrc-of-ret => clksrc-of

    Signed-off-by: Daniel Lezcano

    For exynos_mct and samsung_pwm_timer:
    Acked-by: Krzysztof Kozlowski

    For arch/arc:
    Acked-by: Vineet Gupta

    For mediatek driver:
    Acked-by: Matthias Brugger

    For the Rockchip-part
    Acked-by: Heiko Stuebner

    For STi :
    Acked-by: Patrice Chotard

    For the mps2-timer.c and versatile.c changes:
    Acked-by: Liviu Dudau

    For the OXNAS part :
    Acked-by: Neil Armstrong

    For LPC32xx driver:
    Acked-by: Sylvain Lemieux

    For Broadcom Kona timer change:
    Acked-by: Ray Jui

    For Sun4i and Sun5i:
    Acked-by: Chen-Yu Tsai

    For Meson6:
    Acked-by: Carlo Caione

    For Keystone:
    Acked-by: Santosh Shilimkar

    For NPS:
    Acked-by: Noam Camus

    For bcm2835:
    Acked-by: Eric Anholt

    Daniel Lezcano
     
  • The init functions do not return any error. They behave as the following:

    - panic, thus leading to a kernel crash while another timer may work and
    make the system boot up correctly

    or

    - print an error and let the caller unaware if the state of the system

    Change that by converting the init functions to return an error conforming
    to the CLOCKSOURCE_OF_RET prototype.

    Proper error handling (rollback, errno value) will be changed later case
    by case, thus this change just return back an error or success in the init
    function.

    Signed-off-by: Daniel Lezcano
    Acked-by: Neil Armstrong

    Daniel Lezcano
     
  • The init functions do not return any error. They behave as the following:

    - panic, thus leading to a kernel crash while another timer may work and
    make the system boot up correctly

    or

    - print an error and let the caller unaware if the state of the system

    Change that by converting the init functions to return an error conforming
    to the CLOCKSOURCE_OF_RET prototype.

    Proper error handling (rollback, errno value) will be changed later case
    by case, thus this change just return back an error or success in the init
    function.

    Signed-off-by: Daniel Lezcano
    Signed-off-by: Arnd Bergmann

    Daniel Lezcano
     
  • The init functions do not return any error. They behave as the following:

    - panic, thus leading to a kernel crash while another timer may work and
    make the system boot up correctly

    or

    - print an error and let the caller unaware if the state of the system

    Change that by converting the init functions to return an error conforming
    to the CLOCKSOURCE_OF_RET prototype.

    Proper error handling (rollback, errno value) will be changed later case
    by case, thus this change just return back an error or success in the init
    function.

    Signed-off-by: Daniel Lezcano

    Daniel Lezcano
     
  • The init functions do not return any error. They behave as the following:

    - panic, thus leading to a kernel crash while another timer may work and
    make the system boot up correctly

    or

    - print an error and let the caller unaware if the state of the system

    Change that by converting the init functions to return an error conforming
    to the CLOCKSOURCE_OF_RET prototype.

    Proper error handling (rollback, errno value) will be changed later case
    by case, thus this change just return back an error or success in the init
    function.

    Signed-off-by: Daniel Lezcano

    Daniel Lezcano
     
  • The init functions do not return any error. They behave as the following:

    - panic, thus leading to a kernel crash while another timer may work and
    make the system boot up correctly

    or

    - print an error and let the caller unaware if the state of the system

    Change that by converting the init functions to return an error conforming
    to the CLOCKSOURCE_OF_RET prototype.

    Proper error handling (rollback, errno value) will be changed later case
    by case, thus this change just return back an error or success in the init
    function.

    Signed-off-by: Daniel Lezcano

    Daniel Lezcano