Skip to content

Commit 75f486c

Browse files
committed
Merge branches 'clk-qcom-msm8998', 'clk-fractional-parent', 'clk-x86-mv' and 'clk-SA-fixes' into clk-next
- Updates for qcom MSM8998 GCC clks - qcom MSM8998 RPM managed clks - Random static analysis fixes for clk drivers * clk-qcom-msm8998: clk: qcom: Make common clk_hw registrations clk: qcom: smd: Add support for MSM8998 rpm clocks clk: qcom: Skip halt checks on gcc_usb3_phy_pipe_clk for 8998 clk: qcom: Add missing freq for usb30_master_clk on 8998 clk: qcom: Add CLK_SET_RATE_PARENT for 8998 branch clocks * clk-fractional-parent: clk: fractional-divider: check parent rate only if flag is set * clk-x86-mv: clk: x86: Move clk-lpss.h to platform_data/x86 * clk-SA-fixes: clk: mediatek: fix platform_no_drv_owner.cocci warnings clk: tegra: dfll: Fix debugfs_simple_attr.cocci warnings clk: qoriq: Improve an error message
5 parents 461ea6a + 760be65 + d13501a + a9443a6 + 8122966 commit 75f486c

File tree

20 files changed

+170
-68
lines changed

20 files changed

+170
-68
lines changed

Documentation/devicetree/bindings/clock/qcom,rpmcc.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ Required properties :
1616
"qcom,rpmcc-msm8974", "qcom,rpmcc"
1717
"qcom,rpmcc-apq8064", "qcom,rpmcc"
1818
"qcom,rpmcc-msm8996", "qcom,rpmcc"
19+
"qcom,rpmcc-msm8998", "qcom,rpmcc"
1920
"qcom,rpmcc-qcs404", "qcom,rpmcc"
2021

2122
- #clock-cells : shall contain 1

drivers/acpi/acpi_lpss.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
#include <linux/mutex.h>
1919
#include <linux/pci.h>
2020
#include <linux/platform_device.h>
21-
#include <linux/platform_data/clk-lpss.h>
21+
#include <linux/platform_data/x86/clk-lpss.h>
2222
#include <linux/platform_data/x86/pmc_atom.h>
2323
#include <linux/pm_domain.h>
2424
#include <linux/pm_runtime.h>

drivers/clk/clk-fractional-divider.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ static long clk_fd_round_rate(struct clk_hw *hw, unsigned long rate,
7979
unsigned long m, n;
8080
u64 ret;
8181

82-
if (!rate || rate >= *parent_rate)
82+
if (!rate || (!clk_hw_can_set_rate_parent(hw) && rate >= *parent_rate))
8383
return *parent_rate;
8484

8585
if (fd->approximation)

drivers/clk/clk-qoriq.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1148,8 +1148,8 @@ static void __init create_one_pll(struct clockgen *cg, int idx)
11481148
pll->div[i].clk = clk;
11491149
ret = clk_register_clkdev(clk, pll->div[i].name, NULL);
11501150
if (ret != 0)
1151-
pr_err("%s: %s: register to lookup table failed %ld\n",
1152-
__func__, pll->div[i].name, PTR_ERR(clk));
1151+
pr_err("%s: %s: register to lookup table failed %d\n",
1152+
__func__, pll->div[i].name, ret);
11531153

11541154
}
11551155
}

drivers/clk/mediatek/clk-mt2712.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1463,7 +1463,6 @@ static struct platform_driver clk_mt2712_drv = {
14631463
.probe = clk_mt2712_probe,
14641464
.driver = {
14651465
.name = "clk-mt2712",
1466-
.owner = THIS_MODULE,
14671466
.of_match_table = of_match_clk_mt2712,
14681467
},
14691468
};

drivers/clk/qcom/clk-smd-rpm.c

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -655,10 +655,73 @@ static const struct rpm_smd_clk_desc rpm_clk_qcs404 = {
655655
.num_clks = ARRAY_SIZE(qcs404_clks),
656656
};
657657

