lkml.org 
[lkml]   [2019]   [Jul]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Subject[RFC PATCH 00/11] Simple QoS for exynos-bus driver using interconnect
    Date
    The following patchset adds interconnect[1][2] framework support to the
    exynos-bus devfreq driver. Extending the devfreq driver with interconnect
    capabilities started as a response to the issue referenced in [3]. The
    patches can be subdivided into four logical groups:

    (a) Refactoring the existing devfreq driver in order to improve readability
    and accommodate for adding new code (patches 01--04/11).

    (b) Tweaking the interconnect framework to support the exynos-bus use case
    (patches 05--07/11). Exporting of_icc_get_from_provider() allows us to
    avoid hardcoding every single graph edge in the DT or driver source, and
    relaxing the requirement contained in that function removes the need to
    provide dummy node IDs in the DT. Adjusting the logic in
    apply_constraints() (drivers/interconnect/core.c) accounts for the fact
    that every bus is a separate entity and therefore a separate interconnect
    provider, albeit constituting a part of a larger hierarchy.

    (c) Implementing interconnect providers in the exynos-bus devfreq driver
    and adding required DT properties for one selected platform, namely
    Exynos4412 (patches 08--09/11). Due to the fact that this aims to be a
    generic driver for various Exynos SoCs, node IDs are generated dynamically
    rather than hardcoded. This has been determined to be a simpler approach,
    but depends on changes described in (b).

    (d) Implementing a sample interconnect consumer for exynos-mixer targeted
    at the issue referenced in [3], again with DT info only for Exynos4412
    (patches 10--11/11).

    Integration of devfreq and interconnect functionalities comes down to one
    extra line in the devfreq target() callback, which selects either the
    frequency calculated by the devfreq governor, or the one requested with the
    interconnect API, whichever is higher. All new code works equally well when
    CONFIG_INTERCONNECT is 'n' (as in exynos_defconfig) in which case all
    interconnect API functions are no-ops.

    ---
    Artur Świgoń
    Samsung R&D Institute Poland
    Samsung Electronics

    ---
    References:
    [1] Documentation/interconnect/interconnect.rst
    [2] Documentation/devicetree/bindings/interconnect/interconnect.txt
    [3] https://patchwork.kernel.org/patch/10861757

    Artur Świgoń (10):
    devfreq: exynos-bus: Extract exynos_bus_profile_init()
    devfreq: exynos-bus: Extract exynos_bus_profile_init_passive()
    devfreq: exynos-bus: Change goto-based logic to if-else logic
    devfreq: exynos-bus: Clean up code
    icc: Export of_icc_get_from_provider()
    icc: Relax requirement in of_icc_get_from_provider()
    icc: Relax condition in apply_constraints()
    arm: dts: exynos: Add parents and #interconnect-cells to Exynos4412
    devfreq: exynos-bus: Add interconnect functionality to exynos-bus
    arm: dts: exynos: Add interconnects to Exynos4412 mixer

    Marek Szyprowski (1):
    drm: exynos: mixer: Add interconnect support

    .../boot/dts/exynos4412-odroid-common.dtsi | 1 +
    arch/arm/boot/dts/exynos4412.dtsi | 10 +
    drivers/devfreq/exynos-bus.c | 296 ++++++++++++++----
    drivers/gpu/drm/exynos/exynos_mixer.c | 68 +++-
    drivers/interconnect/core.c | 12 +-
    include/linux/interconnect-provider.h | 6 +
    6 files changed, 314 insertions(+), 79 deletions(-)

    --
    2.17.1

    \
     
     \ /
      Last update: 2019-07-23 14:21    [W:4.353 / U:0.056 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site