Loading arch/arm/boot/dts/qcom/mdm9640.dtsi +3 −2 Original line number Diff line number Diff line Loading @@ -1552,9 +1552,10 @@ <&clock_gcc clk_gcc_mss_cfg_ahb_clk>, <&clock_gcc clk_gcc_mss_q6_bimc_axi_clk>, <&clock_gcc clk_gcc_boot_rom_ahb_clk>, <&clock_gcc clk_gpll0_out_msscc>; <&clock_gcc clk_gpll0_out_msscc>, <&clock_gcc clk_qpic_clk>; clock-names = "xo", "iface_clk", "bus_clk", "mem_clk", "gpll0_mss_clk"; "gpll0_mss_clk", "qpic"; qcom,proxy-clock-names = "xo"; qcom,active-clock-names = "iface_clk", "bus_clk", "mem_clk", "gpll0_mss_clk"; Loading drivers/soc/qcom/pil-q6v5.c +13 −0 Original line number Diff line number Diff line Loading @@ -101,6 +101,12 @@ int pil_q6v5_make_proxy_votes(struct pil_desc *pil) goto out; } ret = clk_prepare_enable(drv->qpic_clk); if (ret) { dev_err(pil->dev, "Failed to vote for qpic clk\n"); goto err_qpic_vote; } ret = clk_prepare_enable(drv->pnoc_clk); if (ret) { dev_err(pil->dev, "Failed to vote for pnoc\n"); Loading Loading @@ -152,6 +158,8 @@ err_cx_voltage: err_qdss_vote: clk_disable_unprepare(drv->pnoc_clk); err_pnoc_vote: clk_disable_unprepare(drv->qpic_clk); err_qpic_vote: clk_disable_unprepare(drv->xo); out: return ret; Loading @@ -177,6 +185,7 @@ void pil_q6v5_remove_proxy_votes(struct pil_desc *pil) regulator_set_optimum_mode(drv->vreg_cx, 0); regulator_set_voltage(drv->vreg_cx, RPM_REGULATOR_CORNER_NONE, INT_MAX); clk_disable_unprepare(drv->xo); clk_disable_unprepare(drv->qpic_clk); clk_disable_unprepare(drv->pnoc_clk); clk_disable_unprepare(drv->qdss_clk); } Loading Loading @@ -674,6 +683,10 @@ struct q6v5_data *pil_q6v5_init(struct platform_device *pdev) if (IS_ERR(drv->xo)) return ERR_CAST(drv->xo); drv->qpic_clk = devm_clk_get(&pdev->dev, "qpic"); if (IS_ERR(drv->qpic_clk)) drv->qpic_clk = NULL; if (of_property_read_bool(pdev->dev.of_node, "qcom,pnoc-clk-vote")) { drv->pnoc_clk = devm_clk_get(&pdev->dev, "pnoc_clk"); if (IS_ERR(drv->pnoc_clk)) Loading drivers/soc/qcom/pil-q6v5.h +1 −0 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ struct q6v5_data { struct clk *snoc_axi_clk; struct clk *mnoc_axi_clk; struct clk *qdss_clk; struct clk *qpic_clk; void __iomem *axi_halt_base; /* Halt base of q6, mss, nc are in same 4K page */ void __iomem *axi_halt_q6; Loading Loading
arch/arm/boot/dts/qcom/mdm9640.dtsi +3 −2 Original line number Diff line number Diff line Loading @@ -1552,9 +1552,10 @@ <&clock_gcc clk_gcc_mss_cfg_ahb_clk>, <&clock_gcc clk_gcc_mss_q6_bimc_axi_clk>, <&clock_gcc clk_gcc_boot_rom_ahb_clk>, <&clock_gcc clk_gpll0_out_msscc>; <&clock_gcc clk_gpll0_out_msscc>, <&clock_gcc clk_qpic_clk>; clock-names = "xo", "iface_clk", "bus_clk", "mem_clk", "gpll0_mss_clk"; "gpll0_mss_clk", "qpic"; qcom,proxy-clock-names = "xo"; qcom,active-clock-names = "iface_clk", "bus_clk", "mem_clk", "gpll0_mss_clk"; Loading
drivers/soc/qcom/pil-q6v5.c +13 −0 Original line number Diff line number Diff line Loading @@ -101,6 +101,12 @@ int pil_q6v5_make_proxy_votes(struct pil_desc *pil) goto out; } ret = clk_prepare_enable(drv->qpic_clk); if (ret) { dev_err(pil->dev, "Failed to vote for qpic clk\n"); goto err_qpic_vote; } ret = clk_prepare_enable(drv->pnoc_clk); if (ret) { dev_err(pil->dev, "Failed to vote for pnoc\n"); Loading Loading @@ -152,6 +158,8 @@ err_cx_voltage: err_qdss_vote: clk_disable_unprepare(drv->pnoc_clk); err_pnoc_vote: clk_disable_unprepare(drv->qpic_clk); err_qpic_vote: clk_disable_unprepare(drv->xo); out: return ret; Loading @@ -177,6 +185,7 @@ void pil_q6v5_remove_proxy_votes(struct pil_desc *pil) regulator_set_optimum_mode(drv->vreg_cx, 0); regulator_set_voltage(drv->vreg_cx, RPM_REGULATOR_CORNER_NONE, INT_MAX); clk_disable_unprepare(drv->xo); clk_disable_unprepare(drv->qpic_clk); clk_disable_unprepare(drv->pnoc_clk); clk_disable_unprepare(drv->qdss_clk); } Loading Loading @@ -674,6 +683,10 @@ struct q6v5_data *pil_q6v5_init(struct platform_device *pdev) if (IS_ERR(drv->xo)) return ERR_CAST(drv->xo); drv->qpic_clk = devm_clk_get(&pdev->dev, "qpic"); if (IS_ERR(drv->qpic_clk)) drv->qpic_clk = NULL; if (of_property_read_bool(pdev->dev.of_node, "qcom,pnoc-clk-vote")) { drv->pnoc_clk = devm_clk_get(&pdev->dev, "pnoc_clk"); if (IS_ERR(drv->pnoc_clk)) Loading
drivers/soc/qcom/pil-q6v5.h +1 −0 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ struct q6v5_data { struct clk *snoc_axi_clk; struct clk *mnoc_axi_clk; struct clk *qdss_clk; struct clk *qpic_clk; void __iomem *axi_halt_base; /* Halt base of q6, mss, nc are in same 4K page */ void __iomem *axi_halt_q6; Loading