linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v6 0/2] soc: ti: k3-socinfo: Add module build support to the k3 socinfo driver
@ 2022-11-17  9:54 Nicolas Frayer
  2022-11-17  9:54 ` [PATCH v6 1/2] soc: ti: k3-socinfo: Convert allocations to devm Nicolas Frayer
                   ` (3 more replies)
  0 siblings, 4 replies; 7+ messages in thread
From: Nicolas Frayer @ 2022-11-17  9:54 UTC (permalink / raw)
  To: nm, ssantosh, linux-kernel, linux-arm-kernel; +Cc: khilman, glaroque, nfrayer

In order for the TI K3 SoC info driver to be built as a module, the
following changes have been made:
- Converted memory allocations to devm and added the remove callback
- Added necessary code to build the driver as a module

v2->v3:
dropped module conversion part of this series while other driver
dependencies on socinfo are worked out.
A dependency issue is introduced by changing subsys_initcall()
to module_platform_driver(). Some drivers using the socinfo information
probe before the socinfo driver itself and it makes their probe fail.

v3->v4:
reintegrated the module build support and added patches for udma and mdio
drivers to allow for deferred probe if socinfo hasn't probed yet.

v4->v5:
Remove the k3 udma and mdio patches from this series and sent them
individually

v5->v6:
Add k3-socinfo to the subject

Nicolas Frayer (2):
  soc: ti: k3-socinfo: Convert allocations to devm
  soc: ti: k3-socinfo: Add module build support

 arch/arm64/Kconfig.platforms |  1 -
 drivers/soc/ti/Kconfig       |  3 ++-
 drivers/soc/ti/k3-socinfo.c  | 47 +++++++++++++++++++++++-------------
 3 files changed, 32 insertions(+), 19 deletions(-)

-- 
2.25.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH v6 1/2] soc: ti: k3-socinfo: Convert allocations to devm
  2022-11-17  9:54 [PATCH v6 0/2] soc: ti: k3-socinfo: Add module build support to the k3 socinfo driver Nicolas Frayer
@ 2022-11-17  9:54 ` Nicolas Frayer
  2022-11-17  9:54 ` [PATCH v6 2/2] soc: ti: k3-socinfo: Add module build support Nicolas Frayer
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 7+ messages in thread
From: Nicolas Frayer @ 2022-11-17  9:54 UTC (permalink / raw)
  To: nm, ssantosh, linux-kernel, linux-arm-kernel; +Cc: khilman, glaroque, nfrayer

Changed the memory and resource allocations in the probe function
to devm. Also added a remove callback.

Signed-off-by: Nicolas Frayer <nfrayer@baylibre.com>
---
 drivers/soc/ti/k3-socinfo.c | 36 +++++++++++++++++++-----------------
 1 file changed, 19 insertions(+), 17 deletions(-)

diff --git a/drivers/soc/ti/k3-socinfo.c b/drivers/soc/ti/k3-socinfo.c
index 91f441ee6175..19f3e74f5376 100644
--- a/drivers/soc/ti/k3-socinfo.c
+++ b/drivers/soc/ti/k3-socinfo.c
@@ -96,21 +96,18 @@ static int k3_chipinfo_probe(struct platform_device *pdev)
 	partno_id = (jtag_id & CTRLMMR_WKUP_JTAGID_PARTNO_MASK) >>
 		 CTRLMMR_WKUP_JTAGID_PARTNO_SHIFT;
 
-	soc_dev_attr = kzalloc(sizeof(*soc_dev_attr), GFP_KERNEL);
+	soc_dev_attr = devm_kzalloc(&pdev->dev, sizeof(*soc_dev_attr), GFP_KERNEL);
 	if (!soc_dev_attr)
 		return -ENOMEM;
 
-	soc_dev_attr->revision = kasprintf(GFP_KERNEL, "SR%x.0", variant);
-	if (!soc_dev_attr->revision) {
-		ret = -ENOMEM;
-		goto err;
-	}
+	soc_dev_attr->revision = devm_kasprintf(&pdev->dev, GFP_KERNEL, "SR%x.0", variant);
+	if (!soc_dev_attr->revision)
+		return -ENOMEM;
 
 	ret = k3_chipinfo_partno_to_names(partno_id, soc_dev_attr);
 	if (ret) {
 		dev_err(dev, "Unknown SoC JTAGID[0x%08X]\n", jtag_id);
-		ret = -ENODEV;
-		goto err_free_rev;
+		return -ENODEV;
 	}
 
 	node = of_find_node_by_path("/");
@@ -118,22 +115,26 @@ static int k3_chipinfo_probe(struct platform_device *pdev)
 	of_node_put(node);
 
 	soc_dev = soc_device_register(soc_dev_attr);
