1. Add a sysfs file for setting camera max BW
2. Add BW throttle notifier add/remove function
3. Add a wait throttle done API
Change-Id: Id044a845f5cbfe2e6449643c0e05518f23110053
Feature: [Module]MM pipeline/MM DVFS
Signed-off-by: Anthony Huang <anthony.huang@mediatek.com>
CR-Id: ALPS04672494
Set bw limiter to soft mode if qos bound is false
Change-Id: I95039ab96db23fab38c16888af1faca1ade353cc
Feature: [Module]MM pipeline/MM DVFS
Signed-off-by: Anthony Huang <anthony.huang@mediatek.com>
CR-Id: ALPS04798455
1. Use HRT BW array to store all MM modules' HRT BW requirement
2. Add mtk_mmqos_get_avail_hrt_bw API for MM modules to query
available HRT BW
Change-Id: I3a5a2d7dc2a088b0ce294a41a93585e9a0e43167
Feature: [Module]MM pipeline/MM DVFS
Signed-off-by: Anthony Huang <anthony.huang@mediatek.com>
CR-Id: ALPS04672494
Set ostd to 1 if BW is 0
Change-Id: I6ad0d9739deee016dcc6718c722b4525b7883e98
Feature: [Module]MM pipeline/MM DVFS
CR-Id: ALPS04672494
Signed-off-by: Anthony Huang <anthony.huang@mediatek.com>
1. Change config type of INTERCONNECT_MTK_MMQOS_COMMON from bool
to tristate
2. Fix wrong parameter of MODULE_DEVICE_TABLE
3. Remove of_phandle_iterator_args because it is not exported and
it is not necessary
4. Export mtk_mmqos_probe() and mtk_mmqos_remove()
Error message:
drivers/interconnect/mediatek/mmqos-mt6779.c:373:25: error: use of
undeclared identifier 'mtk_mt6779_mmqos_of_ids'
MODULE_DEVICE_TABLE(of, mtk_mt6779_mmqos_of_ids);
drivers/interconnect/mediatek/mmqos-mtk.o: In function `mtk_mmqos_probe':
drivers/interconnect/mediatek/mmqos-mtk.c:384: undefined reference to
`register_mmdvfs_notifier'
ERROR: "of_phandle_iterator_args"
[drivers/interconnect/mediatek/mmqos-mtk.ko] undefined!
ERROR: "mtk_mmqos_remove"
[drivers/interconnect/mediatek/mmqos-mt6779.ko] undefined!
ERROR: "mtk_mmqos_probe"
[drivers/interconnect/mediatek/mmqos-mt6779.ko] undefined!
Change-Id: Id374aa1db1572e256dbaef917e3f53f43906e643
Feature: [Module]MM pipeline/MM DVFS
CR-Id: ALPS04754217
Signed-off-by: Anthony Huang <anthony.huang@mediatek.com>
In clock changing callback, check BW is not zero before update SMI
to avoid possible devapc issue.
Change-Id: I482f69086079e2528a3b2bc9ede539a9c138db52
Feature: [Module]MM pipeline/MM DVFS
CR-Id: ALPS04756518
Signed-off-by: Anthony Huang <anthony.huang@mediatek.com>
1. Add max_ratio in mmqos data
2. Set max_ratio as upper-bound of the value of mtk_smi_larb_bw_set()
Feature: [Module]MM pipeline/MM DVFS
Change-Id: Ifcf9329a15597a518dd899d97c64e91919194399
CR-Id: ALPS04672494
Signed-off-by: Anthony Huang <anthony.huang@mediatek.com>
1. Define a bool property for each common_port whether it needs HRT
(Hard Real Time) requirement in platform data
2. Before passing bandwidth of common node to dvfsrc, traverse each
common_port and accumulate its bandwidth. Peak bandwidth of common_port
is aggregated if it is HRT
Feature: [Module]MM pipeline/MM DVFS
Change-Id: I41341df0ad5bceac52d70f5cfac8ab0a5f237a52
CR-Id: ALPS04672494
Signed-off-by: Anthony Huang <anthony.huang@mediatek.com>
Implement interconnect consumer to pass the bandwidth of common node
to dvfsrc
Feature: [Module]MM pipeline/MM DVFS
Change-Id: I3b18afb022360b091c142ea512d751dbce9b64d1
CR-Id: ALPS04672494
Signed-off-by: Anthony Huang <anthony.huang@mediatek.com>
emi icc are used by mediatek mmdvfs soc driver.
so the driver should be registered before mmdvfs drivers get probed.
Change-Id: Ia3dc6cd97d98ed0001eca9208d47b4d0453e05b4
Signed-off-by: Arvin Wang <arvin.wang@mediatek.com>
CR-Id: ALPS04419708
Feature: VCORE DVFS
When consumers report their bandwidth needs with icc_set_bw(), it's
possible that the requested amount of bandwidth is not available or just
the new configuration fails to apply on some path. In this case revert to
the previous configuration and propagate the error back to the consumers
to let them know that bandwidth is not available, hardware is busy or
whatever error is returned by the interconnect platform driver.
Change-Id: Ibb383ddd71600fe227932fff177d857f1cb77608
Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
CR-Id: ALPS04419708
Feature: VCORE DVFS
Introduce Qualcomm SDM845 specific provider driver using the
interconnect framework.
Change-Id: Ia02632a6b3037b9de6177e652abeb8cec407eb17
Signed-off-by: David Dai <daidavid1@codeaurora.org>
Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
CR-Id: ALPS04419708
Feature: VCORE DVFS
Add a functionality to provide information about the current constraints
per each node and provider.
Change-Id: I8fa31a3e78a930e3809f2619b3b1a97ec75831c6
Reviewed-by: Evan Green <evgreen@chromium.org>
Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
CR-Id: ALPS04419708
Feature: VCORE DVFS
Currently we support only platform data for specifying the interconnect
endpoints. As now the endpoints are hard-coded into the consumer driver
this may lead to complications when a single driver is used by multiple
SoCs, which may have different interconnect topology.
To avoid cluttering the consumer drivers, introduce a translation function
to help us get the board specific interconnect data from device-tree.
Change-Id: I1411d7f4295758a44df9701bf83c5cc50b596581
Reviewed-by: Evan Green <evgreen@chromium.org>
Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
CR-Id: ALPS04419708
Feature: VCORE DVFS
This patch introduces a new API to get requirements and configure the
interconnect buses across the entire chipset to fit with the current
demand.
The API is using a consumer/provider-based model, where the providers are
the interconnect buses and the consumers could be various drivers.
The consumers request interconnect resources (path) between endpoints and
set the desired constraints on this data flow path. The providers receive
requests from consumers and aggregate these requests for all master-slave
pairs on that path. Then the providers configure each node along the path
to support a bandwidth that satisfies all bandwidth requests that cross
through that node. The topology could be complicated and multi-tiered and
is SoC specific.
Change-Id: Idfdac32ea952e6a93ec759fec38e2e4174807014
Reviewed-by: Evan Green <evgreen@chromium.org>
Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
CR-Id: ALPS04419708
Feature: VCORE DVFS