linux-mediatek.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/19] Add driver for dvfsrc, support for interconnect
@ 2021-08-12  8:58 Dawei Chien
  2021-08-12  8:58 ` [V11,PATCH 01/19] dt-bindings: soc: Add dvfsrc driver bindings Dawei Chien
                   ` (19 more replies)
  0 siblings, 20 replies; 37+ messages in thread
From: Dawei Chien @ 2021-08-12  8:58 UTC (permalink / raw)
  To: Georgi Djakov, Rob Herring, Matthias Brugger, Stephen Boyd, Ryan Case
  Cc: Mark Rutland, Nicolas Boichat, devicetree, linux-pm,
	linux-kernel, linux-mediatek, linux-arm-kernel, Fan Chen,
	Arvin Wang, James Liao, Dawei Chien

This series is based on v5.14-rc1.

The patchsets add support for MediaTek hardware module named DVFSRC
(dynamic voltage and frequency scaling resource collector). The DVFSRC is
a HW module which is used to collect all the requests from both software
and hardware and turn into the decision of minimum operating voltage and
minimum DRAM frequency to fulfill those requests.

So, This series is to implement the dvfsrc driver to collect all the
requests of operating voltage or DRAM bandwidth from other device drivers
likes GPU/Camera through 3 frameworks basically:

1. interconnect framework: to aggregate the bandwidth
   requirements from different clients

[1] https://patchwork.kernel.org/cover/10766329/

There has a hw module "DRAM scheduler", which used to control the
throughput.
The DVFSRC will collect forecast data of dram bandwidth from
SW consumers(camera/gpu...), and according the forecast to change the DRAM
frequency

2. Regualtor framework: to handle the operating voltage requirement from
   user or cosumer which not belong any power domain

Changes in V11:
* rebase all patches on v5.14-rc1.
* support platform mt8195.
* add initial bw in mediatek interconnect driver.
* add one more pcie client in mediatek interconnect driver.
* add compatible for MT8195 dvfsrc.

Changes in V10:
* rebase all patches on v5.13-rc1
* add acked TAG for interconnect provider driver (Georgi)
* update comment message for typos. (Georgi)
* update cover leter for typos.

Changes in V9:
* modify the configuration of dvfsrc.yaml. (Rob)

Changes in V8:
* Fixed the dt_binding_check error of dvfsrc.yaml. (Rob)
* Remove Kconfig dependency of DVFSRC

Changes in V7:
* Fixed the dt_binding_check error of dvfsrc.yaml. (Rob)
* Fixed the checkpatch complains of "Signed-off-by:
email name mismatch". (Georgi)
* Fixed coding style of interconnect driver. (Georgi)
* Update comment of the years to 2021. (Georgi)

Changes in V6:
* Remove the performace state support, because the request from consumer
can be replaced by using interconnect and regulator framework.
* Update the DT patches and convert them to DT schema. (Georgi)
* Modify the comment format and coding style. (Mark)

Changes in V5:
* Support more platform mt6873/mt8192
* Drop the compatible and interconnect provider node and make the parent
node an interconnect provider. (Rob/Georgi)
* Make modification of interconnect driver from coding suggestion. (Georgi)
* Move interconnect diagram into the commit text of patch. (Georgi)
* Register the interconnect provider as a platform sub-device. (Georgi)

Changes in V4:
* Add acked TAG on dt-bindings patches. (Rob)
* Declaration of emi_icc_aggregate since the prototype of aggregate
function has changed meanwhile. (Georgi)
* Used emi_icc_remove instead of icc_provider_del on probe. (Georgi)
* Add dvfsrc regulator driver into series.
* Bug fixed of mt8183_get_current_level.
* Add mutex protection for pstate operation on dvfsrc_set_performance.

Changes in V3:
* Remove RFC from the subject prefix of the series
* Combine dt-binding patch and move interconnect dt-binding document into
dvfsrc. (Rob)
* Remove unused header, add unit descirption to the bandwidth, rename
compatible name on interconnect driver. (Georgi)
* Fixed some coding style: check flow, naming, used readx_poll_timeout
on dvfsrc driver. (Ryan)
* Rename interconnect driver mt8183.c to mtk-emi.c
* Rename interconnect header mtk,mt8183.h to mtk,emi.h
* mtk-scpsys.c: Add opp table check first to avoid OF runtime parse failed

