dri-devel.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
From: Sylwester Nawrocki <s.nawrocki@samsung.com>
To: georgi.djakov@linaro.org, cw00.choi@samsung.com, krzk@kernel.org
Cc: linux-samsung-soc@vger.kernel.org, b.zolnierkie@samsung.com,
	sw0312.kim@samsung.com, a.swigon@samsung.com,
	dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org,
	myungjoo.ham@samsung.com, s.nawrocki@samsung.com,
	linux-arm-kernel@lists.infradead.org, m.szyprowski@samsung.com
Subject: [RFC PATCH v5 0/6] Exynos: Simple QoS for exynos-bus using interconnect
Date: Fri, 29 May 2020 18:31:54 +0200	[thread overview]
Message-ID: <20200529163200.18031-1-s.nawrocki@samsung.com> (raw)
In-Reply-To: CGME20200529163213eucas1p1ac148f9238214ac84f3d0cc199c4398b@eucas1p1.samsung.com

This patchset adds interconnect API support for the Exynos SoC "samsung,
exynos-bus" compatible devices, which already have their corresponding 
exynos-bus driver in the devfreq subsystem.  Complementing the devfreq driver 
with an interconnect functionality allows to ensure the QoS requirements 
of devices accessing the system memory (e.g. video processing devices) 
are fulfilled and to avoid issues like the one discussed in thread [1].

This patch series depends on 3 patches from Artur for the interconnect API 
[2], which introduce following changes:

 - exporting of_icc_get_from_provider() to avoid hard coding every graph 
   edge in the DT or driver source,
 - relaxing the requirement on #interconnect-cells, so there is no need 
   to provide dummy node IDs in the DT, 
 - adding new field in struct icc_provider to explicitly allow configuring 
   node pairs from two different providers.

This series adds implementation of interconnect provider per each "samsung,
exynos-bus" compatible DT node, with one interconnect node per provider.
The interconnect code which was previously added as a part of the devfreq
driver has been converted to a separate platform driver.  In the devfreq 
a corresponding virtual child platform device is registered.  Integration 
of devfreq and interconnect frameworks is achieved through the PM QoS API.

A sample interconnect consumer for exynos-mixer is added in patches 5/6, 
6/6, it is currently added only for exynos4412 and allows to address the 
mixer DMA underrun error issues [1].

The series has been tested on Odroid U3 board. It is based on icc-next 
branch with devfreq-next branch merged and patches [2] applied.

--
Regards,
Sylwester

--
Changes since v3 [3] (v4 skipped to align with patchset [1]), detailed 
changes are listed at each patch:
 - conversion to a separate interconnect (platform) driver,
 - an update of the DT binding documenting new optional properties:
   #interconnect-cells, samsung,interconnect-parent in "samsung,exynos-bus"
   nodes,
 - new DT properties added to the SoC, rather than to the board specific 
   files.

Changes since v2 [5]:
 - Use icc_std_aggregate().
 - Implement a different modification of apply_constraints() in
   drivers/interconnect/core.c (patch 03).
 - Use 'exynos,interconnect-parent-node' in the DT instead of
   'devfreq'/'parent', depending on the bus.
 - Rebase on DT patches that deprecate the 'devfreq' DT property.
 - Improve error handling, including freeing generated IDs on failure.
 - Remove exynos_bus_icc_connect() and add exynos_bus_icc_get_parent().

Changes since v1 [4]:
 - Rebase on coupled regulators patches.
 - Use dev_pm_qos_*() API instead of overriding frequency in
   exynos_bus_target().
 - Use IDR for node ID allocation.
 - Reverse order of multiplication and division in
   mixer_set_memory_bandwidth() (patch 07) to avoid integer overflow.


References:
[1] https://patchwork.kernel.org/patch/10861757/ (original issue)
[2] https://www.spinics.net/lists/linux-samsung-soc/msg70014.html
[3] https://lore.kernel.org/linux-pm/20191220115653.6487-1-a.swigon@samsung.com
[4] https://patchwork.kernel.org/cover/11054417/ (v1 of this RFC)
[5] https://patchwork.kernel.org/cover/11152595/ (v2 of this RFC)


Artur Świgoń (1):
  ARM: dts: exynos: Add interconnects to Exynos4412 mixer

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