-	if (IS_ERR(soc_dev)) {
-		ret = PTR_ERR(soc_dev);
-		goto err_free_rev;
-	}
+	if (IS_ERR(soc_dev))
+		return PTR_ERR(soc_dev);
+
+	platform_set_drvdata(pdev, soc_dev);
 
 	dev_info(dev, "Family:%s rev:%s JTAGID[0x%08x] Detected\n",
 		 soc_dev_attr->family,
 		 soc_dev_attr->revision, jtag_id);
 
 	return 0;
+}
+
+static int k3_chipinfo_remove(struct platform_device *pdev)
+{
+	struct soc_device *soc_dev = platform_get_drvdata(pdev);
 
-err_free_rev:
-	kfree(soc_dev_attr->revision);
-err:
-	kfree(soc_dev_attr);
-	return ret;
+	if (soc_dev)
+		soc_device_unregister(soc_dev);
+
+	return 0;
 }
 
 static const struct of_device_id k3_chipinfo_of_match[] = {
@@ -147,6 +148,7 @@ static struct platform_driver k3_chipinfo_driver = {
 		.of_match_table = k3_chipinfo_of_match,
 	},
 	.probe = k3_chipinfo_probe,
+	.remove = k3_chipinfo_remove,
 };
 
 static int __init k3_chipinfo_init(void)
-- 
2.25.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH v6 2/2] soc: ti: k3-socinfo: Add module build support
  2022-11-17  9:54 [PATCH v6 0/2] soc: ti: k3-socinfo: Add module build support to the k3 socinfo driver Nicolas Frayer
  2022-11-17  9:54 ` [PATCH v6 1/2] soc: ti: k3-socinfo: Convert allocations to devm Nicolas Frayer
@ 2022-11-17  9:54 ` Nicolas Frayer
  2022-11-18 20:09 ` [PATCH v6 0/2] soc: ti: k3-socinfo: Add module build support to the k3 socinfo driver Kevin Hilman
  2022-11-21 21:55 ` Nishanth Menon
  3 siblings, 0 replies; 7+ messages in thread
From: Nicolas Frayer @ 2022-11-17  9:54 UTC (permalink / raw)
  To: nm, ssantosh, linux-kernel, linux-arm-kernel; +Cc: khilman, glaroque, nfrayer

Added module build support for the TI K3 SoC info driver.

Signed-off-by: Nicolas Frayer <nfrayer@baylibre.com>
---
 arch/arm64/Kconfig.platforms |  1 -
 drivers/soc/ti/Kconfig       |  3 ++-
 drivers/soc/ti/k3-socinfo.c  | 11 +++++++++++
 3 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/arch/arm64/Kconfig.platforms b/arch/arm64/Kconfig.platforms
index 76580b932e44..4f2f92eb499f 100644
--- a/arch/arm64/Kconfig.platforms
+++ b/arch/arm64/Kconfig.platforms
@@ -130,7 +130,6 @@ config ARCH_K3
 	select TI_SCI_PROTOCOL
 	select TI_SCI_INTR_IRQCHIP
 	select TI_SCI_INTA_IRQCHIP
-	select TI_K3_SOCINFO
 	help
 	  This enables support for Texas Instruments' K3 multicore SoC
 	  architecture.
diff --git a/drivers/soc/ti/Kconfig b/drivers/soc/ti/Kconfig
index 7e2fb1c16af1..3244fa8a5b0e 100644
--- a/drivers/soc/ti/Kconfig
+++ b/drivers/soc/ti/Kconfig
@@ -74,7 +74,8 @@ config TI_K3_RINGACC
 	  If unsure, say N.
 
 config TI_K3_SOCINFO
-	bool
+	tristate "TI K3 SoC info driver"
+	default ARCH_K3
 	depends on ARCH_K3 || COMPILE_TEST
 	select SOC_BUS
 	select MFD_SYSCON
diff --git a/drivers/soc/ti/k3-socinfo.c b/drivers/soc/ti/k3-socinfo.c
index 19f3e74f5376..98348f998e0f 100644
--- a/drivers/soc/ti/k3-socinfo.c
+++ b/drivers/soc/ti/k3-socinfo.c
@@ -13,6 +13,7 @@
 #include <linux/slab.h>
 #include <linux/string.h>
 #include <linux/sys_soc.h>
+#include <linux/module.h>
 
 #define CTRLMMR_WKUP_JTAGID_REG		0
 /*
@@ -141,6 +142,7 @@ static const struct of_device_id k3_chipinfo_of_match[] = {
 	{ .compatible = "ti,am654-chipid", },
 	{ /* sentinel */ },
 };
