[PATCH 00/19] Add driver for dvfsrc, support for interconnect
AngeloGioacchino Del Regno
angelogioacchino.delregno at collabora.com
Mon Sep 5 03:24:06 PDT 2022
Hello Dawei,
this series brings very nice improvements to many MediaTek platforms, it would
be a real pity to abandon it.
Can you, or anyone else from MediaTek, please respin on the latest -next?
Thanks,
Angelo
> 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
>
More information about the Linux-mediatek
mailing list