Re: [PATCH 2/3] firmware: qcom: scm: Remove core, iface and bus clocks dependency

From: Sarangdhar Joshi
Date: Wed Nov 02 2016 - 15:24:51 EST


On 11/01/2016 04:11 PM, Stephen Boyd wrote:
On 10/28, Sarangdhar Joshi wrote:
@@ -380,33 +384,43 @@ EXPORT_SYMBOL(qcom_scm_is_available);
static int qcom_scm_probe(struct platform_device *pdev)
{
struct qcom_scm *scm;
+ uint64_t clks;
int ret;

scm = devm_kzalloc(&pdev->dev, sizeof(*scm), GFP_KERNEL);
if (!scm)
return -ENOMEM;

- scm->core_clk = devm_clk_get(&pdev->dev, "core");
- if (IS_ERR(scm->core_clk)) {
- if (PTR_ERR(scm->core_clk) == -EPROBE_DEFER)
- return PTR_ERR(scm->core_clk);
+ clks = (uint64_t)of_device_get_match_data(&pdev->dev);
+ if (clks & SCM_HAS_CORE_CLK) {
+ scm->core_clk = devm_clk_get(&pdev->dev, "core");
+ if (IS_ERR(scm->core_clk)) {
+ if (PTR_ERR(scm->core_clk) == -EPROBE_DEFER)
+ return PTR_ERR(scm->core_clk);

- scm->core_clk = NULL;
+ scm->core_clk = NULL;
+ }
}

if (of_device_is_compatible(pdev->dev.of_node, "qcom,scm")) {

Why didn't this also get added to the flags feature? I'd prefer
we either use of_device_is_compatible() for everything, or device
data to figure out what quirks to apply.

You're right. These flags are already added for "qcom,scm" compatible. We can modify this to honor data flags only. I hope it's okay to update it in the same patch?

Regards,
Sarang


- scm->iface_clk = devm_clk_get(&pdev->dev, "iface");
- if (IS_ERR(scm->iface_clk)) {
- if (PTR_ERR(scm->iface_clk) != -EPROBE_DEFER)



--
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project