+MODULE_DEVICE_TABLE(of, k3_chipinfo_of_match);
 
 static struct platform_driver k3_chipinfo_driver = {
 	.driver = {
@@ -156,3 +158,12 @@ static int __init k3_chipinfo_init(void)
 	return platform_driver_register(&k3_chipinfo_driver);
 }
 subsys_initcall(k3_chipinfo_init);
+
+static void __exit k3_chipinfo_exit(void)
+{
+	platform_driver_unregister(&k3_chipinfo_driver);
+}
+module_exit(k3_chipinfo_exit);
+
+MODULE_DESCRIPTION("TI K3 SoC info driver");
+MODULE_LICENSE("GPL");
-- 
2.25.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH v6 0/2] soc: ti: k3-socinfo: Add module build support to the k3 socinfo driver
  2022-11-17  9:54 [PATCH v6 0/2] soc: ti: k3-socinfo: Add module build support to the k3 socinfo driver Nicolas Frayer
  2022-11-17  9:54 ` [PATCH v6 1/2] soc: ti: k3-socinfo: Convert allocations to devm Nicolas Frayer
  2022-11-17  9:54 ` [PATCH v6 2/2] soc: ti: k3-socinfo: Add module build support Nicolas Frayer
@ 2022-11-18 20:09 ` Kevin Hilman
  2022-11-21 21:55 ` Nishanth Menon
  3 siblings, 0 replies; 7+ messages in thread
From: Kevin Hilman @ 2022-11-18 20:09 UTC (permalink / raw)
  To: Nicolas Frayer, nm, ssantosh, linux-kernel, linux-arm-kernel
  Cc: glaroque, nfrayer

Nicolas Frayer <nfrayer@baylibre.com> writes:

> In order for the TI K3 SoC info driver to be built as a module, the
> following changes have been made:
> - Converted memory allocations to devm and added the remove callback
> - Added necessary code to build the driver as a module

Reviewed-by: Kevin Hilman <khilman@baylibre.com>

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v6 0/2] soc: ti: k3-socinfo: Add module build support to the k3 socinfo driver
  2022-11-17  9:54 [PATCH v6 0/2] soc: ti: k3-socinfo: Add module build support to the k3 socinfo driver Nicolas Frayer
                   ` (2 preceding siblings ...)
  2022-11-18 20:09 ` [PATCH v6 0/2] soc: ti: k3-socinfo: Add module build support to the k3 socinfo driver Kevin Hilman
@ 2022-11-21 21:55 ` Nishanth Menon
  2022-11-22 20:48   ` Kevin Hilman
  3 siblings, 1 reply; 7+ messages in thread
From: Nishanth Menon @ 2022-11-21 21:55 UTC (permalink / raw)
  To: linux-arm-kernel, linux-kernel, nfrayer, Santosh Shilimkar
  Cc: Nishanth Menon, glaroque, khilman

Hi Nicolas Frayer,

On Thu, 17 Nov 2022 10:54:17 +0100, Nicolas Frayer wrote:
> In order for the TI K3 SoC info driver to be built as a module, the
> following changes have been made:
> - Converted memory allocations to devm and added the remove callback
> - Added necessary code to build the driver as a module
> 
> v2->v3:
> dropped module conversion part of this series while other driver
> dependencies on socinfo are worked out.
> A dependency issue is introduced by changing subsys_initcall()
> to module_platform_driver(). Some drivers using the socinfo information
> probe before the socinfo driver itself and it makes their probe fail.
> 
> [...]

I have applied the following to branch ti-drivers-soc-next on [1].
Thank you!

[1/2] soc: ti: k3-socinfo: Convert allocations to devm
      commit: 6ae5071b6a53844da27fddddf026c01eb4088c85
