* [PATCH v2 0/2] soc: ti: Convert K3 SoC info driver to module @ 2022-10-10 13:15 Nicolas Frayer 2022-10-10 13:15 ` [PATCH v2 1/2] soc: ti: Convert allocations to devm Nicolas Frayer 2022-10-10 13:15 ` [PATCH v2 2/2] soc: ti: Add module build support Nicolas Frayer 0 siblings, 2 replies; 9+ messages in thread From: Nicolas Frayer @ 2022-10-10 13:15 UTC (permalink / raw) To: nm, ssantosh Cc: linux-arm-kernel, khilman, glaroque, granquet, Nicolas Frayer In order for the TI K3 SoC info driver to be built as a module, the following 2 changes have been made: - Convert memory allocations to devm and added the remove callback - Added necessary code to build the driver as a module v1->v2: - Some drivers using socinfo do not handle deferred probe when socinfo is built as a module. So defaulting socinfo to built-in until the deferred probe is handled correctly by those drivers. Nicolas Frayer (2): soc: ti: Convert allocations to devm soc: ti: Add module build support arch/arm64/Kconfig.platforms | 1 - drivers/soc/ti/Kconfig | 3 ++- drivers/soc/ti/k3-socinfo.c | 47 +++++++++++++++++++----------------- 3 files changed, 27 insertions(+), 24 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] 9+ messages in thread
* [PATCH v2 1/2] soc: ti: Convert allocations to devm 2022-10-10 13:15 [PATCH v2 0/2] soc: ti: Convert K3 SoC info driver to module Nicolas Frayer @ 2022-10-10 13:15 ` Nicolas Frayer 2022-10-17 22:15 ` Nishanth Menon 2022-10-10 13:15 ` [PATCH v2 2/2] soc: ti: Add module build support Nicolas Frayer 1 sibling, 1 reply; 9+ messages in thread From: Nicolas Frayer @ 2022-10-10 13:15 UTC (permalink / raw) To: nm, ssantosh Cc: linux-arm-kernel, khilman, glaroque, granquet, Nicolas Frayer 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 e6047b23a86f..3311797145ed 100644 --- a/drivers/soc/ti/k3-socinfo.c +++ b/drivers/soc/ti/k3-socinfo.c @@ -97,21 +97,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("/"); @@ -119,22 +116,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 != NULL) + soc_device_unregister(soc_dev); + + return 0; } static const struct of_device_id k3_chipinfo_of_match[] = { @@ -148,6 +149,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] 9+ messages in thread
* Re: [PATCH v2 1/2] soc: ti: Convert allocations to devm 2022-10-10 13:15 ` [PATCH v2 1/2] soc: ti: Convert allocations to devm Nicolas Frayer @ 2022-10-17 22:15 ` Nishanth Menon 2022-10-19 17:50 ` Nicolas Frayer 0 siblings, 1 reply; 9+ messages in thread From: Nishanth Menon @ 2022-10-17 22:15 UTC (permalink / raw) To: Nicolas Frayer; +Cc: ssantosh, linux-arm-kernel, khilman, glaroque, granquet On 15:15-20221010, Nicolas Frayer wrote: [...] > +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 != NULL) next-20221017 checkpatch --strict suggests if (soc_dev) ? > + soc_device_unregister(soc_dev); > + > + return 0; > } > -- 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] 9+ messages in thread
* Re: [PATCH v2 1/2] soc: ti: Convert allocations to devm 2022-10-17 22:15 ` Nishanth Menon @ 2022-10-19 17:50 ` Nicolas Frayer 2022-10-19 17:58 ` Nicolas Frayer 0 siblings, 1 reply; 9+ messages in thread From: Nicolas Frayer @ 2022-10-19 17:50 UTC (permalink / raw) To: Nishanth Menon; +Cc: ssantosh, linux-arm-kernel, khilman, glaroque, granquet Thanks Nishanth, I'll change this in next version. Le mar. 18 oct. 2022 à 00:15, Nishanth Menon <nm@ti.com> a écrit : > > On 15:15-20221010, Nicolas Frayer wrote: > [...] > > > +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 != NULL) > > next-20221017 checkpatch --strict suggests if (soc_dev) ? > > > + soc_device_unregister(soc_dev); > > + > > + return 0; > > } > > > > -- > 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] 9+ messages in thread
* Re: [PATCH v2 1/2] soc: ti: Convert allocations to devm 2022-10-19 17:50 ` Nicolas Frayer @ 2022-10-19 17:58 ` Nicolas Frayer 0 siblings, 0 replies; 9+ messages in thread From: Nicolas Frayer @ 2022-10-19 17:58 UTC (permalink / raw) To: Nishanth Menon; +Cc: ssantosh, linux-arm-kernel, khilman, glaroque, granquet Le mer. 19 oct. 2022 à 19:50, Nicolas Frayer <nfrayer@baylibre.com> a écrit : > > Thanks Nishanth, I'll change this in next version. > > Le mar. 18 oct. 2022 à 00:15, Nishanth Menon <nm@ti.com> a écrit : > > > > On 15:15-20221010, Nicolas Frayer wrote: > > [...] > > > > > +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 != NULL) > > > > next-20221017 checkpatch --strict suggests if (soc_dev) ? > > > > > + soc_device_unregister(soc_dev); > > > + > > > + return 0; > > > } > > > > > > > -- > > Regards, > > Nishanth Menon > > Key (0xDDB5849D1736249D) / Fingerprint: F8A2 8693 54EB 8232 17A3 1A34 DDB5 849D 1736 249D [Sorry for top posting] Thanks Nishanth, I'll change this in next version. _______________________________________________ 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] 9+ messages in thread
* [PATCH v2 2/2] soc: ti: Add module build support 2022-10-10 13:15 [PATCH v2 0/2] soc: ti: Convert K3 SoC info driver to module Nicolas Frayer 2022-10-10 13:15 ` [PATCH v2 1/2] soc: ti: Convert allocations to devm Nicolas Frayer @ 2022-10-10 13:15 ` Nicolas Frayer 2022-10-10 16:40 ` Nicolas Frayer 2022-10-17 22:16 ` Nishanth Menon 1 sibling, 2 replies; 9+ messages in thread From: Nicolas Frayer @ 2022-10-10 13:15 UTC (permalink / raw) To: nm, ssantosh Cc: linux-arm-kernel, khilman, glaroque, granquet, Nicolas Frayer 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, 8 insertions(+), 7 deletions(-) diff --git a/arch/arm64/Kconfig.platforms b/arch/arm64/Kconfig.platforms index 889e78f40a25..31b628fdd4b1 100644 --- a/arch/arm64/Kconfig.platforms +++ b/arch/arm64/Kconfig.platforms @@ -112,7 +112,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 56c41eac33f8..a10bea0cdf90 100644 --- a/drivers/soc/ti/Kconfig +++ b/drivers/soc/ti/Kconfig @@ -85,7 +85,8 @@ config TI_K3_RINGACC If unsure, say N. config TI_K3_SOCINFO - bool + tristate "TI K3 SoC info driver" + default y 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 3311797145ed..dd275f338e06 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 /* @@ -142,6 +143,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 = { @@ -152,8 +154,7 @@ static struct platform_driver k3_chipinfo_driver = { .remove = k3_chipinfo_remove, }; -static int __init k3_chipinfo_init(void) -{ - return platform_driver_register(&k3_chipinfo_driver); -} -subsys_initcall(k3_chipinfo_init); +module_platform_driver(k3_chipinfo_driver); + +MODULE_DESCRIPTION("TI K3 SoC info driver"); +MODULE_LICENSE("GPL v2"); -- 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] 9+ messages in thread
* Re: [PATCH v2 2/2] soc: ti: Add module build support 2022-10-10 13:15 ` [PATCH v2 2/2] soc: ti: Add module build support Nicolas Frayer @ 2022-10-10 16:40 ` Nicolas Frayer 2022-10-17 22:16 ` Nishanth Menon 1 sibling, 0 replies; 9+ messages in thread From: Nicolas Frayer @ 2022-10-10 16:40 UTC (permalink / raw) To: nm, ssantosh; +Cc: linux-arm-kernel, khilman, glaroque, granquet Le lun. 10 oct. 2022 à 15:15, Nicolas Frayer <nfrayer@baylibre.com> a écrit : > > 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, 8 insertions(+), 7 deletions(-) > > diff --git a/arch/arm64/Kconfig.platforms b/arch/arm64/Kconfig.platforms > index 889e78f40a25..31b628fdd4b1 100644 > --- a/arch/arm64/Kconfig.platforms > +++ b/arch/arm64/Kconfig.platforms > @@ -112,7 +112,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 56c41eac33f8..a10bea0cdf90 100644 > --- a/drivers/soc/ti/Kconfig > +++ b/drivers/soc/ti/Kconfig > @@ -85,7 +85,8 @@ config TI_K3_RINGACC > If unsure, say N. > > config TI_K3_SOCINFO > - bool > + tristate "TI K3 SoC info driver" > + default y > 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 3311797145ed..dd275f338e06 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 > /* > @@ -142,6 +143,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 = { > @@ -152,8 +154,7 @@ static struct platform_driver k3_chipinfo_driver = { > .remove = k3_chipinfo_remove, > }; > > -static int __init k3_chipinfo_init(void) > -{ > - return platform_driver_register(&k3_chipinfo_driver); > -} > -subsys_initcall(k3_chipinfo_init); > +module_platform_driver(k3_chipinfo_driver); > + > +MODULE_DESCRIPTION("TI K3 SoC info driver"); > +MODULE_LICENSE("GPL v2"); > -- > 2.25.1 > [Resending without the HTML formatting] Please do not merge this patch. 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 probes fail. However, the first patch of this serie can be merged. _______________________________________________ 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] 9+ messages in thread
* Re: [PATCH v2 2/2] soc: ti: Add module build support 2022-10-10 13:15 ` [PATCH v2 2/2] soc: ti: Add module build support Nicolas Frayer 2022-10-10 16:40 ` Nicolas Frayer @ 2022-10-17 22:16 ` Nishanth Menon 2022-10-19 17:57 ` Nicolas Frayer 1 sibling, 1 reply; 9+ messages in thread From: Nishanth Menon @ 2022-10-17 22:16 UTC (permalink / raw) To: Nicolas Frayer; +Cc: ssantosh, linux-arm-kernel, khilman, glaroque, granquet On 15:15-20221010, Nicolas Frayer wrote: > Added module build support for the TI K3 SoC info driver. > > Signed-off-by: Nicolas Frayer <nfrayer@baylibre.com> > --- [...] > diff --git a/drivers/soc/ti/k3-socinfo.c b/drivers/soc/ti/k3-socinfo.c > index 3311797145ed..dd275f338e06 100644 > --- a/drivers/soc/ti/k3-socinfo.c > +++ b/drivers/soc/ti/k3-socinfo.c [...] > + > +MODULE_DESCRIPTION("TI K3 SoC info driver"); > +MODULE_LICENSE("GPL v2"); MODULE_LICENSE("GPL"); ? -- 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] 9+ messages in thread
* Re: [PATCH v2 2/2] soc: ti: Add module build support 2022-10-17 22:16 ` Nishanth Menon @ 2022-10-19 17:57 ` Nicolas Frayer 0 siblings, 0 replies; 9+ messages in thread From: Nicolas Frayer @ 2022-10-19 17:57 UTC (permalink / raw) To: Nishanth Menon; +Cc: ssantosh, linux-arm-kernel, khilman, glaroque, granquet Le mar. 18 oct. 2022 à 00:16, Nishanth Menon <nm@ti.com> a écrit : > > On 15:15-20221010, Nicolas Frayer wrote: > > Added module build support for the TI K3 SoC info driver. > > > > Signed-off-by: Nicolas Frayer <nfrayer@baylibre.com> > > --- > [...] > > > diff --git a/drivers/soc/ti/k3-socinfo.c b/drivers/soc/ti/k3-socinfo.c > > index 3311797145ed..dd275f338e06 100644 > > --- a/drivers/soc/ti/k3-socinfo.c > > +++ b/drivers/soc/ti/k3-socinfo.c > > [...] > > > + > > +MODULE_DESCRIPTION("TI K3 SoC info driver"); > > +MODULE_LICENSE("GPL v2"); > > MODULE_LICENSE("GPL"); > > ? > > > -- > Regards, > Nishanth Menon > Key (0xDDB5849D1736249D) / Fingerprint: F8A2 8693 54EB 8232 17A3 1A34 DDB5 849D 1736 249D Thanks, I used GPL v2 as the top banner in the file specified GPL-v2. I will use GPL when I resend this patch after the probe dependency issues are solved for drivers using socinfo attr. _______________________________________________ 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] 9+ messages in thread
end of thread, other threads:[~2022-10-19 17:59 UTC | newest] Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2022-10-10 13:15 [PATCH v2 0/2] soc: ti: Convert K3 SoC info driver to module Nicolas Frayer 2022-10-10 13:15 ` [PATCH v2 1/2] soc: ti: Convert allocations to devm Nicolas Frayer 2022-10-17 22:15 ` Nishanth Menon 2022-10-19 17:50 ` Nicolas Frayer 2022-10-19 17:58 ` Nicolas Frayer 2022-10-10 13:15 ` [PATCH v2 2/2] soc: ti: Add module build support Nicolas Frayer 2022-10-10 16:40 ` Nicolas Frayer 2022-10-17 22:16 ` Nishanth Menon 2022-10-19 17:57 ` Nicolas Frayer
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).