On 11/09/2016 05:47 PM, Stephen Boyd wrote:
On 11/03, Sarangdhar Joshi wrote:diff --git a/drivers/firmware/qcom_scm.c b/drivers/firmware/qcom_scm.c index d79fecd..844e90d 100644 --- a/drivers/firmware/qcom_scm.c +++ b/drivers/firmware/qcom_scm.c @@ -380,32 +384,40 @@ EXPORT_SYMBOL(qcom_scm_is_available); static int qcom_scm_probe(struct platform_device *pdev) { struct qcom_scm *scm; + uint32_t clks;If this was unsigned long flags;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 = (uint32_t)((uintptr_t)of_device_get_match_data(&pdev->dev));then this could just be a cast to unsigned long?
I saw quite a few places in kernel where similar type casts are used (e.g gpio drivers) and ended up using uint32_t. uintptr_t is nothing but typedef of an unsigned long. Probably it's a good idea to just use unsigned long instead.
+ 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; + } }
-- The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project

