Thread (11 messages) 11 messages, 2 authors, 2016-12-22

Re: [PATCH v4 6/6] clk: qcom: ipq4019: Add the cpu clock frequency change notifier

From: Stephen Boyd <hidden>
Date: 2016-12-21 23:56:32
Also in: linux-arm-msm, linux-clk, lkml

On 11/25, Abhishek Sahu wrote:
quoted hunk ↗ jump to hunk
@@ -1736,13 +1737,55 @@ static int clk_cpu_div_set_rate(struct clk_hw *hw, unsigned long rate,
 };
 MODULE_DEVICE_TABLE(of, gcc_ipq4019_match_table);
 
+/* Contains index for safe clock during APSS freq change */
+static int gcc_ipq4019_cpu_safe_parent;
+static int
+gcc_ipq4019_cpu_clk_notifier_fn(struct notifier_block *nb,
+				unsigned long action, void *data)
+{
+	int err = 0;
+
+	if (action == PRE_RATE_CHANGE)
+		err = clk_rcg2_ops.set_parent(&apps_clk_src.clkr.hw,
+					      gcc_ipq4019_cpu_safe_parent);
Why can't we hardcode this? It's not like this safe parent is
going to change across boards.
+
+	return notifier_from_errno(err);
+}
+
+static struct notifier_block gcc_ipq4019_cpu_clk_notifier = {
+	.notifier_call = gcc_ipq4019_cpu_clk_notifier_fn,
+};
+
 static int gcc_ipq4019_probe(struct platform_device *pdev)
 {
-	return qcom_cc_probe(pdev, &gcc_ipq4019_desc);
+	int err;
+
+	err = qcom_cc_probe(pdev, &gcc_ipq4019_desc);
+	if (err)
+		return err;
+
+	gcc_ipq4019_cpu_safe_parent = qcom_find_src_index(&apps_clk_src.clkr.hw,
+						apps_clk_src.parent_map,
+						P_FEPLL500);
+	if (gcc_ipq4019_cpu_safe_parent < 0)
+		err = gcc_ipq4019_cpu_safe_parent;
Then we don't need to do this.
+
+	if (!err)
+		err = clk_notifier_register(apps_clk_src.clkr.hw.clk,
+				      &gcc_ipq4019_cpu_clk_notifier);
+
+	return err;
+}
+
-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help