[2/2] soc: ti: k3-socinfo: Add module build support
      commit: 79480500de33a6a702f7188fc3ecd7164e897639

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent up the chain during
the next merge window (or sooner if it is a relevant bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

[1] git://git.kernel.org/pub/scm/linux/kernel/git/ti/linux.git
-- 
Regards,
Nishanth Menon
Key (0xDDB5849D1736249D) / Fingerprint: F8A2 8693 54EB 8232 17A3  1A34 DDB5 849D 1736 249D


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v6 0/2] soc: ti: k3-socinfo: Add module build support to the k3 socinfo driver
  2022-11-21 21:55 ` Nishanth Menon
@ 2022-11-22 20:48   ` Kevin Hilman
  2022-11-22 22:41     ` Nishanth Menon
  0 siblings, 1 reply; 7+ messages in thread
From: Kevin Hilman @ 2022-11-22 20:48 UTC (permalink / raw)
  To: Nishanth Menon, linux-arm-kernel, linux-kernel, nfrayer,
	Santosh Shilimkar
  Cc: Nishanth Menon, glaroque

Hi Nishanth,

Nishanth Menon <nm@ti.com> writes:

> Hi Nicolas Frayer,
>
> On Thu, 17 Nov 2022 10:54:17 +0100, Nicolas Frayer wrote:
>> In order for the TI K3 SoC info driver to be built as a module, the
>> following changes have been made:
>> - Converted memory allocations to devm and added the remove callback
>> - Added necessary code to build the driver as a module
>> 
>> v2->v3:
>> dropped module conversion part of this series while other driver
>> dependencies on socinfo are worked out.
>> A dependency issue is introduced by changing subsys_initcall()
>> to module_platform_driver(). Some drivers using the socinfo information
>> probe before the socinfo driver itself and it makes their probe fail.
>> 
>> [...]
>
> I have applied the following to branch ti-drivers-soc-next on [1].
> Thank you!

Sorry for the churn here, but I think these need to be reverted.

We've discoverd some more complexities/issues when socinfo is modular,
and I think the socinfo core code needs some work before this can
actually work reliably for all socinfo users.

Basically, I think we need to finish converting all the socinfo users to
modules before we can be sure of all the corner cases when socinfo
itself is a module.

Sorry about this churn, but I think it's better to be a bit conservative
here and revert before this lands in mainline.

Thanks,

Kevin

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v6 0/2] soc: ti: k3-socinfo: Add module build support to the k3 socinfo driver
  2022-11-22 20:48   ` Kevin Hilman
@ 2022-11-22 22:41     ` Nishanth Menon
  0 siblings, 0 replies; 7+ messages in thread
From: Nishanth Menon @ 2022-11-22 22:41 UTC (permalink / raw)
  To: Kevin Hilman
  Cc: linux-arm-kernel, linux-kernel, nfrayer, Santosh Shilimkar,
	glaroque

On 12:48-20221122, Kevin Hilman wrote:
> Hi Nishanth,
> 
> Nishanth Menon <nm@ti.com> writes:
> 
> > Hi Nicolas Frayer,
> >
> > On Thu, 17 Nov 2022 10:54:17 +0100, Nicolas Frayer wrote:
> >> In order for the TI K3 SoC info driver to be built as a module, the
> >> following changes have been made:
> >> - Converted memory allocations to devm and added the remove callback
> >> - Added necessary code to build the driver as a module
> >> 
> >> v2->v3:
> >> dropped module conversion part of this series while other driver
> >> dependencies on socinfo are worked out.
> >> A dependency issue is introduced by changing subsys_initcall()
> >> to module_platform_driver(). Some drivers using the socinfo information
> >> probe before the socinfo driver itself and it makes their probe fail.
> >> 
> >> [...]
> >
> > I have applied the following to branch ti-drivers-soc-next on [1].
> > Thank you!
> 
> Sorry for the churn here, but I think these need to be reverted.
> 
> We've discoverd some more complexities/issues when socinfo is modular,
> and I think the socinfo core code needs some work before this can
> actually work reliably for all socinfo users.
> 
> Basically, I think we need to finish converting all the socinfo users to
> modules before we can be sure of all the corner cases when socinfo
> itself is a module.
> 
> Sorry about this churn, but I think it's better to be a bit conservative
> here and revert before this lands in mainline.

Understood, and thanks for the headsup and explanation offline (explains
why I had'nt caught it in my regression checks). I have
dropped the series (since we managed to catch it just in time before
arnd picked it up), updated the next and send out a new PR.

-- 
Regards,
Nishanth Menon
Key (0xDDB5849D1736249D) / Fingerprint: F8A2 8693 54EB 8232 17A3  1A34 DDB5 849D 1736 249D

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2022-11-22 22:42 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-11-17  9:54 [PATCH v6 0/2] soc: ti: k3-socinfo: Add module build support to the k3 socinfo driver Nicolas Frayer
2022-11-17  9:54 ` [PATCH v6 1/2] soc: ti: k3-socinfo: Convert allocations to devm Nicolas Frayer
2022-11-17  9:54 ` [PATCH v6 2/2] soc: ti: k3-socinfo: Add module build support Nicolas Frayer
2022-11-18 20:09 ` [PATCH v6 0/2] soc: ti: k3-socinfo: Add module build support to the k3 socinfo driver Kevin Hilman
2022-11-21 21:55 ` Nishanth Menon
2022-11-22 20:48   ` Kevin Hilman
2022-11-22 22:41     ` Nishanth Menon

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).