Changes in RFC V2:
* Remove the DT property dram_type. (Rob)
* Used generic dts property 'opp-level' to get the performace
state. (Stephen)
* Remove unnecessary dependency config on Kconfig. (Stephen)
* Remove unused header file, fixed some coding style issue, typo,
error handling on dvfsrc driver. (Nicolas/Stephen)
* Remove irq handler on dvfsrc driver. (Stephen)
* Remove init table on dvfsrc driver, combine hw init on trustzone.
* Add interconnect support of mt8183 to aggregate the emi bandwidth.
(Georgi)

v10: https://patchwork.kernel.org/project/linux-mediatek/list/?series=494095
V9: https://patchwork.kernel.org/project/linux-mediatek/list/?series=440389
V8: https://patchwork.kernel.org/project/linux-mediatek/list/?series=421713
V7: https://patchwork.kernel.org/project/linux-mediatek/list/?series=411057
V6: https://patchwork.kernel.org/project/linux-mediatek/list/?series=406077
V5: https://patchwork.kernel.org/project/linux-mediatek/list/?series=348065
V4: https://lore.kernel.org/patchwork/cover/1209284/
V3: https://patchwork.kernel.org/cover/11118867/
RFC V2: https://lore.kernel.org/patchwork/patch/1068113/
RFC V1: https://lore.kernel.org/patchwork/cover/1028535/

Dawei Chien (8):
  dt-bindings: mediatek: add compatible for MT8195 dvfsrc
  soc: mediatek: add support for mt8195
  arm64: dts: mt8195: add dvfsrc related nodes
  dt-bindings: interconnect: add MT8195 interconnect dt-bindings
  interconnect: mediatek: add support for mt8195
  interconnect: mediatek: add initial bandwidth
  regulator: mediatek: add support for mt8195
  arm64: dts: mt8195: add dvfsrc related nodes

Henry Chen (11):
  dt-bindings: soc: Add dvfsrc driver bindings
  soc: mediatek: add header for mediatek SIP interface
  soc: mediatek: add driver for dvfsrc support
  soc: mediatek: add support for mt6873
  arm64: dts: mt8183: add dvfsrc related nodes
  arm64: dts: mt8192: add dvfsrc related nodes
  dt-bindings: interconnect: add MT6873 interconnect dt-bindings
  interconnect: mediatek: Add interconnect provider driver
  arm64: dts: mt8183: add dvfsrc related nodes
  arm64: dts: mt8192: add dvfsrc related nodes
  arm64: dts: mt8192: add dvfsrc regulator nodes

 .../devicetree/bindings/soc/mediatek/dvfsrc.yaml   |  68 +++
 arch/arm64/boot/dts/mediatek/mt8183.dtsi           |   7 +
 arch/arm64/boot/dts/mediatek/mt8192.dtsi           |  14 +
 arch/arm64/boot/dts/mediatek/mt8195.dtsi           |   7 +
 drivers/interconnect/Kconfig                       |   1 +
 drivers/interconnect/Makefile                      |   1 +
 drivers/interconnect/mediatek/Kconfig              |  13 +
 drivers/interconnect/mediatek/Makefile             |   3 +
 drivers/interconnect/mediatek/mtk-emi.c            | 385 +++++++++++++++
 drivers/regulator/mtk-dvfsrc-regulator.c           |  23 +
 drivers/soc/mediatek/Kconfig                       |  11 +
 drivers/soc/mediatek/Makefile                      |   1 +
 drivers/soc/mediatek/mtk-dvfsrc.c                  | 538 +++++++++++++++++++++
 include/dt-bindings/interconnect/mtk,mt6873-emi.h  |  41 ++
 include/dt-bindings/interconnect/mtk,mt8183-emi.h  |  21 +
 include/dt-bindings/interconnect/mtk,mt8195-emi.h  |  42 ++
 include/linux/soc/mediatek/mtk_dvfsrc.h            |  35 ++
 include/linux/soc/mediatek/mtk_sip_svc.h           |   4 +
 18 files changed, 1215 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/soc/mediatek/dvfsrc.yaml
 create mode 100644 drivers/interconnect/mediatek/Kconfig
 create mode 100644 drivers/interconnect/mediatek/Makefile
 create mode 100644 drivers/interconnect/mediatek/mtk-emi.c
 create mode 100644 drivers/soc/mediatek/mtk-dvfsrc.c
 create mode 100644 include/dt-bindings/interconnect/mtk,mt6873-emi.h
 create mode 100644 include/dt-bindings/interconnect/mtk,mt8183-emi.h
 create mode 100644 include/dt-bindings/interconnect/mtk,mt8195-emi.h
 create mode 100644 include/linux/soc/mediatek/mtk_dvfsrc.h