658+
/* msm8998 */
659+
DEFINE_CLK_SMD_RPM(msm8998, snoc_clk, snoc_a_clk, QCOM_SMD_RPM_BUS_CLK, 1);
660+
DEFINE_CLK_SMD_RPM(msm8998, cnoc_clk, cnoc_a_clk, QCOM_SMD_RPM_BUS_CLK, 2);
661+
DEFINE_CLK_SMD_RPM(msm8998, ce1_clk, ce1_a_clk, QCOM_SMD_RPM_CE_CLK, 0);
662+
DEFINE_CLK_SMD_RPM_XO_BUFFER(msm8998, div_clk1, div_clk1_a, 0xb);
663+
DEFINE_CLK_SMD_RPM(msm8998, ipa_clk, ipa_a_clk, QCOM_SMD_RPM_IPA_CLK, 0);
664+
DEFINE_CLK_SMD_RPM_XO_BUFFER(msm8998, ln_bb_clk1, ln_bb_clk1_a, 1);
665+
DEFINE_CLK_SMD_RPM_XO_BUFFER(msm8998, ln_bb_clk2, ln_bb_clk2_a, 2);
666+
DEFINE_CLK_SMD_RPM_XO_BUFFER_PINCTRL(msm8998, ln_bb_clk3_pin, ln_bb_clk3_a_pin,
667+
3);
668+
DEFINE_CLK_SMD_RPM(msm8998, mmssnoc_axi_rpm_clk, mmssnoc_axi_rpm_a_clk,
669+
QCOM_SMD_RPM_MMAXI_CLK, 0);
670+
DEFINE_CLK_SMD_RPM(msm8998, aggre1_noc_clk, aggre1_noc_a_clk,
671+
QCOM_SMD_RPM_AGGR_CLK, 1);
672+
DEFINE_CLK_SMD_RPM(msm8998, aggre2_noc_clk, aggre2_noc_a_clk,
673+
QCOM_SMD_RPM_AGGR_CLK, 2);
674+
DEFINE_CLK_SMD_RPM_QDSS(msm8998, qdss_clk, qdss_a_clk,
675+
QCOM_SMD_RPM_MISC_CLK, 1);
676+
DEFINE_CLK_SMD_RPM_XO_BUFFER(msm8998, rf_clk1, rf_clk1_a, 4);
677+
DEFINE_CLK_SMD_RPM_XO_BUFFER_PINCTRL(msm8998, rf_clk2_pin, rf_clk2_a_pin, 5);
678+
DEFINE_CLK_SMD_RPM_XO_BUFFER(msm8998, rf_clk3, rf_clk3_a, 6);
679+
DEFINE_CLK_SMD_RPM_XO_BUFFER_PINCTRL(msm8998, rf_clk3_pin, rf_clk3_a_pin, 6);
680+
static struct clk_smd_rpm *msm8998_clks[] = {
681+
[RPM_SMD_SNOC_CLK] = &msm8998_snoc_clk,
682+
[RPM_SMD_SNOC_A_CLK] = &msm8998_snoc_a_clk,
683+
[RPM_SMD_CNOC_CLK] = &msm8998_cnoc_clk,
684+
[RPM_SMD_CNOC_A_CLK] = &msm8998_cnoc_a_clk,
685+
[RPM_SMD_CE1_CLK] = &msm8998_ce1_clk,
686+
[RPM_SMD_CE1_A_CLK] = &msm8998_ce1_a_clk,
687+
[RPM_SMD_DIV_CLK1] = &msm8998_div_clk1,
688+
[RPM_SMD_DIV_A_CLK1] = &msm8998_div_clk1_a,
689+
[RPM_SMD_IPA_CLK] = &msm8998_ipa_clk,
690+
[RPM_SMD_IPA_A_CLK] = &msm8998_ipa_a_clk,
691+
[RPM_SMD_LN_BB_CLK1] = &msm8998_ln_bb_clk1,
692+
[RPM_SMD_LN_BB_CLK1_A] = &msm8998_ln_bb_clk1_a,
693+
[RPM_SMD_LN_BB_CLK2] = &msm8998_ln_bb_clk2,
694+
[RPM_SMD_LN_BB_CLK2_A] = &msm8998_ln_bb_clk2_a,
695+
[RPM_SMD_LN_BB_CLK3_PIN] = &msm8998_ln_bb_clk3_pin,
696+
[RPM_SMD_LN_BB_CLK3_A_PIN] = &msm8998_ln_bb_clk3_a_pin,
697+
[RPM_SMD_MMAXI_CLK] = &msm8998_mmssnoc_axi_rpm_clk,
698+
[RPM_SMD_MMAXI_A_CLK] = &msm8998_mmssnoc_axi_rpm_a_clk,
699+
[RPM_SMD_AGGR1_NOC_CLK] = &msm8998_aggre1_noc_clk,
700+
[RPM_SMD_AGGR1_NOC_A_CLK] = &msm8998_aggre1_noc_a_clk,
701+
[RPM_SMD_AGGR2_NOC_CLK] = &msm8998_aggre2_noc_clk,
702+
[RPM_SMD_AGGR2_NOC_A_CLK] = &msm8998_aggre2_noc_a_clk,
703+
[RPM_SMD_QDSS_CLK] = &msm8998_qdss_clk,
704+
[RPM_SMD_QDSS_A_CLK] = &msm8998_qdss_a_clk,
705+
[RPM_SMD_RF_CLK1] = &msm8998_rf_clk1,
706+
[RPM_SMD_RF_CLK1_A] = &msm8998_rf_clk1_a,
707+
[RPM_SMD_RF_CLK2_PIN] = &msm8998_rf_clk2_pin,
708+
[RPM_SMD_RF_CLK2_A_PIN] = &msm8998_rf_clk2_a_pin,
709+
[RPM_SMD_RF_CLK3] = &msm8998_rf_clk3,
710+
[RPM_SMD_RF_CLK3_A] = &msm8998_rf_clk3_a,
711+
[RPM_SMD_RF_CLK3_PIN] = &msm8998_rf_clk3_pin,
712+
[RPM_SMD_RF_CLK3_A_PIN] = &msm8998_rf_clk3_a_pin,
713+
};
714+
715+
static const struct rpm_smd_clk_desc rpm_clk_msm8998 = {
716+
.clks = msm8998_clks,
717+
.num_clks = ARRAY_SIZE(msm8998_clks),
718+
};
719+
658720
static const struct of_device_id rpm_smd_clk_match_table[] = {
659721
{ .compatible = "qcom,rpmcc-msm8916", .data = &rpm_clk_msm8916 },
660722
{ .compatible = "qcom,rpmcc-msm8974", .data = &rpm_clk_msm8974 },
661723
{ .compatible = "qcom,rpmcc-msm8996", .data = &rpm_clk_msm8996 },
724+
{ .compatible = "qcom,rpmcc-msm8998", .data = &rpm_clk_msm8998 },
662725
{ .compatible = "qcom,rpmcc-qcs404", .data = &rpm_clk_qcs404 },
663726
{ }
664727
};

