From: Peter Ujfalusi <peter.ujfalusi@ti.com> To: <vkoul@kernel.org>, <robh+dt@kernel.org>, <nm@ti.com>, <ssantosh@kernel.org> Cc: <dan.j.williams@intel.com>, <dmaengine@vger.kernel.org>, <linux-arm-kernel@lists.infradead.org>, <devicetree@vger.kernel.org>, <linux-kernel@vger.kernel.org>, <grygorii.strashko@ti.com>, <lokeshvutla@ti.com>, <t-kristo@ti.com>, <tony@atomide.com>, <j-keerthy@ti.com>, <vigneshr@ti.com>, <frowand.list@gmail.com> Subject: [PATCH v8 18/18] soc: ti: k3-ringacc: Allow the driver to be built as module Date: Mon, 23 Dec 2019 13:04:58 +0200 [thread overview] Message-ID: <20191223110458.30766-19-peter.ujfalusi@ti.com> (raw) In-Reply-To: <20191223110458.30766-1-peter.ujfalusi@ti.com> The ring accelerator driver can be built as module since all depending functions are exported. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Tested-by: Keerthy <j-keerthy@ti.com> Reviewed-by: Grygorii Strashko <grygorii.strashko@ti.com> --- drivers/soc/ti/Kconfig | 2 +- drivers/soc/ti/k3-ringacc.c | 29 ++++++++++++++++++++++++++--- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/drivers/soc/ti/Kconfig b/drivers/soc/ti/Kconfig index 4486e055794c..bdce98f68a3e 100644 --- a/drivers/soc/ti/Kconfig +++ b/drivers/soc/ti/Kconfig @@ -81,7 +81,7 @@ config TI_SCI_PM_DOMAINS rootfs may be available. config TI_K3_RINGACC - bool "K3 Ring accelerator Sub System" + tristate "K3 Ring accelerator Sub System" depends on ARCH_K3 || COMPILE_TEST depends on TI_SCI_INTA_IRQCHIP help diff --git a/drivers/soc/ti/k3-ringacc.c b/drivers/soc/ti/k3-ringacc.c index 5fb2ee2ac978..fd9f35b7c9a6 100644 --- a/drivers/soc/ti/k3-ringacc.c +++ b/drivers/soc/ti/k3-ringacc.c @@ -7,7 +7,7 @@ #include <linux/dma-mapping.h> #include <linux/io.h> -#include <linux/init.h> +#include <linux/module.h> #include <linux/of.h> #include <linux/platform_device.h> #include <linux/soc/ti/k3-ringacc.h> @@ -264,6 +264,11 @@ struct k3_ring *k3_ringacc_request_ring(struct k3_ringacc *ringacc, mutex_lock(&ringacc->req_lock); + if (!try_module_get(ringacc->dev->driver->owner)) { + mutex_unlock(&ringacc->req_lock); + return NULL; + } + if (id == K3_RINGACC_RING_ID_ANY) { /* Request for any general purpose ring */ struct ti_sci_resource_desc *gp_rings = @@ -308,6 +313,7 @@ struct k3_ring *k3_ringacc_request_ring(struct k3_ringacc *ringacc, return &ringacc->rings[id]; error: + module_put(ringacc->dev->driver->owner); mutex_unlock(&ringacc->req_lock); return NULL; } @@ -488,6 +494,8 @@ int k3_ringacc_ring_free(struct k3_ring *ring) no_init: clear_bit(ring->ring_id, ringacc->rings_inuse); + module_put(ringacc->dev->driver->owner); + out: mutex_unlock(&ringacc->req_lock); return 0; @@ -1140,18 +1148,33 @@ static int k3_ringacc_probe(struct platform_device *pdev) return 0; } +static int k3_ringacc_remove(struct platform_device *pdev) +{ + struct k3_ringacc *ringacc = dev_get_drvdata(&pdev->dev); + + mutex_lock(&k3_ringacc_list_lock); + list_del(&ringacc->list); + mutex_unlock(&k3_ringacc_list_lock); + return 0; +} + /* Match table for of_platform binding */ static const struct of_device_id k3_ringacc_of_match[] = { { .compatible = "ti,am654-navss-ringacc", }, {}, }; +MODULE_DEVICE_TABLE(of, k3_ringacc_of_match); static struct platform_driver k3_ringacc_driver = { .probe = k3_ringacc_probe, + .remove = k3_ringacc_remove, .driver = { .name = "k3-ringacc", .of_match_table = k3_ringacc_of_match, - .suppress_bind_attrs = true, }, }; -builtin_platform_driver(k3_ringacc_driver); +module_platform_driver(k3_ringacc_driver); + +MODULE_LICENSE("GPL v2"); +MODULE_DESCRIPTION("TI Ringacc driver for K3 SOCs"); +MODULE_AUTHOR("Grygorii Strashko <grygorii.strashko@ti.com>"); -- Peter Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki
WARNING: multiple messages have this Message-ID (diff)
From: Peter Ujfalusi <peter.ujfalusi@ti.com> To: <vkoul@kernel.org>, <robh+dt@kernel.org>, <nm@ti.com>, <ssantosh@kernel.org> Cc: devicetree@vger.kernel.org, grygorii.strashko@ti.com, vigneshr@ti.com, lokeshvutla@ti.com, j-keerthy@ti.com, linux-kernel@vger.kernel.org, t-kristo@ti.com, tony@atomide.com, dmaengine@vger.kernel.org, dan.j.williams@intel.com, frowand.list@gmail.com, linux-arm-kernel@lists.infradead.org Subject: [PATCH v8 18/18] soc: ti: k3-ringacc: Allow the driver to be built as module Date: Mon, 23 Dec 2019 13:04:58 +0200 [thread overview] Message-ID: <20191223110458.30766-19-peter.ujfalusi@ti.com> (raw) In-Reply-To: <20191223110458.30766-1-peter.ujfalusi@ti.com> The ring accelerator driver can be built as module since all depending functions are exported. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Tested-by: Keerthy <j-keerthy@ti.com> Reviewed-by: Grygorii Strashko <grygorii.strashko@ti.com> --- drivers/soc/ti/Kconfig | 2 +- drivers/soc/ti/k3-ringacc.c | 29 ++++++++++++++++++++++++++--- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/drivers/soc/ti/Kconfig b/drivers/soc/ti/Kconfig index 4486e055794c..bdce98f68a3e 100644 --- a/drivers/soc/ti/Kconfig +++ b/drivers/soc/ti/Kconfig @@ -81,7 +81,7 @@ config TI_SCI_PM_DOMAINS rootfs may be available. config TI_K3_RINGACC - bool "K3 Ring accelerator Sub System" + tristate "K3 Ring accelerator Sub System" depends on ARCH_K3 || COMPILE_TEST depends on TI_SCI_INTA_IRQCHIP help diff --git a/drivers/soc/ti/k3-ringacc.c b/drivers/soc/ti/k3-ringacc.c index 5fb2ee2ac978..fd9f35b7c9a6 100644 --- a/drivers/soc/ti/k3-ringacc.c +++ b/drivers/soc/ti/k3-ringacc.c @@ -7,7 +7,7 @@ #include <linux/dma-mapping.h> #include <linux/io.h> -#include <linux/init.h> +#include <linux/module.h> #include <linux/of.h> #include <linux/platform_device.h> #include <linux/soc/ti/k3-ringacc.h> @@ -264,6 +264,11 @@ struct k3_ring *k3_ringacc_request_ring(struct k3_ringacc *ringacc, mutex_lock(&ringacc->req_lock); + if (!try_module_get(ringacc->dev->driver->owner)) { + mutex_unlock(&ringacc->req_lock); + return NULL; + } + if (id == K3_RINGACC_RING_ID_ANY) { /* Request for any general purpose ring */ struct ti_sci_resource_desc *gp_rings = @@ -308,6 +313,7 @@ struct k3_ring *k3_ringacc_request_ring(struct k3_ringacc *ringacc, return &ringacc->rings[id]; error: + module_put(ringacc->dev->driver->owner); mutex_unlock(&ringacc->req_lock); return NULL; } @@ -488,6 +494,8 @@ int k3_ringacc_ring_free(struct k3_ring *ring) no_init: clear_bit(ring->ring_id, ringacc->rings_inuse); + module_put(ringacc->dev->driver->owner); + out: mutex_unlock(&ringacc->req_lock); return 0; @@ -1140,18 +1148,33 @@ static int k3_ringacc_probe(struct platform_device *pdev) return 0; } +static int k3_ringacc_remove(struct platform_device *pdev) +{ + struct k3_ringacc *ringacc = dev_get_drvdata(&pdev->dev); + + mutex_lock(&k3_ringacc_list_lock); + list_del(&ringacc->list); + mutex_unlock(&k3_ringacc_list_lock); + return 0; +} + /* Match table for of_platform binding */ static const struct of_device_id k3_ringacc_of_match[] = { { .compatible = "ti,am654-navss-ringacc", }, {}, }; +MODULE_DEVICE_TABLE(of, k3_ringacc_of_match); static struct platform_driver k3_ringacc_driver = { .probe = k3_ringacc_probe, + .remove = k3_ringacc_remove, .driver = { .name = "k3-ringacc", .of_match_table = k3_ringacc_of_match, - .suppress_bind_attrs = true, }, }; -builtin_platform_driver(k3_ringacc_driver); +module_platform_driver(k3_ringacc_driver); + +MODULE_LICENSE("GPL v2"); +MODULE_DESCRIPTION("TI Ringacc driver for K3 SOCs"); +MODULE_AUTHOR("Grygorii Strashko <grygorii.strashko@ti.com>"); -- Peter Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2019-12-23 11:06 UTC|newest] Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-12-23 11:04 [PATCH v8 00/18] dmaengine/soc: Add Texas Instruments UDMA support Peter Ujfalusi 2019-12-23 11:04 ` Peter Ujfalusi 2019-12-23 11:04 ` [PATCH v8 01/18] bindings: soc: ti: add documentation for k3 ringacc Peter Ujfalusi 2019-12-23 11:04 ` Peter Ujfalusi 2019-12-23 11:04 ` [PATCH v8 02/18] soc: ti: k3: add navss ringacc driver Peter Ujfalusi 2019-12-23 11:04 ` Peter Ujfalusi 2019-12-23 11:38 ` Peter Ujfalusi 2019-12-23 11:38 ` Peter Ujfalusi 2020-01-13 21:28 ` santosh.shilimkar 2020-01-13 21:28 ` santosh.shilimkar 2020-01-14 6:58 ` Peter Ujfalusi 2020-01-14 6:58 ` Peter Ujfalusi 2020-01-14 8:11 ` Sekhar Nori 2020-01-14 8:11 ` Sekhar Nori 2020-01-14 18:06 ` santosh.shilimkar 2020-01-14 18:06 ` santosh.shilimkar 2020-01-15 9:44 ` Peter Ujfalusi 2020-01-15 9:44 ` Peter Ujfalusi 2020-01-15 12:24 ` Vinod Koul 2020-01-15 12:24 ` Vinod Koul 2020-01-15 18:26 ` santosh.shilimkar 2020-01-15 18:26 ` santosh.shilimkar 2019-12-23 11:04 ` [PATCH v8 03/18] dmaengine: doc: Add sections for per descriptor metadata support Peter Ujfalusi 2019-12-23 11:04 ` Peter Ujfalusi 2019-12-23 11:04 ` [PATCH v8 04/18] dmaengine: Add metadata_ops for dma_async_tx_descriptor Peter Ujfalusi 2019-12-23 11:04 ` Peter Ujfalusi 2019-12-23 11:04 ` [PATCH v8 05/18] dmaengine: Add support for reporting DMA cached data amount Peter Ujfalusi 2019-12-23 11:04 ` Peter Ujfalusi 2019-12-23 11:04 ` [PATCH v8 06/18] dmaengine: Add helper function to convert direction value to text Peter Ujfalusi 2019-12-23 11:04 ` Peter Ujfalusi 2019-12-23 11:04 ` [PATCH v8 07/18] dmaengine: ti: Add cppi5 header for K3 NAVSS/UDMA Peter Ujfalusi 2019-12-23 11:04 ` Peter Ujfalusi 2019-12-23 11:04 ` [PATCH v8 08/18] dmaengine: ti: k3 PSI-L remote endpoint configuration Peter Ujfalusi 2019-12-23 11:04 ` Peter Ujfalusi 2019-12-23 11:04 ` [PATCH v8 09/18] dt-bindings: dma: ti: Add document for K3 UDMA Peter Ujfalusi 2019-12-23 11:04 ` Peter Ujfalusi 2019-12-23 11:04 ` [PATCH v8 10/18] dmaengine: ti: New driver " Peter Ujfalusi 2019-12-23 11:04 ` Peter Ujfalusi 2019-12-23 11:04 ` [PATCH v8 11/18] dmaengine: ti: k3-udma: Add glue layer for non DMAengine users Peter Ujfalusi 2019-12-23 11:04 ` Peter Ujfalusi 2019-12-23 11:04 ` [PATCH v8 12/18] firmware: ti_sci: rm: Add support for tx_tdtype parameter for tx channel Peter Ujfalusi 2019-12-23 11:04 ` Peter Ujfalusi 2019-12-23 11:04 ` [PATCH v8 13/18] dmaengine: ti: k3-udma: Wait for peer teardown completion if supported Peter Ujfalusi 2019-12-23 11:04 ` Peter Ujfalusi 2019-12-23 11:04 ` [PATCH v8 14/18] of: irq: Export of_msi_get_domain Peter Ujfalusi 2019-12-23 11:04 ` Peter Ujfalusi 2019-12-23 11:36 ` Peter Ujfalusi 2019-12-23 11:36 ` Peter Ujfalusi 2019-12-23 11:04 ` [PATCH v8 15/18] firmware: ti_sci: Export devm_ti_sci_get_of_resource for modules Peter Ujfalusi 2019-12-23 11:04 ` Peter Ujfalusi 2019-12-23 11:04 ` [PATCH v8 16/18] dmaengine: ti: k3-udma: Allow the driver to be built as module Peter Ujfalusi 2019-12-23 11:04 ` Peter Ujfalusi 2019-12-23 11:04 ` [PATCH v8 17/18] dmaengine: ti: k3-udma-glue: " Peter Ujfalusi 2019-12-23 11:04 ` Peter Ujfalusi 2019-12-23 11:04 ` Peter Ujfalusi [this message] 2019-12-23 11:04 ` [PATCH v8 18/18] soc: ti: k3-ringacc: " Peter Ujfalusi 2020-01-21 7:41 ` [PATCH v8 00/18] dmaengine/soc: Add Texas Instruments UDMA support Vinod Koul 2020-01-21 7:41 ` Vinod Koul
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20191223110458.30766-19-peter.ujfalusi@ti.com \ --to=peter.ujfalusi@ti.com \ --cc=dan.j.williams@intel.com \ --cc=devicetree@vger.kernel.org \ --cc=dmaengine@vger.kernel.org \ --cc=frowand.list@gmail.com \ --cc=grygorii.strashko@ti.com \ --cc=j-keerthy@ti.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=lokeshvutla@ti.com \ --cc=nm@ti.com \ --cc=robh+dt@kernel.org \ --cc=ssantosh@kernel.org \ --cc=t-kristo@ti.com \ --cc=tony@atomide.com \ --cc=vigneshr@ti.com \ --cc=vkoul@kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.