Message ID | 20210812085846.2628-1-dawei.chien@mediatek.com |
---|---|
Headers | show |
Series | Add driver for dvfsrc, support for interconnect | expand |
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 >