Message ID | 20240820055705.3922754-1-quic_varada@quicinc.com |
---|---|
Headers | show |
Series | Enable CPR for IPQ9574 | expand |
Quoting Varadarajan Narayanan (2024-08-19 22:57:03) > diff --git a/drivers/clk/qcom/gcc-ipq9574.c b/drivers/clk/qcom/gcc-ipq9574.c > index 80fc94d705a0..058cde71b202 100644 > --- a/drivers/clk/qcom/gcc-ipq9574.c > +++ b/drivers/clk/qcom/gcc-ipq9574.c > @@ -3997,6 +3997,43 @@ static struct clk_branch gcc_xo_div4_clk = { > }, > }; > > +static const struct freq_tbl ftbl_hmss_rbcpr_clk_src[] = { > + F(24000000, P_XO, 1, 0, 0), > + { } > +}; > + > +static struct clk_rcg2 rbcpr_clk_src = { > + .cmd_rcgr = 0x48044, > + .mnd_width = 0, > + .hid_width = 5, > + .parent_map = gcc_xo_map, > + .freq_tbl = ftbl_gp1_clk_src, > + .clkr.hw.init = &(struct clk_init_data){ Please mark these clk_init_data structures as const. > + .name = "rbcpr_clk_src", > + .parent_data = gcc_xo_gpll0_gpll4,
On Tue, Aug 20, 2024 at 11:27:04AM GMT, Varadarajan Narayanan wrote: > From: Praveenkumar I <quic_ipkumar@quicinc.com> > > * Add thread, scaling factor, CPR descriptor defines to enable > CPR on IPQ9574. > > * Skip 'acc' usage since IPQ9574 does not have acc > > Signed-off-by: Praveenkumar I <quic_ipkumar@quicinc.com> > Signed-off-by: Varadarajan Narayanan <quic_varada@quicinc.com> > --- > v7: Add rangeuV vaues > Fix IRQ handler 'argument' > > v6: Rebase on top of Konrad's v15 > - https://lore.kernel.org/lkml/20240708-topic-cpr3h-v15-0-5bc8b8936489@linaro.org/T/ > > v5: Move the 'acc_desc' usage check to first patch > > v4: s/silver//, s/cprh/cpr4/ > Skip 'acc' related code as IPQ9574 does not have acc > > v3: Fix patch author > Included below information in cover letter > v2: Fix Signed-off-by order > Depends: > [1] https://lore.kernel.org/lkml/20230217-topic-cpr3h-v14-0-9fd23241493d@linaro.org/T/ > [2] https://github.com/quic-varada/cpr/commits/konrad/ > --- > drivers/pmdomain/qcom/cpr3.c | 142 ++++++++++++++++++++++++++++++++++- > 1 file changed, 140 insertions(+), 2 deletions(-) > > diff --git a/drivers/pmdomain/qcom/cpr3.c b/drivers/pmdomain/qcom/cpr3.c > index d594bc79be1c..51c8b5766ccd 100644 > --- a/drivers/pmdomain/qcom/cpr3.c > +++ b/drivers/pmdomain/qcom/cpr3.c > @@ -2461,7 +2597,7 @@ static int cpr_thread_init(struct cpr_drv *drv, int tid) > NULL, cpr_irq_handler, > IRQF_ONESHOT | > IRQF_TRIGGER_RISING, > - "cpr", drv); > + "cpr", thread); Unrelated change => separate patch. LGTM otherwise. > if (ret) > goto fail; > } > @@ -2544,7 +2680,8 @@ static int cpr_probe(struct platform_device *pdev) > desc = data->cpr_desc; > > /* CPRh disallows MEM-ACC access from the HLOS */ > - if (!(data->acc_desc || desc->cpr_type == CTRL_TYPE_CPRH)) > + if (!(data->acc_desc || desc->cpr_type == CTRL_TYPE_CPRH || > + of_device_is_compatible(dev->of_node, "qcom,ipq9574-cpr4"))) > return dev_err_probe(dev, -EINVAL, "Invalid ACC data\n"); > > drv = devm_kzalloc(dev, sizeof(*drv), GFP_KERNEL); > @@ -2694,6 +2831,7 @@ static void cpr_remove(struct platform_device *pdev) > } > > static const struct of_device_id cpr3_match_table[] = { > + { .compatible = "qcom,ipq9574-cpr4", .data = &ipq9574_cpr_acc_desc }, > { .compatible = "qcom,msm8998-cprh", .data = &msm8998_cpr_acc_desc }, > { .compatible = "qcom,sdm630-cprh", .data = &sdm630_cpr_acc_desc }, > { } > -- > 2.34.1 >