lede/target/linux/qualcommax/patches-6.6/0813-remoteproc-qcom_q6v5_mpd-enable-clocks.patch
2024-12-07 15:13:57 +08:00

39 lines
1.2 KiB
Diff

From e83215d5d22946885fa388d375b12f1b991a43c1 Mon Sep 17 00:00:00 2001
From: Ziyang Huang <hzyitc@outlook.com>
Date: Sun, 8 Sep 2024 16:40:12 +0800
Subject: [PATCH 3/5] remoteproc: qcom_q6v5_mpd: enable clocks
Signed-off-by: hzy <hzyitc@outlook.com>
---
drivers/remoteproc/qcom_q6v5_mpd.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
--- a/drivers/remoteproc/qcom_q6v5_mpd.c
+++ b/drivers/remoteproc/qcom_q6v5_mpd.c
@@ -77,6 +77,8 @@ struct q6_wcss {
phys_addr_t mem_reloc;
void *mem_region;
size_t mem_size;
+ struct clk_bulk_data *clks;
+ int num_clks;
const struct wcss_data *desc;
const char **firmware;
struct userpd *upd[MAX_UPD];
@@ -718,6 +720,16 @@ static int q6_wcss_probe(struct platform
if (ret)
goto free_rproc;
+ wcss->num_clks = devm_clk_bulk_get_all(wcss->dev, &wcss->clks);
+ if (wcss->num_clks < 0)
+ return dev_err_probe(wcss->dev, wcss->num_clks,
+ "failed to acquire clocks\n");
+
+ ret = clk_bulk_prepare_enable(wcss->num_clks, wcss->clks);
+ if (ret)
+ return dev_err_probe(wcss->dev, ret,
+ "failed to enable clocks\n");
+
ret = qcom_q6v5_init(&wcss->q6, pdev, rproc,
WCSS_CRASH_REASON, NULL, NULL);
if (ret)