From: Peter Ujfalusi <peter.ujfalusi@ti.com> To: <vinod.koul@intel.com>, <tony@atomide.com> Cc: <devicetree@vger.kernel.org>, <linux-kernel@vger.kernel.org>, <dan.j.williams@intel.com>, <dmaengine@vger.kernel.org>, <linux-serial@vger.kernel.org>, <linux-omap@vger.kernel.org>, <linux-mmc@vger.kernel.org>, <linux-crypto@vger.kernel.org>, <linux-spi@vger.kernel.org>, <linux-media@vger.kernel.org>, <alsa-devel@alsa-project.org>, Herbert Xu <herbert@gondor.apana.org.au>, "David S. Miller" <davem@davemloft.net>, Lokesh Vutla <lokeshvutla@ti.com> Subject: [PATCH 08/13] crypto: omap-aes - Support for deferred probing when requesting DMA channels Date: Tue, 26 May 2015 16:26:03 +0300 [thread overview] Message-ID: <1432646768-12532-9-git-send-email-peter.ujfalusi@ti.com> (raw) In-Reply-To: <1432646768-12532-1-git-send-email-peter.ujfalusi@ti.com> Switch to use ma_request_slave_channel_compat_reason() to request the DMA channels. Only fall back to pio mode if the error code returned is not -EPROBE_DEFER, otherwise return from the probe with the -EPROBE_DEFER. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> CC: Herbert Xu <herbert@gondor.apana.org.au> CC: David S. Miller <davem@davemloft.net> CC: Lokesh Vutla <lokeshvutla@ti.com> --- drivers/crypto/omap-aes.c | 38 ++++++++++++++++++++------------------ 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/drivers/crypto/omap-aes.c b/drivers/crypto/omap-aes.c index 9a28b7e07c71..699a14509adb 100644 --- a/drivers/crypto/omap-aes.c +++ b/drivers/crypto/omap-aes.c @@ -356,7 +356,7 @@ static void omap_aes_dma_out_callback(void *data) static int omap_aes_dma_init(struct omap_aes_dev *dd) { - int err = -ENOMEM; + int err; dma_cap_mask_t mask; dd->dma_lch_out = NULL; @@ -365,21 +365,20 @@ static int omap_aes_dma_init(struct omap_aes_dev *dd) dma_cap_zero(mask); dma_cap_set(DMA_SLAVE, mask); - dd->dma_lch_in = dma_request_slave_channel_compat(mask, - omap_dma_filter_fn, - &dd->dma_in, - dd->dev, "rx"); - if (!dd->dma_lch_in) { + dd->dma_lch_in = dma_request_slave_channel_compat_reason(mask, + omap_dma_filter_fn, &dd->dma_in, + dd->dev, "rx"); + if (IS_ERR(dd->dma_lch_in)) { dev_err(dd->dev, "Unable to request in DMA channel\n"); - goto err_dma_in; + return PTR_ERR(dd->dma_lch_in); } - dd->dma_lch_out = dma_request_slave_channel_compat(mask, - omap_dma_filter_fn, - &dd->dma_out, - dd->dev, "tx"); - if (!dd->dma_lch_out) { + dd->dma_lch_out = dma_request_slave_channel_compat_reason(mask, + omap_dma_filter_fn, &dd->dma_out, + dd->dev, "tx"); + if (IS_ERR(dd->dma_lch_out)) { dev_err(dd->dev, "Unable to request out DMA channel\n"); + err = PTR_ERR(dd->dma_lch_out); goto err_dma_out; } @@ -387,14 +386,15 @@ static int omap_aes_dma_init(struct omap_aes_dev *dd) err_dma_out: dma_release_channel(dd->dma_lch_in); -err_dma_in: - if (err) - pr_err("error: %d\n", err); + return err; } static void omap_aes_dma_cleanup(struct omap_aes_dev *dd) { + if (dd->pio_only) + return; + dma_release_channel(dd->dma_lch_out); dma_release_channel(dd->dma_lch_in); } @@ -1218,7 +1218,9 @@ static int omap_aes_probe(struct platform_device *pdev) tasklet_init(&dd->queue_task, omap_aes_queue_task, (unsigned long)dd); err = omap_aes_dma_init(dd); - if (err && AES_REG_IRQ_STATUS(dd) && AES_REG_IRQ_ENABLE(dd)) { + if (err == -EPROBE_DEFER) { + goto err_irq; + } else if (err && AES_REG_IRQ_STATUS(dd) && AES_REG_IRQ_ENABLE(dd)) { dd->pio_only = 1; irq = platform_get_irq(pdev, 0); @@ -1262,8 +1264,8 @@ err_algs: for (j = dd->pdata->algs_info[i].registered - 1; j >= 0; j--) crypto_unregister_alg( &dd->pdata->algs_info[i].algs_list[j]); - if (!dd->pio_only) - omap_aes_dma_cleanup(dd); + + omap_aes_dma_cleanup(dd); err_irq: tasklet_kill(&dd->done_task); tasklet_kill(&dd->queue_task); -- 2.3.5
WARNING: multiple messages have this Message-ID (diff)
From: Peter Ujfalusi <peter.ujfalusi@ti.com> To: vinod.koul@intel.com, tony@atomide.com Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, dan.j.williams@intel.com, dmaengine@vger.kernel.org, linux-serial@vger.kernel.org, linux-omap@vger.kernel.org, linux-mmc@vger.kernel.org, linux-crypto@vger.kernel.org, linux-spi@vger.kernel.org, linux-media@vger.kernel.org, alsa-devel@alsa-project.org, Herbert Xu <herbert@gondor.apana.org.au>, "David S. Miller" <davem@davemloft.net>, Lokesh Vutla <lokeshvutla@ti.com> Subject: [PATCH 08/13] crypto: omap-aes - Support for deferred probing when requesting DMA channels Date: Tue, 26 May 2015 16:26:03 +0300 [thread overview] Message-ID: <1432646768-12532-9-git-send-email-peter.ujfalusi@ti.com> (raw) In-Reply-To: <1432646768-12532-1-git-send-email-peter.ujfalusi@ti.com> Switch to use ma_request_slave_channel_compat_reason() to request the DMA channels. Only fall back to pio mode if the error code returned is not -EPROBE_DEFER, otherwise return from the probe with the -EPROBE_DEFER. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> CC: Herbert Xu <herbert@gondor.apana.org.au> CC: David S. Miller <davem@davemloft.net> CC: Lokesh Vutla <lokeshvutla@ti.com> --- drivers/crypto/omap-aes.c | 38 ++++++++++++++++++++------------------ 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/drivers/crypto/omap-aes.c b/drivers/crypto/omap-aes.c index 9a28b7e07c71..699a14509adb 100644 --- a/drivers/crypto/omap-aes.c +++ b/drivers/crypto/omap-aes.c @@ -356,7 +356,7 @@ static void omap_aes_dma_out_callback(void *data) static int omap_aes_dma_init(struct omap_aes_dev *dd) { - int err = -ENOMEM; + int err; dma_cap_mask_t mask; dd->dma_lch_out = NULL; @@ -365,21 +365,20 @@ static int omap_aes_dma_init(struct omap_aes_dev *dd) dma_cap_zero(mask); dma_cap_set(DMA_SLAVE, mask); - dd->dma_lch_in = dma_request_slave_channel_compat(mask, - omap_dma_filter_fn, - &dd->dma_in, - dd->dev, "rx"); - if (!dd->dma_lch_in) { + dd->dma_lch_in = dma_request_slave_channel_compat_reason(mask, + omap_dma_filter_fn, &dd->dma_in, + dd->dev, "rx"); + if (IS_ERR(dd->dma_lch_in)) { dev_err(dd->dev, "Unable to request in DMA channel\n"); - goto err_dma_in; + return PTR_ERR(dd->dma_lch_in); } - dd->dma_lch_out = dma_request_slave_channel_compat(mask, - omap_dma_filter_fn, - &dd->dma_out, - dd->dev, "tx"); - if (!dd->dma_lch_out) { + dd->dma_lch_out = dma_request_slave_channel_compat_reason(mask, + omap_dma_filter_fn, &dd->dma_out, + dd->dev, "tx"); + if (IS_ERR(dd->dma_lch_out)) { dev_err(dd->dev, "Unable to request out DMA channel\n"); + err = PTR_ERR(dd->dma_lch_out); goto err_dma_out; } @@ -387,14 +386,15 @@ static int omap_aes_dma_init(struct omap_aes_dev *dd) err_dma_out: dma_release_channel(dd->dma_lch_in); -err_dma_in: - if (err) - pr_err("error: %d\n", err); + return err; } static void omap_aes_dma_cleanup(struct omap_aes_dev *dd) { + if (dd->pio_only) + return; + dma_release_channel(dd->dma_lch_out); dma_release_channel(dd->dma_lch_in); } @@ -1218,7 +1218,9 @@ static int omap_aes_probe(struct platform_device *pdev) tasklet_init(&dd->queue_task, omap_aes_queue_task, (unsigned long)dd); err = omap_aes_dma_init(dd); - if (err && AES_REG_IRQ_STATUS(dd) && AES_REG_IRQ_ENABLE(dd)) { + if (err == -EPROBE_DEFER) { + goto err_irq; + } else if (err && AES_REG_IRQ_STATUS(dd) && AES_REG_IRQ_ENABLE(dd)) { dd->pio_only = 1; irq = platform_get_irq(pdev, 0); @@ -1262,8 +1264,8 @@ err_algs: for (j = dd->pdata->algs_info[i].registered - 1; j >= 0; j--) crypto_unregister_alg( &dd->pdata->algs_info[i].algs_list[j]); - if (!dd->pio_only) - omap_aes_dma_cleanup(dd); + + omap_aes_dma_cleanup(dd); err_irq: tasklet_kill(&dd->done_task); tasklet_kill(&dd->queue_task); -- 2.3.5
next prev parent reply other threads:[~2015-05-26 13:26 UTC|newest] Thread overview: 113+ messages / expand[flat|nested] mbox.gz Atom feed top 2015-05-26 13:25 [PATCH 00/13] dmaengine + omap drivers: support fro deferred probing Peter Ujfalusi 2015-05-26 13:25 ` Peter Ujfalusi 2015-05-26 13:25 ` Peter Ujfalusi 2015-05-26 13:25 ` [PATCH 01/13] dmaengine: of_dma: Correct return code for of_dma_request_slave_channel in case !CONFIG_OF Peter Ujfalusi 2015-05-26 13:25 ` Peter Ujfalusi 2015-05-26 13:25 ` Peter Ujfalusi 2015-05-26 13:25 ` [PATCH 02/13] dmaengine: Introduce dma_request_slave_channel_compat_reason() Peter Ujfalusi 2015-05-26 13:25 ` Peter Ujfalusi 2015-05-26 13:25 ` Peter Ujfalusi 2015-05-29 9:33 ` Vinod Koul 2015-05-29 9:42 ` Geert Uytterhoeven 2015-05-29 9:42 ` Geert Uytterhoeven 2015-05-29 10:18 ` Vinod Koul 2015-05-29 14:32 ` Peter Ujfalusi 2015-05-29 14:32 ` Peter Ujfalusi 2015-06-02 12:55 ` Vinod Koul 2015-06-04 15:58 ` Peter Ujfalusi 2015-06-04 15:58 ` Peter Ujfalusi 2015-06-12 12:58 ` Vinod Koul 2015-06-22 11:31 ` Peter Ujfalusi 2015-06-22 11:31 ` Peter Ujfalusi 2015-06-22 11:31 ` Peter Ujfalusi 2015-06-24 16:24 ` Vinod Koul 2015-06-25 11:15 ` Arnd Bergmann 2015-11-18 14:21 ` Peter Ujfalusi 2015-11-18 14:21 ` Peter Ujfalusi 2015-11-18 14:21 ` Peter Ujfalusi 2015-11-18 14:29 ` Arnd Bergmann 2015-11-18 14:41 ` Peter Ujfalusi 2015-11-18 14:41 ` Peter Ujfalusi 2015-11-18 14:41 ` Peter Ujfalusi 2015-11-18 15:07 ` Arnd Bergmann 2015-11-18 15:43 ` Andy Shevchenko 2015-11-18 15:43 ` Andy Shevchenko [not found] ` <CAHp75VeZFXp9i_zz7CBkVQVPGQxuzYk9AbWbbbn33r8YX3LCdw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2015-11-18 15:51 ` Arnd Bergmann 2015-11-18 15:51 ` Arnd Bergmann 2015-11-18 16:00 ` Andy Shevchenko 2015-11-18 16:06 ` Vinod Koul 2015-11-18 16:06 ` Vinod Koul 2015-11-19 10:34 ` Peter Ujfalusi 2015-11-19 10:34 ` Peter Ujfalusi 2015-11-19 11:25 ` Arnd Bergmann 2015-11-20 10:25 ` Peter Ujfalusi 2015-11-20 10:25 ` Peter Ujfalusi 2015-11-20 10:58 ` Arnd Bergmann 2015-11-20 10:58 ` Arnd Bergmann 2015-11-20 12:24 ` Andy Shevchenko 2015-11-20 12:24 ` Andy Shevchenko [not found] ` <CAHp75VdoHqPMNGFfz4mPhX+Lw+vxgiyqFS8j5+kQ9Z9CHt=OTA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2015-11-20 12:30 ` Peter Ujfalusi 2015-11-20 12:30 ` Peter Ujfalusi [not found] ` <564F1253.4000800-l0cyMroinI0@public.gmane.org> 2015-11-20 14:08 ` Andy Shevchenko 2015-11-20 14:08 ` Andy Shevchenko 2015-11-20 12:52 ` Peter Ujfalusi 2015-11-20 12:52 ` Peter Ujfalusi 2015-11-20 12:52 ` Peter Ujfalusi [not found] ` <564F1773.9030006-l0cyMroinI0@public.gmane.org> 2015-11-20 13:48 ` Arnd Bergmann 2015-11-20 13:48 ` Arnd Bergmann 2015-11-18 15:46 ` Andy Shevchenko 2015-11-19 10:36 ` Peter Ujfalusi 2015-11-19 10:36 ` Peter Ujfalusi 2015-05-26 13:25 ` [PATCH 04/13] mmc: omap_hsmmc: No need to check DMA channel validity at module remove Peter Ujfalusi 2015-05-26 13:25 ` Peter Ujfalusi 2015-05-26 13:25 ` Peter Ujfalusi 2015-05-28 7:20 ` Ulf Hansson 2015-05-26 13:26 ` [PATCH 05/13] mmc: omap_hsmmc: Support for deferred probing when requesting DMA channels Peter Ujfalusi 2015-05-26 13:26 ` Peter Ujfalusi 2015-05-26 13:26 ` Peter Ujfalusi [not found] ` <1432646768-12532-6-git-send-email-peter.ujfalusi-l0cyMroinI0@public.gmane.org> 2015-05-28 7:23 ` Ulf Hansson 2015-05-28 7:23 ` Ulf Hansson 2015-05-26 13:26 ` [PATCH 06/13] mmc: omap: " Peter Ujfalusi 2015-05-26 13:26 ` Peter Ujfalusi 2015-05-26 13:26 ` [PATCH 07/13] mmc: davinci_mmc: " Peter Ujfalusi 2015-05-26 13:26 ` Peter Ujfalusi 2015-05-26 13:26 ` Peter Ujfalusi 2015-05-28 7:31 ` Ulf Hansson 2015-05-26 13:26 ` Peter Ujfalusi [this message] 2015-05-26 13:26 ` [PATCH 08/13] crypto: omap-aes - " Peter Ujfalusi 2015-05-26 13:26 ` [PATCH 10/13] crypto: omap-sham - Support for deferred probing when requesting DMA channel Peter Ujfalusi 2015-05-26 13:26 ` Peter Ujfalusi 2015-05-26 13:26 ` [PATCH 11/13] spi: omap2-mcspi: Support for deferred probing when requesting DMA channels Peter Ujfalusi 2015-05-26 13:26 ` Peter Ujfalusi 2015-05-26 15:27 ` Mark Brown 2015-05-27 11:15 ` Peter Ujfalusi 2015-05-27 11:15 ` Peter Ujfalusi [not found] ` <5565A740.2020707-l0cyMroinI0@public.gmane.org> 2015-05-27 17:48 ` Mark Brown 2015-05-27 17:48 ` Mark Brown 2015-05-27 17:48 ` Mark Brown 2015-05-26 13:26 ` [PATCH 12/13] [media] omap3isp: Support for deferred probing when requesting DMA channel Peter Ujfalusi 2015-05-26 13:26 ` Peter Ujfalusi 2015-11-09 19:50 ` Laurent Pinchart 2015-11-10 7:56 ` Peter Ujfalusi 2015-11-10 7:56 ` Peter Ujfalusi 2015-11-10 7:56 ` Peter Ujfalusi [not found] ` <1432646768-12532-1-git-send-email-peter.ujfalusi-l0cyMroinI0@public.gmane.org> 2015-05-26 13:25 ` [PATCH 03/13] serial: 8250_dma: Support for deferred probing when requesting DMA channels Peter Ujfalusi 2015-05-26 13:25 ` Peter Ujfalusi 2015-05-26 13:25 ` Peter Ujfalusi [not found] ` <1432646768-12532-4-git-send-email-peter.ujfalusi-l0cyMroinI0@public.gmane.org> 2015-05-26 14:44 ` Greg Kroah-Hartman 2015-05-26 14:44 ` Greg Kroah-Hartman 2015-05-27 10:41 ` Peter Ujfalusi 2015-05-27 10:41 ` Peter Ujfalusi 2015-05-27 10:41 ` Peter Ujfalusi 2015-05-27 10:41 ` Peter Ujfalusi 2015-05-26 15:08 ` Tony Lindgren 2015-05-26 15:08 ` Tony Lindgren 2015-05-27 10:58 ` Peter Ujfalusi 2015-05-27 10:58 ` Peter Ujfalusi 2015-05-26 13:26 ` [PATCH 09/13] crypto: omap-des - " Peter Ujfalusi 2015-05-26 13:26 ` Peter Ujfalusi 2015-05-26 13:26 ` Peter Ujfalusi 2015-05-26 13:26 ` [PATCH 13/13] ASoC: omap-pcm: Switch to use dma_request_slave_channel_compat_reason() Peter Ujfalusi 2015-05-26 13:26 ` Peter Ujfalusi 2015-05-26 13:26 ` Peter Ujfalusi 2015-05-27 17:48 ` Mark Brown
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=1432646768-12532-9-git-send-email-peter.ujfalusi@ti.com \ --to=peter.ujfalusi@ti.com \ --cc=alsa-devel@alsa-project.org \ --cc=dan.j.williams@intel.com \ --cc=davem@davemloft.net \ --cc=devicetree@vger.kernel.org \ --cc=dmaengine@vger.kernel.org \ --cc=herbert@gondor.apana.org.au \ --cc=linux-crypto@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-media@vger.kernel.org \ --cc=linux-mmc@vger.kernel.org \ --cc=linux-omap@vger.kernel.org \ --cc=linux-serial@vger.kernel.org \ --cc=linux-spi@vger.kernel.org \ --cc=lokeshvutla@ti.com \ --cc=tony@atomide.com \ --cc=vinod.koul@intel.com \ /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.