-- 
2.14.1
_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek

^ permalink raw reply	[flat|nested] 37+ messages in thread

end of thread, other threads:[~2022-09-05 12:08 UTC | newest]

Thread overview: 37+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-08-12  8:58 [PATCH 00/19] Add driver for dvfsrc, support for interconnect Dawei Chien
2021-08-12  8:58 ` [V11,PATCH 01/19] dt-bindings: soc: Add dvfsrc driver bindings Dawei Chien
2021-08-12  8:58 ` [V11, PATCH 02/19] dt-bindings: mediatek: add compatible for MT8195 dvfsrc Dawei Chien
2021-08-17 21:23   ` [V11,PATCH " Rob Herring
2021-08-12  8:58 ` [V11, PATCH 03/19] soc: mediatek: add header for mediatek SIP interface Dawei Chien
2022-02-03 15:14   ` AngeloGioacchino Del Regno
2022-02-11  3:50     ` Dawei Chien
2021-08-12  8:58 ` [V11,PATCH 04/19] soc: mediatek: add driver for dvfsrc support Dawei Chien
2022-02-03 15:04   ` AngeloGioacchino Del Regno
2022-02-11  3:51     ` Dawei Chien
2022-02-11 11:50       ` AngeloGioacchino Del Regno
2021-08-12  8:58 ` [V11,PATCH 05/19] soc: mediatek: add support for mt6873 Dawei Chien
2022-02-03 15:13   ` AngeloGioacchino Del Regno
2022-02-11  3:50     ` Dawei Chien
2021-08-12  8:58 ` [V11,PATCH 06/19] soc: mediatek: add support for mt8195 Dawei Chien
2021-08-12  8:58 ` [V11,PATCH 07/19] arm64: dts: mt8183: add dvfsrc related nodes Dawei Chien
2021-08-12  8:58 ` [V11,PATCH 08/19] arm64: dts: mt8192: " Dawei Chien
2021-08-12  8:58 ` [V11,PATCH 09/19] arm64: dts: mt8195: " Dawei Chien
2021-08-12  8:58 ` [V11, PATCH 10/19] dt-bindings: interconnect: add MT6873 interconnect dt-bindings Dawei Chien
2021-08-12  8:58 ` [V11, PATCH 11/19] dt-bindings: interconnect: add MT8195 " Dawei Chien
2021-08-17 21:24   ` [V11,PATCH " Rob Herring
2022-02-03 15:22   ` [V11, PATCH " AngeloGioacchino Del Regno
2021-08-12  8:58 ` [V11, PATCH 12/19] interconnect: mediatek: Add interconnect provider driver Dawei Chien
2022-02-03 15:19   ` AngeloGioacchino Del Regno
2022-02-11  3:49     ` Dawei Chien
2021-08-12  8:58 ` [V11,PATCH 13/19] interconnect: mediatek: add support for mt8195 Dawei Chien
2022-02-03 15:19   ` AngeloGioacchino Del Regno
2021-08-12  8:58 ` [V11,PATCH 14/19] interconnect: mediatek: add initial bandwidth Dawei Chien
2021-08-12  8:58 ` [V11,PATCH 15/19] regulator: mediatek: add support for mt8195 Dawei Chien
2022-02-03 15:21   ` AngeloGioacchino Del Regno
2021-08-12  8:58 ` [V11,PATCH 16/19] arm64: dts: mt8183: add dvfsrc related nodes Dawei Chien
2022-02-03 15:16   ` AngeloGioacchino Del Regno
2022-02-11  3:50     ` Dawei Chien
2021-08-12  8:58 ` [V11,PATCH 17/19] arm64: dts: mt8192: " Dawei Chien
2021-08-12  8:58 ` [V11,PATCH 18/19] arm64: dts: mt8192: add dvfsrc regulator nodes Dawei Chien
2021-08-12  8:58 ` [V11,PATCH 19/19] arm64: dts: mt8195: add dvfsrc related nodes Dawei Chien
2022-09-05 10:24 ` [PATCH 00/19] Add driver for dvfsrc, support for interconnect AngeloGioacchino Del Regno

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).