Message ID | 1588573224-3038-8-git-send-email-sivaprak@codeaurora.org |
---|---|
State | Superseded |
Headers | show |
Series | None | expand |
On Sun 03 May 23:20 PDT 2020, Sivaprakash Murugesan wrote: > The Qualcomm ipq6018 has apcs block, add compatible for the same. > Also, the apcs provides a clock controller functionality similar > to msm8916 but the clock driver is different. > > Create a child platform device based on the apcs compatible for the > clock controller functionality. > > Signed-off-by: Sivaprakash Murugesan <sivaprak@codeaurora.org> > --- > drivers/mailbox/qcom-apcs-ipc-mailbox.c | 26 +++++++++++++++++--------- > 1 file changed, 17 insertions(+), 9 deletions(-) > > diff --git a/drivers/mailbox/qcom-apcs-ipc-mailbox.c b/drivers/mailbox/qcom-apcs-ipc-mailbox.c > index eeebafd..7c0c4b0 100644 > --- a/drivers/mailbox/qcom-apcs-ipc-mailbox.c > +++ b/drivers/mailbox/qcom-apcs-ipc-mailbox.c > @@ -45,6 +45,16 @@ static const struct mbox_chan_ops qcom_apcs_ipc_ops = { > .send_data = qcom_apcs_ipc_send_data, > }; > > +static const struct of_device_id apcs_clk_match_table[] = { > + { .compatible = "qcom,msm8916-apcs-kpss-global", > + .data = "qcom-apcs-msm8916-clk", }, These are easier to read if you ignore the 80-char limit. Unless Jassi's object that is. > + { .compatible = "qcom,qcs404-apcs-apps-global", > + .data = "qcom-apcs-msm8916-clk", }, > + { .compatible = "qcom,ipq6018-apcs-apps-global", Add your entry on top, to maintain sort order. > + .data = "qcom,apss-ipq-clk", }, > + {} > +}; > + > static int qcom_apcs_ipc_probe(struct platform_device *pdev) > { > struct qcom_apcs_ipc *apcs; > @@ -54,11 +64,7 @@ static int qcom_apcs_ipc_probe(struct platform_device *pdev) > void __iomem *base; > unsigned long i; > int ret; > - const struct of_device_id apcs_clk_match_table[] = { > - { .compatible = "qcom,msm8916-apcs-kpss-global", }, > - { .compatible = "qcom,qcs404-apcs-apps-global", }, > - {} > - }; > + const struct of_device_id *clk_device; > > apcs = devm_kzalloc(&pdev->dev, sizeof(*apcs), GFP_KERNEL); > if (!apcs) > @@ -93,11 +99,12 @@ static int qcom_apcs_ipc_probe(struct platform_device *pdev) > return ret; > } > > - if (of_match_device(apcs_clk_match_table, &pdev->dev)) { > + clk_device = of_match_device(apcs_clk_match_table, &pdev->dev); Better use of_device_match_data() and get the string directly (or NULL). > + if (clk_device) { > apcs->clk = platform_device_register_data(&pdev->dev, > - "qcom-apcs-msm8916-clk", > - PLATFORM_DEVID_NONE, > - NULL, 0); > + (const char *)clk_device->data, > + PLATFORM_DEVID_NONE, > + NULL, 0); I didn't apply the patch to look for myself, but please ensure to maintain indentation to follow the parenthesis on the line before. > if (IS_ERR(apcs->clk)) > dev_err(&pdev->dev, "failed to register APCS clk\n"); > } > @@ -127,6 +134,7 @@ static const struct of_device_id qcom_apcs_ipc_of_match[] = { > { .compatible = "qcom,sdm845-apss-shared", .data = (void *)12 }, > { .compatible = "qcom,sm8150-apss-shared", .data = (void *)12 }, > { .compatible = "qcom,ipq8074-apcs-apps-global", .data = (void *)8 }, > + { .compatible = "qcom,ipq6018-apcs-apps-global", .data = (void *)8 }, Add it one line up and you'll maintain partial sorting... Regards, Bjorn > {} > }; > MODULE_DEVICE_TABLE(of, qcom_apcs_ipc_of_match); > -- > 2.7.4 >
Hi Bjorn, On 5/13/2020 1:49 AM, Bjorn Andersson wrote: > On Sun 03 May 23:20 PDT 2020, Sivaprakash Murugesan wrote: > >> The Qualcomm ipq6018 has apcs block, add compatible for the same. >> Also, the apcs provides a clock controller functionality similar >> to msm8916 but the clock driver is different. >> >> Create a child platform device based on the apcs compatible for the >> clock controller functionality. >> >> Signed-off-by: Sivaprakash Murugesan <sivaprak@codeaurora.org> >> --- >> drivers/mailbox/qcom-apcs-ipc-mailbox.c | 26 +++++++++++++++++--------- >> 1 file changed, 17 insertions(+), 9 deletions(-) >> >> diff --git a/drivers/mailbox/qcom-apcs-ipc-mailbox.c b/drivers/mailbox/qcom-apcs-ipc-mailbox.c >> index eeebafd..7c0c4b0 100644 >> --- a/drivers/mailbox/qcom-apcs-ipc-mailbox.c >> +++ b/drivers/mailbox/qcom-apcs-ipc-mailbox.c >> @@ -45,6 +45,16 @@ static const struct mbox_chan_ops qcom_apcs_ipc_ops = { >> .send_data = qcom_apcs_ipc_send_data, >> }; >> >> +static const struct of_device_id apcs_clk_match_table[] = { >> + { .compatible = "qcom,msm8916-apcs-kpss-global", >> + .data = "qcom-apcs-msm8916-clk", }, > These are easier to read if you ignore the 80-char limit. > Unless Jassi's object that is. since Jassi has not objected your comment, I am making the change as per your suggestion. > >> + { .compatible = "qcom,qcs404-apcs-apps-global", >> + .data = "qcom-apcs-msm8916-clk", }, >> + { .compatible = "qcom,ipq6018-apcs-apps-global", > Add your entry on top, to maintain sort order. ok. > >> + .data = "qcom,apss-ipq-clk", }, >> + {} >> +}; >> + >> static int qcom_apcs_ipc_probe(struct platform_device *pdev) >> { >> struct qcom_apcs_ipc *apcs; >> @@ -54,11 +64,7 @@ static int qcom_apcs_ipc_probe(struct platform_device *pdev) >> void __iomem *base; >> unsigned long i; >> int ret; >> - const struct of_device_id apcs_clk_match_table[] = { >> - { .compatible = "qcom,msm8916-apcs-kpss-global", }, >> - { .compatible = "qcom,qcs404-apcs-apps-global", }, >> - {} >> - }; >> + const struct of_device_id *clk_device; >> >> apcs = devm_kzalloc(&pdev->dev, sizeof(*apcs), GFP_KERNEL); >> if (!apcs) >> @@ -93,11 +99,12 @@ static int qcom_apcs_ipc_probe(struct platform_device *pdev) >> return ret; >> } >> >> - if (of_match_device(apcs_clk_match_table, &pdev->dev)) { >> + clk_device = of_match_device(apcs_clk_match_table, &pdev->dev); > Better use of_device_match_data() and get the string directly (or NULL). As I checked there is no API called of_device_match_data(), the API of_device_get_match_data() returns the data associated with the device and it cannot be used here. please correct me if wrong. > >> + if (clk_device) { >> apcs->clk = platform_device_register_data(&pdev->dev, >> - "qcom-apcs-msm8916-clk", >> - PLATFORM_DEVID_NONE, >> - NULL, 0); >> + (const char *)clk_device->data, >> + PLATFORM_DEVID_NONE, >> + NULL, 0); > I didn't apply the patch to look for myself, but please ensure to > maintain indentation to follow the parenthesis on the line before. ok. > >> if (IS_ERR(apcs->clk)) >> dev_err(&pdev->dev, "failed to register APCS clk\n"); >> } >> @@ -127,6 +134,7 @@ static const struct of_device_id qcom_apcs_ipc_of_match[] = { >> { .compatible = "qcom,sdm845-apss-shared", .data = (void *)12 }, >> { .compatible = "qcom,sm8150-apss-shared", .data = (void *)12 }, >> { .compatible = "qcom,ipq8074-apcs-apps-global", .data = (void *)8 }, >> + { .compatible = "qcom,ipq6018-apcs-apps-global", .data = (void *)8 }, > Add it one line up and you'll maintain partial sorting... ok.
diff --git a/drivers/mailbox/qcom-apcs-ipc-mailbox.c b/drivers/mailbox/qcom-apcs-ipc-mailbox.c index eeebafd..7c0c4b0 100644 --- a/drivers/mailbox/qcom-apcs-ipc-mailbox.c +++ b/drivers/mailbox/qcom-apcs-ipc-mailbox.c @@ -45,6 +45,16 @@ static const struct mbox_chan_ops qcom_apcs_ipc_ops = { .send_data = qcom_apcs_ipc_send_data, }; +static const struct of_device_id apcs_clk_match_table[] = { + { .compatible = "qcom,msm8916-apcs-kpss-global", + .data = "qcom-apcs-msm8916-clk", }, + { .compatible = "qcom,qcs404-apcs-apps-global", + .data = "qcom-apcs-msm8916-clk", }, + { .compatible = "qcom,ipq6018-apcs-apps-global", + .data = "qcom,apss-ipq-clk", }, + {} +}; + static int qcom_apcs_ipc_probe(struct platform_device *pdev) { struct qcom_apcs_ipc *apcs; @@ -54,11 +64,7 @@ static int qcom_apcs_ipc_probe(struct platform_device *pdev) void __iomem *base; unsigned long i; int ret; - const struct of_device_id apcs_clk_match_table[] = { - { .compatible = "qcom,msm8916-apcs-kpss-global", }, - { .compatible = "qcom,qcs404-apcs-apps-global", }, - {} - }; + const struct of_device_id *clk_device; apcs = devm_kzalloc(&pdev->dev, sizeof(*apcs), GFP_KERNEL); if (!apcs) @@ -93,11 +99,12 @@ static int qcom_apcs_ipc_probe(struct platform_device *pdev) return ret; } - if (of_match_device(apcs_clk_match_table, &pdev->dev)) { + clk_device = of_match_device(apcs_clk_match_table, &pdev->dev); + if (clk_device) { apcs->clk = platform_device_register_data(&pdev->dev, - "qcom-apcs-msm8916-clk", - PLATFORM_DEVID_NONE, - NULL, 0); + (const char *)clk_device->data, + PLATFORM_DEVID_NONE, + NULL, 0); if (IS_ERR(apcs->clk)) dev_err(&pdev->dev, "failed to register APCS clk\n"); } @@ -127,6 +134,7 @@ static const struct of_device_id qcom_apcs_ipc_of_match[] = { { .compatible = "qcom,sdm845-apss-shared", .data = (void *)12 }, { .compatible = "qcom,sm8150-apss-shared", .data = (void *)12 }, { .compatible = "qcom,ipq8074-apcs-apps-global", .data = (void *)8 }, + { .compatible = "qcom,ipq6018-apcs-apps-global", .data = (void *)8 }, {} }; MODULE_DEVICE_TABLE(of, qcom_apcs_ipc_of_match);
The Qualcomm ipq6018 has apcs block, add compatible for the same. Also, the apcs provides a clock controller functionality similar to msm8916 but the clock driver is different. Create a child platform device based on the apcs compatible for the clock controller functionality. Signed-off-by: Sivaprakash Murugesan <sivaprak@codeaurora.org> --- drivers/mailbox/qcom-apcs-ipc-mailbox.c | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-)