Message ID | 20210503081334.17143-3-shawn.guo@linaro.org |
---|---|
State | New |
Headers | show |
Series | Add MSM8939 APCS support | expand |
On Mon, May 03, 2021 at 04:13:34PM +0800, Shawn Guo wrote: > MSM8939 has 3 APCS instances for Cluster0 (little cores), Cluster1 (big > cores) and CCI (Cache Coherent Interconnect). Although only APCS of > Cluster0 and Cluster1 have IPC bits, each of 3 APCS has A53PLL clock > control bits. That said, we need to register 3 'qcom-apcs-msm8916-clk' > devices to instantiate all 3 clocks. Let's use PLATFORM_DEVID_AUTO > rather than PLATFORM_DEVID_NONE for platform_device_register_data() > call. Otherwise, the second A53PLL clock registration will fail due > to duplicate device name. > > [ 0.519657] sysfs: cannot create duplicate filename '/bus/platform/devices/qcom-apcs-msm8916-clk' > ... > [ 0.661158] qcom_apcs_ipc b111000.mailbox: failed to register APCS clk > > Signed-off-by: Shawn Guo <shawn.guo@linaro.org> > Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org> Hi Jassi, Any comment on this patch? Shawn > --- > drivers/mailbox/qcom-apcs-ipc-mailbox.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/mailbox/qcom-apcs-ipc-mailbox.c b/drivers/mailbox/qcom-apcs-ipc-mailbox.c > index f25324d03842..1699ec38bc3b 100644 > --- a/drivers/mailbox/qcom-apcs-ipc-mailbox.c > +++ b/drivers/mailbox/qcom-apcs-ipc-mailbox.c > @@ -132,7 +132,7 @@ static int qcom_apcs_ipc_probe(struct platform_device *pdev) > if (apcs_data->clk_name) { > apcs->clk = platform_device_register_data(&pdev->dev, > apcs_data->clk_name, > - PLATFORM_DEVID_NONE, > + PLATFORM_DEVID_AUTO, > NULL, 0); > if (IS_ERR(apcs->clk)) > dev_err(&pdev->dev, "failed to register APCS clk\n"); > @@ -158,6 +158,7 @@ static const struct of_device_id qcom_apcs_ipc_of_match[] = { > { .compatible = "qcom,ipq6018-apcs-apps-global", .data = &ipq6018_apcs_data }, > { .compatible = "qcom,ipq8074-apcs-apps-global", .data = &ipq8074_apcs_data }, > { .compatible = "qcom,msm8916-apcs-kpss-global", .data = &msm8916_apcs_data }, > + { .compatible = "qcom,msm8939-apcs-kpss-global", .data = &msm8916_apcs_data }, > { .compatible = "qcom,msm8994-apcs-kpss-global", .data = &msm8994_apcs_data }, > { .compatible = "qcom,msm8996-apcs-hmss-global", .data = &msm8996_apcs_data }, > { .compatible = "qcom,msm8998-apcs-hmss-global", .data = &msm8998_apcs_data }, > -- > 2.17.1 >
On Sun, May 23, 2021 at 1:00 AM Shawn Guo <shawn.guo@linaro.org> wrote: > > On Mon, May 03, 2021 at 04:13:34PM +0800, Shawn Guo wrote: > > MSM8939 has 3 APCS instances for Cluster0 (little cores), Cluster1 (big > > cores) and CCI (Cache Coherent Interconnect). Although only APCS of > > Cluster0 and Cluster1 have IPC bits, each of 3 APCS has A53PLL clock > > control bits. That said, we need to register 3 'qcom-apcs-msm8916-clk' > > devices to instantiate all 3 clocks. Let's use PLATFORM_DEVID_AUTO > > rather than PLATFORM_DEVID_NONE for platform_device_register_data() > > call. Otherwise, the second A53PLL clock registration will fail due > > to duplicate device name. > > > > [ 0.519657] sysfs: cannot create duplicate filename '/bus/platform/devices/qcom-apcs-msm8916-clk' > > ... > > [ 0.661158] qcom_apcs_ipc b111000.mailbox: failed to register APCS clk > > > > Signed-off-by: Shawn Guo <shawn.guo@linaro.org> > > Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org> > > Hi Jassi, > > Any comment on this patch? > 1) I was not on the CC list, so I don't have this patch in my mbox. 2) Shouldn't this patch be broken into a fix and an enablement patch? cheers.
On Sun, Jun 20, 2021 at 11:27:49PM -0500, Jassi Brar wrote: > On Sun, May 23, 2021 at 1:00 AM Shawn Guo <shawn.guo@linaro.org> wrote: > > > > On Mon, May 03, 2021 at 04:13:34PM +0800, Shawn Guo wrote: > > > MSM8939 has 3 APCS instances for Cluster0 (little cores), Cluster1 (big > > > cores) and CCI (Cache Coherent Interconnect). Although only APCS of > > > Cluster0 and Cluster1 have IPC bits, each of 3 APCS has A53PLL clock > > > control bits. That said, we need to register 3 'qcom-apcs-msm8916-clk' > > > devices to instantiate all 3 clocks. Let's use PLATFORM_DEVID_AUTO > > > rather than PLATFORM_DEVID_NONE for platform_device_register_data() > > > call. Otherwise, the second A53PLL clock registration will fail due > > > to duplicate device name. > > > > > > [ 0.519657] sysfs: cannot create duplicate filename '/bus/platform/devices/qcom-apcs-msm8916-clk' > > > ... > > > [ 0.661158] qcom_apcs_ipc b111000.mailbox: failed to register APCS clk > > > > > > Signed-off-by: Shawn Guo <shawn.guo@linaro.org> > > > Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org> > > > > Hi Jassi, > > > > Any comment on this patch? > > > 1) I was not on the CC list, so I don't have this patch in my mbox. That's strange. The patch series was sent with your address <jassisinghbrar@gmail.com> on "To:" field. And that can be seen on patch archive [1]. > 2) Shouldn't this patch be broken into a fix and an enablement patch? MSM8939 is the only platform that I know has multiple clusters and uses APCS driver. So the change becomes a fix only when MSM8939 is enabled. But if you prefer to separate the change, I will do so. Shawn [1] https://lore.kernel.org/patchwork/patch/1420808/
diff --git a/drivers/mailbox/qcom-apcs-ipc-mailbox.c b/drivers/mailbox/qcom-apcs-ipc-mailbox.c index f25324d03842..1699ec38bc3b 100644 --- a/drivers/mailbox/qcom-apcs-ipc-mailbox.c +++ b/drivers/mailbox/qcom-apcs-ipc-mailbox.c @@ -132,7 +132,7 @@ static int qcom_apcs_ipc_probe(struct platform_device *pdev) if (apcs_data->clk_name) { apcs->clk = platform_device_register_data(&pdev->dev, apcs_data->clk_name, - PLATFORM_DEVID_NONE, + PLATFORM_DEVID_AUTO, NULL, 0); if (IS_ERR(apcs->clk)) dev_err(&pdev->dev, "failed to register APCS clk\n"); @@ -158,6 +158,7 @@ static const struct of_device_id qcom_apcs_ipc_of_match[] = { { .compatible = "qcom,ipq6018-apcs-apps-global", .data = &ipq6018_apcs_data }, { .compatible = "qcom,ipq8074-apcs-apps-global", .data = &ipq8074_apcs_data }, { .compatible = "qcom,msm8916-apcs-kpss-global", .data = &msm8916_apcs_data }, + { .compatible = "qcom,msm8939-apcs-kpss-global", .data = &msm8916_apcs_data }, { .compatible = "qcom,msm8994-apcs-kpss-global", .data = &msm8994_apcs_data }, { .compatible = "qcom,msm8996-apcs-hmss-global", .data = &msm8996_apcs_data }, { .compatible = "qcom,msm8998-apcs-hmss-global", .data = &msm8998_apcs_data },