Message ID | 20230317141622.1926573-3-quic_mohs@quicinc.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | Add resets for ADSP based audio clock controller driver | expand |
Quoting Mohammad Rafi Shaik (2023-03-17 07:16:20) > From: Srinivasa Rao Mandadapu <quic_srivasam@quicinc.com> > > The qdsp6ss memory region is being shared by ADSP remoteproc device and > lpasscc clock device, hence causing memory conflict. > As the qdsp6ss clocks are being enabled in remoteproc driver, skip qdsp6ss > clock registration if "qcom,adsp-pil-mode" is enabled. > > Fixes: 4ab43d171181 ("clk: qcom: Add lpass clock controller driver for SC7280") > Signed-off-by: Srinivasa Rao Mandadapu <quic_srivasam@quicinc.com> > Signed-off-by: Mohammad Rafi Shaik <quic_mohs@quicinc.com> > Reviewed-by: Stephen Boyd <swboyd@chromium.org> > --- > drivers/clk/qcom/lpasscc-sc7280.c | 12 +++++++----- > 1 file changed, 7 insertions(+), 5 deletions(-) > > diff --git a/drivers/clk/qcom/lpasscc-sc7280.c b/drivers/clk/qcom/lpasscc-sc7280.c > index 5c1e17bd0d76..85dd5b9d64f0 100644 > --- a/drivers/clk/qcom/lpasscc-sc7280.c > +++ b/drivers/clk/qcom/lpasscc-sc7280.c > @@ -118,12 +118,14 @@ static int lpass_cc_sc7280_probe(struct platform_device *pdev) > goto destroy_pm_clk; > } > > - lpass_regmap_config.name = "qdsp6ss"; > - desc = &lpass_qdsp6ss_sc7280_desc; > + if (!of_property_read_bool(pdev->dev.of_node, "qcom,adsp-pil-mode")) { > + lpass_regmap_config.name = "qdsp6ss"; > + desc = &lpass_qdsp6ss_sc7280_desc; > > - ret = qcom_cc_probe_by_index(pdev, 0, desc); > - if (ret) > - goto destroy_pm_clk; > + ret = qcom_cc_probe_by_index(pdev, 0, desc); > + if (ret) > + goto destroy_pm_clk; > + } I noticed that we don't set any max_register on the regmap_config. Can you also do that in a patch before this patch? I think without that set you can oops the kernel by reading the debugfs file for the regmap. > > lpass_regmap_config.name = "top_cc"; > desc = &lpass_cc_top_sc7280_desc;
diff --git a/drivers/clk/qcom/lpasscc-sc7280.c b/drivers/clk/qcom/lpasscc-sc7280.c index 5c1e17bd0d76..85dd5b9d64f0 100644 --- a/drivers/clk/qcom/lpasscc-sc7280.c +++ b/drivers/clk/qcom/lpasscc-sc7280.c @@ -118,12 +118,14 @@ static int lpass_cc_sc7280_probe(struct platform_device *pdev) goto destroy_pm_clk; } - lpass_regmap_config.name = "qdsp6ss"; - desc = &lpass_qdsp6ss_sc7280_desc; + if (!of_property_read_bool(pdev->dev.of_node, "qcom,adsp-pil-mode")) { + lpass_regmap_config.name = "qdsp6ss"; + desc = &lpass_qdsp6ss_sc7280_desc; - ret = qcom_cc_probe_by_index(pdev, 0, desc); - if (ret) - goto destroy_pm_clk; + ret = qcom_cc_probe_by_index(pdev, 0, desc); + if (ret) + goto destroy_pm_clk; + } lpass_regmap_config.name = "top_cc"; desc = &lpass_cc_top_sc7280_desc;