1. Mar 27, 2018
  2. Mar 20, 2018
  3. Mar 19, 2018
  4. Mar 15, 2018
  5. Mar 13, 2018
    • Arnd Bergmann's avatar
      cpufreq: scmi: add thermal dependency · 697a3a87
      Arnd Bergmann authored
      
      
      A built-in scmi cpufreq driver cannot link against a modular
      thermal framework:
      
      drivers/cpufreq/scmi-cpufreq.o: In function `scmi_cpufreq_ready':
      scmi-cpufreq.c:(.text+0x40): undefined reference to `of_cpufreq_cooling_register'
      drivers/cpufreq/scmi-cpufreq.o: In function `scmi_cpufreq_exit':
      scmi-cpufreq.c:(.text+0x88): undefined reference to `cpufreq_cooling_unregister'
      
      This adds a Kconfig dependency that makes sure this configuration
      is not possible, while allowing all configurations that can work.
      Note that disabling CPU_THERMAL means we don't care about the
      THERMAL dependency.
      
      Acked-by: default avatarSudeep Holla <sudeep.holla@arm.com>
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      697a3a87
  6. Mar 12, 2018
  7. Mar 09, 2018
  8. Mar 08, 2018
  9. Mar 07, 2018
    • Arnd Bergmann's avatar
      Merge tag 'samsung-drivers-4.17' of... · 49774d86
      Arnd Bergmann authored
      Merge tag 'samsung-drivers-4.17' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/krzk/linux into next/drivers
      
      Pull "Samsung soc drivers changes for v4.17" from Krzysztof Kozłowski:
      
      1. Add SPDX license identifiers.
      2. Populate children syscon nodes in PMU driver to properly model HW in
         DeviceTree.
      
      * tag 'samsung-drivers-4.17' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/krzk/linux:
        soc: samsung: pmu: Populate children syscon nodes
        soc: samsung: Add SPDX license identifiers to headers
        memory: samsung: Add SPDX license identifiers
      49774d86
    • Arnd Bergmann's avatar
      Merge tag 'tee-drv-misc-for-v4.17' of... · a7e66ff9
      Arnd Bergmann authored
      Merge tag 'tee-drv-misc-for-v4.17' of https://git.linaro.org:/people/jens.wiklander/linux-tee into next/drivers
      
      Pull "Small fix and report OP-TEE revision information" from Jens Wiklander:
      
      * Adds one small fix correct max value of privileged device id allocation,
        this is only needed if there's more than TEE_NUM_DEVICES / 2 (16) tee
        drivers registered. One or two is a normal value.
      * Reports OP-TEE revision information (major, minro version and build id
        if available)
      
      * tag 'tee-drv-misc-for-v4.17' of https://git.linaro.org:/people/jens.wiklander/linux-tee:
        tee: optee: report OP-TEE revision information
        tee: optee: GET_OS_REVISION: document a2 as a build identifier
        tee: correct max value for id allocation
      a7e66ff9
    • Arnd Bergmann's avatar
      Merge tag 'soc_drivers_for_4.17' of... · aa8f21a8
      Arnd Bergmann authored
      Merge tag 'soc_drivers_for_4.17' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/ssantosh/linux-keystone into next/drivers
      
      Pull "SOC driver changes for v4.17" from Santosh Shilimkar:
      
       - Remove redundant dev_err from probe in ti-emif-srma driver
       - Make use of seq_putc in emif reg show
      
      * tag 'soc_drivers_for_4.17' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/ssantosh/linux-keystone:
        memory: ti-emif-sram: remove redundant dev_err call in ti_emif_probe()
        memory-EMIF: Use seq_putc() in emif_regdump_show()
      aa8f21a8
    • Arnd Bergmann's avatar
      Merge tag 'scmi-updates-4.17' of... · f46f11dc
      Arnd Bergmann authored
      Merge tag 'scmi-updates-4.17' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux into next/drivers
      
      Pull "ARM SCMI support for v4.17" from Sudeep Holla:
      
      ARM System Control and Management Interface(SCMI)[1] is more flexible and
      easily extensible than any of the existing interfaces.
      
      Few existing as well as future ARM platforms provide micro-controllers
      to abstract various power and other system management tasks which have
      similar interfaces, both in terms of the functions that are provided by
      them, and in terms of how requests are communicated to them.
      
      There are quite a few protocols like ARM SCPI, TI SCI, QCOM RPM, Nvidia Tegra
      BPMP, and so on already. This specification is to standardize and avoid any
      further fragmentation in the design of such interface by various vendors.
      
      The current SCMI driver implementation is very basic and initial support.
      It lacks support for notifications, asynchronous/delayed response, perf/power
      statistics region and sensor register region.
      
      Mailbox is the only form of transport supported currently in the driver.
      SCMI supports interrupt based mailbox communication, where, on completion
      of the processing of a message, the caller receives an interrupt as well as
      polling for completion.
      
      SCMI is designed to minimize the dependency on the mailbox/transport
      hardware. So in terms of SCMI, each channel in the mailbox includes
      memory area, doorbell and completion interrupt.
      
      However the doorbell and completion interrupt is highly mailbox dependent
      which was bit of controversial as part of SCMI/mailbox discussions.
      
      Arnd and me discussed about the few aspects of SCMI and the mailbox framework:
      
      1. Use of mailbox framework for doorbell type mailbox controller:
         - Such hardware may not require any data to be sent to signal the remote
           about the presence of a message. The channel will have in-built
           information on how to trigger the signal to the remote.
           There are few mailbox controller drivers which are purely doorbell based.
           e.g.QCOM IPC, STM, Tegra, ACPI PCC,..etc
      
      2. Supporting other mailbox controller:
         - SCMI just needs a mechanism to signal the remote firmware. Such
           controller may need fixed message to be sent to trigger a doorbell.
           In such case we may need to get that data from DT and pass the same
           to the controller. It's not covered in the current DT binding, but
           can be extended as optional property in future.
      
           However handling notifications may be interesting on such mailbox, but
           again there is no way to interpret what the data field(remote message)
           means, it could be a bit mask or a number or don't-care.
      
      Arnd mentioned that he doesn't like the way the mailbox binding deals
      with doorbell-type hardware, but we do have quite a few precedent drivers
      already and changing the binding to add a data field would not make it any
      better, but could cause other problems. So he is happy with the status quo
      of SCMI implementation.
      
      [1] http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.den0056a/index.html
      
      * tag 'scmi-updates-4.17' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux:
        cpufreq: scmi: add support for fast frequency switching
        cpufreq: add support for CPU DVFS based on SCMI message protocol
        hwmon: add support for sensors exported via ARM SCMI
        hwmon: (core) Add hwmon_max to hwmon_sensor_types enumeration
        clk: add support for clocks provided by SCMI
        firmware: arm_scmi: add device power domain support using genpd
        firmware: arm_scmi: add per-protocol channels support using idr objects
        firmware: arm_scmi: refactor in preparation to support per-protocol channels
        firmware: arm_scmi: add option for polling based performance domain operations
        firmware: arm_scmi: add support for polling based SCMI transfers
        firmware: arm_scmi: probe and initialise all the supported protocols
        firmware: arm_scmi: add initial support for sensor protocol
        firmware: arm_scmi: add initial support for power protocol
        firmware: arm_scmi: add initial support for clock protocol
        firmware: arm_scmi: add initial support for performance protocol
        firmware: arm_scmi: add scmi protocol bus to enumerate protocol devices
        firmware: arm_scmi: add common infrastructure and support for base protocol
        firmware: arm_scmi: add basic driver infrastructure for SCMI
        dt-bindings: arm: add support for ARM System Control and Management Interface(SCMI) protocol
        dt-bindings: mailbox: add support for mailbox client shared memory
      f46f11dc
    • Arnd Bergmann's avatar
      Merge tag 'scpi-updates-4.17' of... · 819d38e9
      Arnd Bergmann authored
      Merge tag 'scpi-updates-4.17' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux into next/drivers
      
      Pull "ARM SCPI updates/cleanups for v4.17" from Sudeep Holla:
      
      1. Fixes to get rid of sparse warnings
      2. Use of FIELD_GET and GENMASK for better subfields handling
      3. Make mbox_free_channels device-managed helping in removing unnecessary code
      4. Various other cleanups to simplify and improve code readability
      
      Note that similar set of changes were merged in v4.15, however got reverted
      through the commit 81faa556 ("firmware: arm_scpi: Revert updates made
      during v4.15 merge window") for reasons mentioned in that commit.
      
      This is the resend with the culprit patch removed. Kevin Hilman tested this
      series on Amlogic and reported it to be fine.
      
      * tag 'scpi-updates-4.17' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux:
        firmware: arm_scpi: improve info message for pre-1.0 firmware
        firmware: arm_scpi: use FIELD_GET/_PREP to simplify macro definitions
        firmware: arm_scpi: remove struct sensor_capabilities
        firmware: arm_scpi: fix incorrect __iomem accesses using correct accessors
        firmware: arm_scpi: remove all single element structures
        firmware: arm_scpi: drop unnecessary type cast to scpi_shared_mem
        firmware: arm_scpi: improve struct sensor_value
        firmware: arm_scpi: improve handling of protocol and firmware version subfields
        firmware: arm_scpi: improve struct dvfs_info to make code better readable
        firmware: arm_scpi: make scpi_probe completely device-managed
        firmware: arm_scpi: make freeing mbox channels device-managed
        firmware: arm_scpi: remove two unneeded devm_kfree's in scpi_remove
      819d38e9
    • Arnd Bergmann's avatar
      Merge tag 'reset-for-4.17' of git://git.pengutronix.de/git/pza/linux into next/drivers · e107f4bb
      Arnd Bergmann authored
      Pull "Reset controller changes for v4.17" from Philipp Zabel:
      
      This enables level resets on Meson8b SoCs. Level resets have been
      previously implemented for the newer Meson GX SoCs, so this removes
      the distinction between the two families in the meson-reset driver.
      
      Also enables the ASPEED LPC reset controller on ASPEED AST2400 and
      AST2500 SoCs, by adding compatibles to the simple-reset driver.
      
      * tag 'reset-for-4.17' of git://git.pengutronix.de/git/pza/linux:
        reset: simple: Enable for ASPEED systems
        dt-bindings: aspeed-lpc: Add reset controller
        reset: meson: enable level reset support on Meson8b
      e107f4bb
    • Robin Murphy's avatar
      perf/arm-cci: Untangle global cci_ctrl_base · e9c112c9
      Robin Murphy authored
      
      
      Depending directly on the bus driver's global cci_ctrl_base variable
      is a little unpleasant, and exporting it to allow the PMU driver to
      be modular would be even more so. Let's make things a little better
      abstracted by adding the control register block to the cci_pmu instance
      data alongside the PMU register block, and communicating the mapped
      address from the bus driver via platform data.
      
      It's not practical to try the same thing for the bus driver itself,
      given that the globals are entangled with the hairy assembly code for
      port control, so we leave them be there. It would however be prudent
      to move them to the __ro_after_init section in passing, since the
      addresses really should never be changing once set.
      
      Signed-off-by: default avatarRobin Murphy <robin.murphy@arm.com>
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      e9c112c9
    • Robin Murphy's avatar
      perf/arm-cci: Clean up model discovery · 32837954
      Robin Murphy authored
      
      
      Since I am the self-appointed of_device_get_match_data() police, it's
      only right that I should clean up this driver while I'm otherwise
      touching it. This also reveals that we're passing around a struct
      platform_device in places where we only ever care about its regular
      device, so straighten that out in the process.
      
      Acked-by: default avatarPunit Agrawal <punit.agrawal@arm.com>
      Acked-by: default avatarWill Deacon <will.deacon@arm.com>
      Signed-off-by: default avatarRobin Murphy <robin.murphy@arm.com>
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      32837954
    • Robin Murphy's avatar
      bus/arm-cci: Streamline devicetree handling a bit · 3ee5e821
      Robin Murphy authored
      
      
      Rather than iterating over child nodes explicitly testing for
      availability, we can just use the other helper which already subsumes
      that check. Also, the availability check is already NULL-safe, so get
      rid of a redundant check in cci_probe(), too.
      
      Acked-by: default avatarPunit Agrawal <punit.agrawal@arm.com>
      Acked-by: default avatarWill Deacon <will.deacon@arm.com>
      Signed-off-by: default avatarRobin Murphy <robin.murphy@arm.com>
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      3ee5e821
    • Robin Murphy's avatar
      perf/arm-cci: Simplify CPU hotplug · 03057f26
      Robin Murphy authored
      
      
      Realistically, systems with multiple CCIs are unlikely to ever exist,
      and since the driver only actually supports a single instance anyway
      there's really no need to do the multi-instance hotplug state dance.
      
      Take the opportunity to simplify the hotplug-related code all over,
      addressing the context-migration TODO in the process for good measure.
      
      Acked-by: default avatarPunit Agrawal <punit.agrawal@arm.com>
      Acked-by: default avatarWill Deacon <will.deacon@arm.com>
      Signed-off-by: default avatarRobin Murphy <robin.murphy@arm.com>
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      03057f26
    • Robin Murphy's avatar
      drivers/bus: Split Arm CCI driver · 3de6be7a
      Robin Murphy authored
      
      
      The arm-cci driver is really two entirely separate drivers; one for MCPM
      port control and the other for the performance monitors. Since they are
      already relatively self-contained, let's take the plunge and move the
      PMU parts out to drivers/perf where they belong these days. For non-MCPM
      systems this leaves a small dependency on the remaining "bus" stub for
      initial probing and discovery, but we end up with something that still
      fits the general pattern of its fellow system PMU drivers to ease future
      maintenance.
      
      Moving code to a new file also offers a perfect excuse to modernise the
      license/copyright headers and clean up some funky linewraps on the way.
      
      Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      Reviewed-by: default avatarSuzuki Poulose <suzuki.poulose@arm.com>
      Acked-by: default avatarPunit Agrawal <punit.agrawal@arm.com>
      Signed-off-by: default avatarRobin Murphy <robin.murphy@arm.com>
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      3de6be7a
    • Robin Murphy's avatar
      drivers/bus: Move Arm CCN PMU driver · 1888d3dd
      Robin Murphy authored
      
      
      The arm-ccn driver is purely a perf driver for the CCN PMU, not a bus
      driver in the sense of the other residents of drivers/bus/, so let's
      move it to the appropriate place for SoC PMU drivers. Not to mention
      moving the documentation accordingly as well.
      
      Acked-by: default avatarPawel Moll <pawel.moll@arm.com>
      Acked-by: default avatarWill Deacon <will.deacon@arm.com>
      Signed-off-by: default avatarRobin Murphy <robin.murphy@arm.com>
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      1888d3dd
  10. Mar 06, 2018
  11. Mar 05, 2018