diff mbox series

[v2,2/2] mailbox: qcom: Add MSM8939 APCS support

Message ID 20210503081334.17143-3-shawn.guo@linaro.org
State New
Headers show
Series Add MSM8939 APCS support | expand

Commit Message

Shawn Guo May 3, 2021, 8:13 a.m. UTC
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>
---
 drivers/mailbox/qcom-apcs-ipc-mailbox.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Shawn Guo May 23, 2021, 6 a.m. UTC | #1
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

>
Jassi Brar June 21, 2021, 4:27 a.m. UTC | #2
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.
Shawn Guo June 21, 2021, 6:33 a.m. UTC | #3
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 mbox series

Patch

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 },