From: "Artur Świgoń" <a.swigon@samsung.com> To: devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, dri-devel@lists.freedesktop.org Cc: "Artur Świgoń" <a.swigon@samsung.com>, cw00.choi@samsung.com, myungjoo.ham@samsung.com, inki.dae@samsung.com, sw0312.kim@samsung.com, georgi.djakov@linaro.org, leonard.crestez@nxp.com, m.szyprowski@samsung.com, b.zolnierkie@samsung.com, krzk@kernel.org Subject: [RFC PATCH v2 00/11] Simple QoS for exynos-bus driver using interconnect Date: Thu, 19 Sep 2019 16:22:25 +0200 [thread overview] Message-ID: <20190919142236.4071-1-a.swigon@samsung.com> (raw) In-Reply-To: CGME20190919142321eucas1p164c2591ad402427cb71fd00c348a29ec@eucas1p1.samsung.com 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 is achieved by using dev_pm_qos_*() API[5]. 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. This patchset depends on [5]. --- Changes since v1 [6]: * Rebase on [4] (coupled regulators). * Rebase on [5] (dev_pm_qos for devfreq). * Use dev_pm_qos_*() API[5] instead of overriding frequency in exynos_bus_target(). * Use IDR for node ID allocation. * Avoid goto in functions extracted in patches 01 & 02 (cf. patch 04). * Reverse order of multiplication and division in mixer_set_memory_bandwidth() (patch 11) to avoid integer overflow. --- 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/ (original issue) [4] https://patchwork.kernel.org/cover/11083663/ (coupled regulators; merged) [5] https://patchwork.kernel.org/cover/11149497/ (dev_pm_qos for devfreq) [6] https://patchwork.kernel.org/cover/11054417/ (v1 of this RFC) 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 interconnect: Export of_icc_get_from_provider() interconnect: Relax requirement in of_icc_get_from_provider() interconnect: 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 | 319 +++++++++++++----- drivers/gpu/drm/exynos/exynos_mixer.c | 71 +++- drivers/interconnect/core.c | 12 +- include/linux/interconnect-provider.h | 6 + 6 files changed, 327 insertions(+), 92 deletions(-) -- 2.17.1
WARNING: multiple messages have this Message-ID (diff)
From: "Artur Świgoń" <a.swigon@samsung.com> To: devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, dri-devel@lists.freedesktop.org Cc: b.zolnierkie@samsung.com, sw0312.kim@samsung.com, "Artur Świgoń" <a.swigon@samsung.com>, krzk@kernel.org, inki.dae@samsung.com, cw00.choi@samsung.com, myungjoo.ham@samsung.com, leonard.crestez@nxp.com, georgi.djakov@linaro.org, m.szyprowski@samsung.com Subject: [RFC PATCH v2 00/11] Simple QoS for exynos-bus driver using interconnect Date: Thu, 19 Sep 2019 16:22:25 +0200 [thread overview] Message-ID: <20190919142236.4071-1-a.swigon@samsung.com> (raw) In-Reply-To: CGME20190919142321eucas1p164c2591ad402427cb71fd00c348a29ec@eucas1p1.samsung.com 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 is achieved by using dev_pm_qos_*() API[5]. 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. This patchset depends on [5]. --- Changes since v1 [6]: * Rebase on [4] (coupled regulators). * Rebase on [5] (dev_pm_qos for devfreq). * Use dev_pm_qos_*() API[5] instead of overriding frequency in exynos_bus_target(). * Use IDR for node ID allocation. * Avoid goto in functions extracted in patches 01 & 02 (cf. patch 04). * Reverse order of multiplication and division in mixer_set_memory_bandwidth() (patch 11) to avoid integer overflow. --- 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/ (original issue) [4] https://patchwork.kernel.org/cover/11083663/ (coupled regulators; merged) [5] https://patchwork.kernel.org/cover/11149497/ (dev_pm_qos for devfreq) [6] https://patchwork.kernel.org/cover/11054417/ (v1 of this RFC) 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 interconnect: Export of_icc_get_from_provider() interconnect: Relax requirement in of_icc_get_from_provider() interconnect: 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 | 319 +++++++++++++----- drivers/gpu/drm/exynos/exynos_mixer.c | 71 +++- drivers/interconnect/core.c | 12 +- include/linux/interconnect-provider.h | 6 + 6 files changed, 327 insertions(+), 92 deletions(-) -- 2.17.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next parent reply other threads:[~2019-09-19 14:24 UTC|newest] Thread overview: 99+ messages / expand[flat|nested] mbox.gz Atom feed top [not found] <CGME20190919142321eucas1p164c2591ad402427cb71fd00c348a29ec@eucas1p1.samsung.com> 2019-09-19 14:22 ` Artur Świgoń [this message] 2019-09-19 14:22 ` [RFC PATCH v2 00/11] Simple QoS for exynos-bus driver using interconnect Artur Świgoń [not found] ` <CGME20190919142322eucas1p24bc477ee6e1bcd65546c305d55af097d@eucas1p2.samsung.com> 2019-09-19 14:22 ` [RFC PATCH v2 01/11] devfreq: exynos-bus: Extract exynos_bus_profile_init() Artur Świgoń 2019-09-19 14:22 ` Artur Świgoń 2019-09-20 2:15 ` Chanwoo Choi 2019-09-20 2:15 ` Chanwoo Choi 2019-09-25 5:44 ` Artur Świgoń 2019-09-25 5:44 ` Artur Świgoń 2019-09-25 6:37 ` Chanwoo Choi 2019-09-25 6:37 ` Chanwoo Choi 2019-09-25 6:41 ` Artur Świgoń 2019-09-25 6:41 ` Artur Świgoń [not found] ` <CGME20190919142322eucas1p1949ad95468af26698c4c5addc060ce00@eucas1p1.samsung.com> 2019-09-19 14:22 ` [RFC PATCH v2 02/11] devfreq: exynos-bus: Extract exynos_bus_profile_init_passive() Artur Świgoń 2019-09-19 14:22 ` Artur Świgoń [not found] ` <CGME20190919142323eucas1p2fc73a765389432f880fa28945fd28975@eucas1p2.samsung.com> 2019-09-19 14:22 ` [RFC PATCH v2 03/11] devfreq: exynos-bus: Change goto-based logic to if-else logic Artur Świgoń 2019-09-19 14:22 ` Artur Świgoń [not found] ` <CGME20190919142324eucas1p1638cec2aafbfcaf03cfdfa7d0189143a@eucas1p1.samsung.com> 2019-09-19 14:22 ` [RFC PATCH v2 04/11] devfreq: exynos-bus: Clean up code Artur Świgoń 2019-09-19 14:22 ` Artur Świgoń 2019-09-20 2:22 ` Chanwoo Choi 2019-09-20 2:22 ` Chanwoo Choi 2019-10-03 8:10 ` Artur Świgoń 2019-10-03 8:10 ` Artur Świgoń 2019-10-03 8:10 ` Artur Świgoń [not found] ` <CGME20190919142325eucas1p28102446c22b1e1c61aae0bad46d079b0@eucas1p2.samsung.com> 2019-09-19 14:22 ` [RFC PATCH v2 05/11] interconnect: Export of_icc_get_from_provider() Artur Świgoń 2019-09-19 14:22 ` Artur Świgoń 2019-12-16 0:57 ` Chanwoo Choi 2019-12-16 0:57 ` Chanwoo Choi 2019-12-16 0:57 ` Chanwoo Choi [not found] ` <CGME20190919142326eucas1p204819014fe85716b47e2de4af9102cd5@eucas1p2.samsung.com> 2019-09-19 14:22 ` [RFC PATCH v2 06/11] interconnect: Relax requirement in of_icc_get_from_provider() Artur Świgoń 2019-09-19 14:22 ` Artur Świgoń [not found] ` <CGME20190919142327eucas1p183470eede07b50c1e3acda58f2af1eba@eucas1p1.samsung.com> 2019-09-19 14:22 ` [RFC PATCH v2 07/11] interconnect: Relax condition in apply_constraints() Artur Świgoń 2019-09-19 14:22 ` Artur Świgoń [not found] ` <CGME20190919142329eucas1p299762f99dd55a5d625633ceec84219f9@eucas1p2.samsung.com> 2019-09-19 14:22 ` [RFC PATCH v2 08/11] arm: dts: exynos: Add parents and #interconnect-cells to Exynos4412 Artur Świgoń 2019-09-19 14:22 ` Artur Świgoń 2019-12-16 0:51 ` Chanwoo Choi 2019-12-16 0:51 ` Chanwoo Choi 2019-12-16 0:51 ` Chanwoo Choi 2019-12-16 2:59 ` Chanwoo Choi 2019-12-16 2:59 ` Chanwoo Choi 2019-12-16 2:59 ` Chanwoo Choi 2019-12-18 10:17 ` Artur Świgoń 2019-12-18 10:17 ` Artur Świgoń 2019-12-18 10:17 ` Artur Świgoń 2019-12-18 10:29 ` Chanwoo Choi 2019-12-18 10:29 ` Chanwoo Choi 2019-12-18 10:29 ` Chanwoo Choi 2019-12-18 10:41 ` Artur Świgoń 2019-12-18 10:41 ` Artur Świgoń 2019-12-18 10:41 ` Artur Świgoń 2019-12-16 0:55 ` Chanwoo Choi 2019-12-16 0:55 ` Chanwoo Choi 2019-12-16 0:55 ` Chanwoo Choi 2019-12-16 0:57 ` Chanwoo Choi 2019-12-16 0:57 ` Chanwoo Choi 2019-12-16 0:57 ` Chanwoo Choi [not found] ` <CGME20190919142329eucas1p2e53992eab9ec6b404f716f955b3c228e@eucas1p2.samsung.com> 2019-09-19 14:22 ` [RFC PATCH v2 09/11] devfreq: exynos-bus: Add interconnect functionality to exynos-bus Artur Świgoń 2019-09-19 14:22 ` Artur Świgoń 2019-09-25 7:03 ` Chanwoo Choi 2019-09-25 7:03 ` Chanwoo Choi 2019-09-25 7:03 ` Chanwoo Choi 2019-09-25 7:12 ` Artur Świgoń 2019-09-25 7:12 ` Artur Świgoń 2019-12-02 17:05 ` Artur Świgoń 2019-12-02 17:05 ` Artur Świgoń 2019-12-02 17:05 ` Artur Świgoń 2019-12-05 2:36 ` Chanwoo Choi 2019-12-05 2:36 ` Chanwoo Choi 2019-12-05 2:36 ` Chanwoo Choi 2019-12-16 0:44 ` Chanwoo Choi 2019-12-16 0:44 ` Chanwoo Choi 2019-12-16 0:44 ` Chanwoo Choi 2019-12-18 10:18 ` Artur Świgoń 2019-12-18 10:18 ` Artur Świgoń 2019-12-18 10:18 ` Artur Świgoń 2019-12-18 10:39 ` Chanwoo Choi 2019-12-18 10:39 ` Chanwoo Choi 2019-12-18 10:39 ` Chanwoo Choi 2019-12-18 10:48 ` Artur Świgoń 2019-12-18 10:48 ` Artur Świgoń 2019-12-18 10:48 ` Artur Świgoń 2019-12-18 11:08 ` Chanwoo Choi 2019-12-18 11:08 ` Chanwoo Choi 2019-12-18 11:08 ` Chanwoo Choi [not found] ` <CGME20190919142330eucas1p1eceae78b148a03f2af71657b7cdd6694@eucas1p1.samsung.com> 2019-09-19 14:22 ` [RFC PATCH v2 10/11] arm: dts: exynos: Add interconnects to Exynos4412 mixer Artur Świgoń 2019-09-19 14:22 ` Artur Świgoń [not found] ` <CGME20190919142331eucas1p2107a7cb9ce8b3817ed171c21a8ad5b00@eucas1p2.samsung.com> 2019-09-19 14:22 ` [RFC PATCH v2 11/11] drm: exynos: mixer: Add interconnect support Artur Świgoń 2019-09-19 14:22 ` Artur Świgoń 2019-09-20 1:07 ` [RFC PATCH v2 00/11] Simple QoS for exynos-bus driver using interconnect Chanwoo Choi 2019-09-20 1:07 ` Chanwoo Choi 2019-09-20 2:14 ` Chanwoo Choi 2019-09-20 2:14 ` Chanwoo Choi 2019-09-25 5:47 ` Artur Świgoń 2019-09-25 5:47 ` Artur Świgoń 2019-09-25 6:12 ` Chanwoo Choi 2019-09-25 6:12 ` Chanwoo Choi 2019-09-25 6:37 ` Artur Świgoń 2019-09-25 6:37 ` Artur Świgoń 2019-09-25 6:48 ` Chanwoo Choi 2019-09-25 6:48 ` Chanwoo Choi
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=20190919142236.4071-1-a.swigon@samsung.com \ --to=a.swigon@samsung.com \ --cc=b.zolnierkie@samsung.com \ --cc=cw00.choi@samsung.com \ --cc=devicetree@vger.kernel.org \ --cc=dri-devel@lists.freedesktop.org \ --cc=georgi.djakov@linaro.org \ --cc=inki.dae@samsung.com \ --cc=krzk@kernel.org \ --cc=leonard.crestez@nxp.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-pm@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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.