On Tue, Aug 20, 2024 at 11:27:04AM GMT, Varadarajan Narayanan wrote: > From: Praveenkumar I <quic_ipkumar@xxxxxxxxxxx> > > * 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@xxxxxxxxxxx> > Signed-off-by: Varadarajan Narayanan <quic_varada@xxxxxxxxxxx> > --- > 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@xxxxxxxxxx/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@xxxxxxxxxx/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 > -- With best wishes Dmitry