Sylwester Nawrocki (4):
  dt-bindings: exynos-bus: Add documentation for interconnect properties
  interconnect: Add generic interconnect driver for Exynos SoCs
  PM / devfreq: exynos-bus: Add registration of interconnect child
    device
  ARM: dts: exynos: Add interconnect properties to Exynos4412 bus nodes

 .../devicetree/bindings/devfreq/exynos-bus.txt     |  15 +-
 arch/arm/boot/dts/exynos4412.dtsi                  |   6 +
 drivers/devfreq/exynos-bus.c                       |  17 ++
 drivers/gpu/drm/exynos/exynos_mixer.c              |  73 +++++++-
 drivers/interconnect/Kconfig                       |   1 +
 drivers/interconnect/Makefile                      |   1 +
 drivers/interconnect/exynos/Kconfig                |   6 +
 drivers/interconnect/exynos/Makefile               |   4 +
 drivers/interconnect/exynos/exynos.c               | 185 +++++++++++++++++++++
 9 files changed, 301 insertions(+), 7 deletions(-)
 create mode 100644 drivers/interconnect/exynos/Kconfig
 create mode 100644 drivers/interconnect/exynos/Makefile
 create mode 100644 drivers/interconnect/exynos/exynos.c

-- 
2.7.4

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

       reply	other threads:[~2020-05-29 16:32 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CGME20200529163213eucas1p1ac148f9238214ac84f3d0cc199c4398b@eucas1p1.samsung.com>
2020-05-29 16:31 ` Sylwester Nawrocki [this message]
     [not found]   ` <CGME20200529163219eucas1p2d127fe3936921f53f6fe7902e7d14a3e@eucas1p2.samsung.com>
2020-05-29 16:31     ` [RFC PATCH v5 1/6] dt-bindings: exynos-bus: Add documentation for interconnect properties Sylwester Nawrocki
2020-05-31  0:01       ` Chanwoo Choi
2020-06-01  9:40         ` Sylwester Nawrocki
2020-06-01  8:19       ` Sylwester Nawrocki
2020-06-02  8:05       ` Krzysztof Kozlowski
     [not found]   ` <CGME20200529163223eucas1p2f663280abb499b4114b2f2930b43a4e5@eucas1p2.samsung.com>
2020-05-29 16:31     ` [RFC PATCH v5 2/6] interconnect: Add generic interconnect driver for Exynos SoCs Sylwester Nawrocki
2020-05-31  0:13       ` Chanwoo Choi
2020-06-01  9:57         ` Sylwester Nawrocki
2020-06-02  8:21       ` Krzysztof Kozlowski
2020-06-03  9:24         ` Sylwester Nawrocki
2020-07-01 12:50       ` Georgi Djakov
2020-07-02 12:01         ` Sylwester Nawrocki
2020-07-02 12:33           ` Georgi Djakov
2020-07-02 14:24             ` Sylwester Nawrocki
     [not found]   ` <CGME20200529163225eucas1p1cfb2233c869dcc3dab84b754bbce17b6@eucas1p1.samsung.com>
2020-05-29 16:31     ` [RFC PATCH v5 3/6] PM / devfreq: exynos-bus: Add registration of interconnect child device Sylwester Nawrocki
2020-05-30 23:57       ` Chanwoo Choi
2020-06-01 10:04         ` Sylwester Nawrocki
2020-06-02  0:50           ` Chanwoo Choi
     [not found]   ` <CGME20200529163226eucas1p15bea74bed9cc5d22727c9ba732a5cbb9@eucas1p1.samsung.com>
2020-05-29 16:31     ` [RFC PATCH v5 4/6] ARM: dts: exynos: Add interconnect properties to Exynos4412 bus nodes Sylwester Nawrocki
2020-05-31  0:02       ` Chanwoo Choi
     [not found]   ` <CGME20200529163228eucas1p1d05340fef9ffc724f5d3d9f5709a600f@eucas1p1.samsung.com>
2020-05-29 16:31     ` [RFC PATCH v5 5/6] ARM: dts: exynos: Add interconnects to Exynos4412 mixer Sylwester Nawrocki
2020-05-31  0:07       ` Chanwoo Choi
     [not found]   ` <CGME20200529163229eucas1p2ee6394f184e5eba12599559f8a621fde@eucas1p2.samsung.com>
2020-05-29 16:32     ` [RFC PATCH v5 6/6] drm: exynos: mixer: Add interconnect support Sylwester Nawrocki
2020-06-01  7:58       ` Chanwoo Choi
2020-06-03 10:04         ` Sylwester Nawrocki
2020-06-01  8:17   ` [RFC PATCH v5 0/6] Exynos: Simple QoS for exynos-bus using interconnect Sylwester Nawrocki

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200529163200.18031-1-s.nawrocki@samsung.com \
    --to=s.nawrocki@samsung.com \
    --cc=a.swigon@samsung.com \
    --cc=b.zolnierkie@samsung.com \
    --cc=cw00.choi@samsung.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=georgi.djakov@linaro.org \
    --cc=krzk@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=m.szyprowski@samsung.com \
    --cc=myungjoo.ham@samsung.com \
    --cc=sw0312.kim@samsung.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).