Skip to content

Commit 13404ac

Browse files
shawnguo2Georgi Djakov
authored andcommitted
interconnect: qcom: sdm660: Add missing a2noc qos clocks
It adds the missing a2noc clocks required for QoS registers programming per downstream kernel[1]. Otherwise, qcom_icc_noc_set_qos_priority() call on mas_ufs or mas_usb_hs node will simply result in a hardware hang on SDM660 SoC. [1] https://source.codeaurora.org/quic/la/kernel/msm-4.4/tree/arch/arm/boot/dts/qcom/sdm660-bus.dtsi?h=LA.UM.8.2.r1-04800-sdm660.0#n43 Signed-off-by: Shawn Guo <[email protected]> Tested-by: Bjorn Andersson <[email protected]> Reviewed-by: AngeloGioacchino Del Regno <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Georgi Djakov <[email protected]>
1 parent cf49e36 commit 13404ac

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

drivers/interconnect/qcom/sdm660.c

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,16 @@ static const struct clk_bulk_data bus_mm_clocks[] = {
173173
{ .id = "iface" },
174174
};
175175

176+
static const struct clk_bulk_data bus_a2noc_clocks[] = {
177+
{ .id = "bus" },
178+
{ .id = "bus_a" },
179+
{ .id = "ipa" },
180+
{ .id = "ufs_axi" },
181+
{ .id = "aggre2_ufs_axi" },
182+
{ .id = "aggre2_usb3_axi" },
183+
{ .id = "cfg_noc_usb2_axi" },
184+
};
185+
176186
/**
177187
* struct qcom_icc_provider - Qualcomm specific interconnect provider
178188
* @provider: generic interconnect provider
@@ -809,6 +819,10 @@ static int qnoc_probe(struct platform_device *pdev)
809819
qp->bus_clks = devm_kmemdup(dev, bus_mm_clocks,
810820
sizeof(bus_mm_clocks), GFP_KERNEL);
811821
qp->num_clks = ARRAY_SIZE(bus_mm_clocks);
822+
} else if (of_device_is_compatible(dev->of_node, "qcom,sdm660-a2noc")) {
823+
qp->bus_clks = devm_kmemdup(dev, bus_a2noc_clocks,
824+
sizeof(bus_a2noc_clocks), GFP_KERNEL);
825+
qp->num_clks = ARRAY_SIZE(bus_a2noc_clocks);
812826
} else {
813827
if (of_device_is_compatible(dev->of_node, "qcom,sdm660-bimc"))
814828
qp->is_bimc_node = true;

0 commit comments

Comments
 (0)