drivers/clk/qcom/common.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,8 @@ int qcom_cc_really_probe(struct platform_device *pdev,
231231
struct gdsc_desc *scd;
232232
size_t num_clks = desc->num_clks;
233233
struct clk_regmap **rclks = desc->clks;
234+
size_t num_clk_hws = desc->num_clk_hws;
235+
struct clk_hw **clk_hws = desc->clk_hws;
234236

235237
cc = devm_kzalloc(dev, sizeof(*cc), GFP_KERNEL);
236238
if (!cc)
@@ -269,6 +271,12 @@ int qcom_cc_really_probe(struct platform_device *pdev,
269271

270272
qcom_cc_drop_protected(dev, cc);
271273

274+
for (i = 0; i < num_clk_hws; i++) {
275+
ret = devm_clk_hw_register(dev, clk_hws[i]);
276+
if (ret)
277+
return ret;
278+
}
279+
272280
for (i = 0; i < num_clks; i++) {
273281
if (!rclks[i])
274282
continue;

drivers/clk/qcom/common.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ struct qcom_cc_desc {
2727
size_t num_resets;
2828
struct gdsc **gdscs;
2929
size_t num_gdscs;
30+
struct clk_hw **clk_hws;
31+
size_t num_clk_hws;
3032
};
3133

3234
/**

drivers/clk/qcom/gcc-ipq8074.c

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4715,18 +4715,12 @@ static const struct qcom_cc_desc gcc_ipq8074_desc = {
47154715
.num_clks = ARRAY_SIZE(gcc_ipq8074_clks),
47164716
.resets = gcc_ipq8074_resets,
47174717
.num_resets = ARRAY_SIZE(gcc_ipq8074_resets),
4718+
.clk_hws = gcc_ipq8074_hws,
4719+
.num_clk_hws = ARRAY_SIZE(gcc_ipq8074_hws),
47184720
};
47194721

47204722
static int gcc_ipq8074_probe(struct platform_device *pdev)
47214723
{
4722-
int ret, i;
4723-
4724-
for (i = 0; i < ARRAY_SIZE(gcc_ipq8074_hws); i++) {
4725-
ret = devm_clk_hw_register(&pdev->dev, gcc_ipq8074_hws[i]);
4726-
if (ret)
4727-
return ret;
4728-
}
4729-
47304724
return qcom_cc_probe(pdev, &gcc_ipq8074_desc);
47314725
}
47324726

drivers/clk/qcom/gcc-mdm9615.c

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1702,6 +1702,8 @@ static const struct qcom_cc_desc gcc_mdm9615_desc = {
17021702
.num_clks = ARRAY_SIZE(gcc_mdm9615_clks),
17031703
.resets = gcc_mdm9615_resets,
17041704
.num_resets = ARRAY_SIZE(gcc_mdm9615_resets),
1705+
.clk_hws = gcc_mdm9615_hws,
1706+
.num_clk_hws = ARRAY_SIZE(gcc_mdm9615_hws),
17051707
};
17061708

17071709
static const struct of_device_id gcc_mdm9615_match_table[] = {
@@ -1712,21 +1714,12 @@ MODULE_DEVICE_TABLE(of, gcc_mdm9615_match_table);
17121714

17131715
static int gcc_mdm9615_probe(struct platform_device *pdev)
17141716
{
1715-
struct device *dev = &pdev->dev;
17161717
struct regmap *regmap;
1717-
int ret;
1718-
int i;
17191718

17201719
regmap = qcom_cc_map(pdev, &gcc_mdm9615_desc);
17211720
if (IS_ERR(regmap))
17221721
return PTR_ERR(regmap);
17231722

1724-
for (i = 0; i < ARRAY_SIZE(gcc_mdm9615_hws); i++) {
1725-
ret = devm_clk_hw_register(dev, gcc_mdm9615_hws[i]);
1726-
if (ret)
1727-
return ret;
1728-
}
1729-
17301723
return qcom_cc_really_probe(pdev, &gcc_mdm9615_desc, regmap);
17311724
}
17321725

drivers/clk/qcom/gcc-msm8996.c

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3656,6 +3656,8 @@ static const struct qcom_cc_desc gcc_msm8996_desc = {
36563656
.num_resets = ARRAY_SIZE(gcc_msm8996_resets),
36573657
.gdscs = gcc_msm8996_gdscs,
36583658
.num_gdscs = ARRAY_SIZE(gcc_msm8996_gdscs),
3659+
.clk_hws = gcc_msm8996_hws,
3660+
.num_clk_hws = ARRAY_SIZE(gcc_msm8996_hws),
36593661
};
36603662

36613663
static const struct of_device_id gcc_msm8996_match_table[] = {
@@ -3666,8 +3668,6 @@ MODULE_DEVICE_TABLE(of, gcc_msm8996_match_table);
36663668

36673669
static int gcc_msm8996_probe(struct platform_device *pdev)
36683670
{
3669-
struct device *dev = &pdev->dev;
3670-
int i, ret;
36713671
struct regmap *regmap;
36723672

36733673
regmap = qcom_cc_map(pdev, &gcc_msm8996_desc);
@@ -3680,12 +3680,6 @@ static int gcc_msm8996_probe(struct platform_device *pdev)
36803680
*/
36813681
regmap_update_bits(regmap, 0x52008, BIT(21), BIT(21));
36823682

3683-
for (i = 0; i < ARRAY_SIZE(gcc_msm8996_hws); i++) {
3684-
ret = devm_clk_hw_register(dev, gcc_msm8996_hws[i]);
3685-
if (ret)
3686-
return ret;
3687-
}
3688-
36893683
return qcom_cc_really_probe(pdev, &gcc_msm8996_desc, regmap);
36903684
}
36913685

0 commit comments

Comments
 (0)