Rob Herring
cff66ace51
interconnect: Explicitly include correct DT includes
...
The DT of_device.h and of_platform.h date back to the separate
of_platform_bus_type before it as merged into the regular platform bus.
As part of that merge prepping Arm DT support 13 years ago, they
"temporarily" include each other. They also include platform_device.h
and of.h. As a result, there's a pretty much random mix of those include
files used throughout the tree. In order to detangle these headers and
replace the implicit includes with struct declarations, users need to
explicitly include the correct includes.
Signed-off-by: Rob Herring <robh@kernel.org >
Link: https://lore.kernel.org/r/20230714174638.4058268-1-robh@kernel.org
Signed-off-by: Georgi Djakov <djakov@kernel.org >
2023-07-16 18:27:27 +03:00
Konrad Dybcio
a923b8bbeb
interconnect: qcom: qcs404: Hook up RPM bus clk definitions
...
Assign the necessary definitions to migrate to the new bus clock
handling mechanism.
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org >
Acked-by: Georgi Djakov <djakov@kernel.org >
Link: https://lore.kernel.org/r/20230526-topic-smd_icc-v7-13-09c78c175546@linaro.org
Signed-off-by: Bjorn Andersson <andersson@kernel.org >
2023-07-15 09:54:45 -07:00
Konrad Dybcio
19ced2aec6
interconnect: qcom: Fold smd-rpm.h into icc-rpm.h
...
smd-rpm.h is not very useful as-is and both files are always included
anyway.. Combine them.
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org >
Acked-by: Georgi Djakov <djakov@kernel.org >
Link: https://lore.kernel.org/r/20230526-topic-smd_icc-v7-8-09c78c175546@linaro.org
Signed-off-by: Bjorn Andersson <andersson@kernel.org >
2023-07-15 09:54:44 -07:00
Konrad Dybcio
40cdeed669
interconnect: qcom: Add missing headers in icc-rpm.h
...
Currently the header does not provide all the required dependencies.
Fix it.
Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org >
Acked-by: Georgi Djakov <djakov@kernel.org >
Link: https://lore.kernel.org/r/20230526-topic-smd_icc-v7-7-09c78c175546@linaro.org
Signed-off-by: Bjorn Andersson <andersson@kernel.org >
2023-07-15 09:54:44 -07:00
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