Krzysztof Kozlowski
2ccf33c063
interconnect: qcom: constify icc_node pointers
...
Pointers to struct qcom_icc_node (and similar structures) are not
modified, so they can be made const for safety. The contents of struct
qcom_icc_node must stay non-const.
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org >
Link: https://lore.kernel.org/r/20220412102623.227607-2-krzysztof.kozlowski@linaro.org
Signed-off-by: Georgi Djakov <djakov@kernel.org >
2022-04-23 15:11:48 +03:00
Krzysztof Kozlowski
1625aaa3fe
interconnect: qcom: constify qcom_icc_desc
...
struct qcom_icc_desc is not modified so it can be made const for safety.
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org >
Link: https://lore.kernel.org/r/20220412102623.227607-1-krzysztof.kozlowski@linaro.org
Signed-off-by: Georgi Djakov <djakov@kernel.org >
2022-04-23 15:11:35 +03:00
Dmitry Baryshkov
42f236e275
interconnect: qcs404: expand DEFINE_QNODE macros
...
To follow the example of the rest of icc-rpm.h drivers, expand
DEFINE_QNODE macros in the driver.
Suggested-by: Bjorn Andersson <bjorn.andersson@linaro.org >
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@somainline.org >
Link: https://lore.kernel.org/r/20210903232421.1384199-11-dmitry.baryshkov@linaro.org
Signed-off-by: Georgi Djakov <djakov@kernel.org >
2021-10-04 14:13:58 +03:00
Dmitry Baryshkov
63e8ab610d
interconnect: icc-rpm: move bus clocks handling into qnoc_probe
...
All icc-rpm drivers use the same set of bus clocks. Move handling of bus
clocks to qnoc_probe. This both simplifies the code and allows using
qnoc_probe as device's probe function.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@somainline.org >
Reviewed-by: Marijn Suijten <marijn.suijten@somainline.org >
Tested-by: Shawn Guo <shawn.guo@linaro.org >
Link: https://lore.kernel.org/r/20210903232421.1384199-2-dmitry.baryshkov@linaro.org
Signed-off-by: Georgi Djakov <djakov@kernel.org >
2021-10-04 13:37:47 +03:00
Jun Nie
dfbd988f1c
interconnect: qcom: qcs404: use shared code
...
Use shared code for aggregate functionalities and probe function
to remove duplicated code.
Signed-off-by: Jun Nie <jun.nie@linaro.org >
Link: https://lore.kernel.org/r/20201204075345.5161-3-jun.nie@linaro.org
Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org >
2021-01-05 13:10:12 +02:00
Georgi Djakov
7ab1e91176
interconnect: qcom: qcs404: Remove GPU and display RPM IDs
...
The following errors are noticed during boot on a QCS404 board:
[ 2.926647] qcom_icc_rpm_smd_send mas 6 error -6
[ 2.934573] qcom_icc_rpm_smd_send mas 8 error -6
These errors show when we try to configure the GPU and display nodes.
Since these particular nodes aren't supported on RPM and are purely
local, we should just change their mas_rpm_id to -1 to avoid any
requests being sent for these master IDs.
Reviewed-by: Mike Tipton <mdtipton@codeaurora.org >
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org >
Link: https://lore.kernel.org/r/20201118111044.26056-1-georgi.djakov@linaro.org
Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org >
2020-11-20 15:52:05 +02:00
Georgi Djakov
b92c35e1b9
interconnect: qcom: Use the standard aggregate function
...
Now we have a common function for standard aggregation, so let's use it,
instead of duplicating the code.
Reviewed-by: Brian Masney <masneyb@onstation.org >
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org >
Reviewed-by: Evan Green <evgreen@chromium.org >
Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org >
2019-12-16 09:25:24 +02:00
Georgi Djakov
ad3703ac24
interconnect: qcom: Use the new common helper for node removal
...
There is a new helper function for removing all nodes. Let's use it instead
of duplicating the code.
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org >
Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org >
2019-12-16 09:25:23 +02:00
Georgi Djakov
f39488ea2a
interconnect: qcom: qcs404: Walk the list safely on node removal
...
As we will remove items off the list using list_del(), we need to use the
safe version of list_for_each_entry().
Fixes: 5e4e6c4d3a ("interconnect: qcom: Add QCS404 interconnect provider driver")
Reported-by: Dmitry Osipenko <digetx@gmail.com >
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org >
Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org >
Cc: <stable@vger.kernel.org > # v5.4
Link: https://lore.kernel.org/r/20191212075332.16202-4-georgi.djakov@linaro.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2019-12-12 10:28:53 +01:00
Leonard Crestez
83c774f0c6
interconnect: qcom: Fix icc_onecell_data allocation
...
This is a struct with a trailing zero-length array of icc_node pointers
but it's allocated as if it were a single array of icc_nodes instead.
This allocates too much memory at probe time but shouldn't have any
noticeable effect. Both sdm845 and qcs404 are affected.
Fix by replacing kcalloc with kzalloc and using the "struct_size" macro.
Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com >
Fixes: 5e4e6c4d3a ("interconnect: qcom: Add QCS404 interconnect provider driver")
Link: https://lore.kernel.org/linux-pm/a7360abb6561917e30bbfaa6084578449152bf1d.1569348056.git.leonard.crestez@nxp.com/
Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org >
2019-10-20 12:09:31 +03:00
Bjorn Andersson
5e4e6c4d3a
interconnect: qcom: Add QCS404 interconnect provider driver
...
Add driver for the interconnect buses found in Qualcomm QCS404-based
platforms. The topology consists of three NoCs that are controlled by
a remote processor. This remote processor collects the aggregated
bandwidth for each master-slave pairs.
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org >
Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org >
2019-08-13 23:26:08 +03:00