linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] dmaengine: edma: Add dummy driver skeleton for edma3-tptc
@ 2015-11-02 13:21 Peter Ujfalusi
  2015-11-04 16:33 ` Felipe Balbi
  0 siblings, 1 reply; 4+ messages in thread
From: Peter Ujfalusi @ 2015-11-02 13:21 UTC (permalink / raw)
  To: vinod.koul, nsekhar, olof
  Cc: linux-arm-kernel, linux-kernel, linux-omap, dmaengine,
	devicetree, tony, t-kristo

The eDMA3 TPTC does not need any software configuration, but it is a
separate IP block in the SoC. In order the omap hwmod core to be able to
handle the TPTC resources correctly in regards of PM we need to have a
driver loaded for it.
This patch will add a dummy driver skeleton without probe or remove
callbacks provided.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Reported-by: Olof Johansson <olof@lixom.net>
---
Hi,

while it would have been possible to add the edma3-tptc compatible to be handled
by the edma-tpcc driver (and when the device is tptc, do nothing) it would
make the driver code a bit harder to follow.
I think having separate structure for the tptc looks better and if we ever need
to have separate driver for the tptc it will be cleaner for us the separate it.

This patch alone w/o any hwmod flag changes will make sure that the edma-tptc is
not powered down after the kernel is finished it's booting.

Regards,
Peter

 drivers/dma/edma.c | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/drivers/dma/edma.c b/drivers/dma/edma.c
index 31722d436a42..6b03e4e84e6b 100644
--- a/drivers/dma/edma.c
+++ b/drivers/dma/edma.c
@@ -269,6 +269,11 @@ static const struct of_device_id edma_of_ids[] = {
 	{}
 };
 
+static const struct of_device_id edma_tptc_of_ids[] = {
+	{ .compatible = "ti,edma3-tptc", },
+	{}
+};
+
 static inline unsigned int edma_read(struct edma_cc *ecc, int offset)
 {
 	return (unsigned int)__raw_readl(ecc->base + offset);
@@ -2399,6 +2404,13 @@ static struct platform_driver edma_driver = {
 	},
 };
 
+static struct platform_driver edma_tptc_driver = {
+	.driver = {
+		.name	= "edma3-tptc",
+		.of_match_table = edma_tptc_of_ids,
+	},
+};
+
 bool edma_filter_fn(struct dma_chan *chan, void *param)
 {
 	bool match = false;
@@ -2418,6 +2430,12 @@ EXPORT_SYMBOL(edma_filter_fn);
 
 static int edma_init(void)
 {
+	int ret;
+
+	ret = platform_driver_register(&edma_tptc_driver);
+	if (ret)
+		return ret;
+
 	return platform_driver_register(&edma_driver);
 }
 subsys_initcall(edma_init);
@@ -2425,6 +2443,7 @@ subsys_initcall(edma_init);
 static void __exit edma_exit(void)
 {
 	platform_driver_unregister(&edma_driver);
+	platform_driver_unregister(&edma_tptc_driver);
 }
 module_exit(edma_exit);
 
-- 
2.6.1


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

* Re: [PATCH] dmaengine: edma: Add dummy driver skeleton for edma3-tptc
  2015-11-02 13:21 [PATCH] dmaengine: edma: Add dummy driver skeleton for edma3-tptc Peter Ujfalusi
@ 2015-11-04 16:33 ` Felipe Balbi
  2015-11-04 16:41   ` Vinod Koul
  0 siblings, 1 reply; 4+ messages in thread
From: Felipe Balbi @ 2015-11-04 16:33 UTC (permalink / raw)
  To: Peter Ujfalusi, vinod.koul, nsekhar, olof
  Cc: linux-arm-kernel, linux-kernel, linux-omap, dmaengine,
	devicetree, tony, t-kristo

[-- Attachment #1: Type: text/plain, Size: 3006 bytes --]

Peter Ujfalusi <peter.ujfalusi@ti.com> writes:

> The eDMA3 TPTC does not need any software configuration, but it is a
> separate IP block in the SoC. In order the omap hwmod core to be able to
> handle the TPTC resources correctly in regards of PM we need to have a
> driver loaded for it.
> This patch will add a dummy driver skeleton without probe or remove
> callbacks provided.
>
> Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
> Reported-by: Olof Johansson <olof@lixom.net>

This fixes the problem I also reported on linux-omap [1]

Tested-by: Felipe Balbi <balbi@ti.com>

[1] http://marc.info/?l=linux-omap&m=144665429032014&w=2

> ---
> Hi,
>
> while it would have been possible to add the edma3-tptc compatible to be handled
> by the edma-tpcc driver (and when the device is tptc, do nothing) it would
> make the driver code a bit harder to follow.
> I think having separate structure for the tptc looks better and if we ever need
> to have separate driver for the tptc it will be cleaner for us the separate it.
>
> This patch alone w/o any hwmod flag changes will make sure that the edma-tptc is
> not powered down after the kernel is finished it's booting.
>
> Regards,
> Peter
>
>  drivers/dma/edma.c | 19 +++++++++++++++++++
>  1 file changed, 19 insertions(+)
>
> diff --git a/drivers/dma/edma.c b/drivers/dma/edma.c
> index 31722d436a42..6b03e4e84e6b 100644
> --- a/drivers/dma/edma.c
> +++ b/drivers/dma/edma.c
> @@ -269,6 +269,11 @@ static const struct of_device_id edma_of_ids[] = {
>  	{}
>  };
>  
> +static const struct of_device_id edma_tptc_of_ids[] = {
> +	{ .compatible = "ti,edma3-tptc", },
> +	{}
> +};
> +
>  static inline unsigned int edma_read(struct edma_cc *ecc, int offset)
>  {
>  	return (unsigned int)__raw_readl(ecc->base + offset);
> @@ -2399,6 +2404,13 @@ static struct platform_driver edma_driver = {
>  	},
>  };
>  
> +static struct platform_driver edma_tptc_driver = {
> +	.driver = {
> +		.name	= "edma3-tptc",
> +		.of_match_table = edma_tptc_of_ids,
> +	},
> +};
> +
>  bool edma_filter_fn(struct dma_chan *chan, void *param)
>  {
>  	bool match = false;
> @@ -2418,6 +2430,12 @@ EXPORT_SYMBOL(edma_filter_fn);
>  
>  static int edma_init(void)
>  {
> +	int ret;
> +
> +	ret = platform_driver_register(&edma_tptc_driver);
> +	if (ret)
> +		return ret;
> +
>  	return platform_driver_register(&edma_driver);
>  }
>  subsys_initcall(edma_init);
> @@ -2425,6 +2443,7 @@ subsys_initcall(edma_init);
>  static void __exit edma_exit(void)
>  {
>  	platform_driver_unregister(&edma_driver);
> +	platform_driver_unregister(&edma_tptc_driver);
>  }
>  module_exit(edma_exit);
>  
> -- 
> 2.6.1
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/

-- 
balbi

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 818 bytes --]

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

* Re: [PATCH] dmaengine: edma: Add dummy driver skeleton for edma3-tptc
  2015-11-04 16:33 ` Felipe Balbi
@ 2015-11-04 16:41   ` Vinod Koul
  2015-11-13 14:54     ` Tony Lindgren
  0 siblings, 1 reply; 4+ messages in thread
From: Vinod Koul @ 2015-11-04 16:41 UTC (permalink / raw)
  To: Felipe Balbi
  Cc: Peter Ujfalusi, nsekhar, olof, linux-arm-kernel, linux-kernel,
	linux-omap, dmaengine, devicetree, tony, t-kristo

[-- Attachment #1: Type: text/plain, Size: 863 bytes --]

On Wed, Nov 04, 2015 at 10:33:27AM -0600, Felipe Balbi wrote:
> Peter Ujfalusi <peter.ujfalusi@ti.com> writes:
> 
> > The eDMA3 TPTC does not need any software configuration, but it is a
> > separate IP block in the SoC. In order the omap hwmod core to be able to
> > handle the TPTC resources correctly in regards of PM we need to have a
> > driver loaded for it.
> > This patch will add a dummy driver skeleton without probe or remove
> > callbacks provided.
> >
> > Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
> > Reported-by: Olof Johansson <olof@lixom.net>
> 
> This fixes the problem I also reported on linux-omap [1]
> 
> Tested-by: Felipe Balbi <balbi@ti.com>
> 
> [1] http://marc.info/?l=linux-omap&m=144665429032014&w=2

Great, I was about to point you to this series, I will push this in -next
now

Thanks
-- 
~Vinod

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

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

* Re: [PATCH] dmaengine: edma: Add dummy driver skeleton for edma3-tptc
  2015-11-04 16:41   ` Vinod Koul
@ 2015-11-13 14:54     ` Tony Lindgren
  0 siblings, 0 replies; 4+ messages in thread
From: Tony Lindgren @ 2015-11-13 14:54 UTC (permalink / raw)
  To: Vinod Koul
  Cc: Felipe Balbi, Peter Ujfalusi, nsekhar, olof, linux-arm-kernel,
	linux-kernel, linux-omap, dmaengine, devicetree, t-kristo

* Vinod Koul <vinod.koul@intel.com> [151104 08:38]:
> On Wed, Nov 04, 2015 at 10:33:27AM -0600, Felipe Balbi wrote:
> > Peter Ujfalusi <peter.ujfalusi@ti.com> writes:
> > 
> > > The eDMA3 TPTC does not need any software configuration, but it is a
> > > separate IP block in the SoC. In order the omap hwmod core to be able to
> > > handle the TPTC resources correctly in regards of PM we need to have a
> > > driver loaded for it.
> > > This patch will add a dummy driver skeleton without probe or remove
> > > callbacks provided.
> > >
> > > Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
> > > Reported-by: Olof Johansson <olof@lixom.net>
> > 
> > This fixes the problem I also reported on linux-omap [1]
> > 
> > Tested-by: Felipe Balbi <balbi@ti.com>
> > 
> > [1] http://marc.info/?l=linux-omap&m=144665429032014&w=2
> 
> Great, I was about to point you to this series, I will push this in -next
> now

Soungd good to me, thanks for fixing it up Peter.

Tony



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

end of thread, other threads:[~2015-11-13 14:54 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-11-02 13:21 [PATCH] dmaengine: edma: Add dummy driver skeleton for edma3-tptc Peter Ujfalusi
2015-11-04 16:33 ` Felipe Balbi
2015-11-04 16:41   ` Vinod Koul
2015-11-13 14:54     ` Tony Lindgren

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).