* [PATCH] spi/amba-pl022: work in polling or interrupt mode if pl022_dma_probe fails
@ 2011-05-13 11:54 Viresh Kumar
2011-05-13 13:19 ` viresh kumar
[not found] ` <a105605733caadfea25034ce0b8af73eb907fd33.1305287569.git.viresh.kumar-qxv4g6HH51o@public.gmane.org>
0 siblings, 2 replies; 4+ messages in thread
From: Viresh Kumar @ 2011-05-13 11:54 UTC (permalink / raw)
To: linus.walleij, linux-arm-kernel, spi-devel-general
Cc: armando.visconti, shiraz.hashim, viresh.linux
If pl022_dma_probe fails, we can try to transfer data in polling or interrupt
mode. Also, set platform_info->enable_dma to 0, so that no other code tries to
use dma.
Signed-off-by: Viresh Kumar <viresh.kumar@st.com>
---
drivers/spi/amba-pl022.c | 11 ++++++-----
1 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/drivers/spi/amba-pl022.c b/drivers/spi/amba-pl022.c
index 08de58e..82b98b8 100644
--- a/drivers/spi/amba-pl022.c
+++ b/drivers/spi/amba-pl022.c
@@ -1063,7 +1063,7 @@ static int __init pl022_dma_probe(struct pl022 *pl022)
pl022->master_info->dma_filter,
pl022->master_info->dma_rx_param);
if (!pl022->dma_rx_channel) {
- dev_err(&pl022->adev->dev, "no RX DMA channel!\n");
+ dev_warn(&pl022->adev->dev, "no RX DMA channel!\n");
goto err_no_rxchan;
}
@@ -1071,13 +1071,13 @@ static int __init pl022_dma_probe(struct pl022 *pl022)
pl022->master_info->dma_filter,
pl022->master_info->dma_tx_param);
if (!pl022->dma_tx_channel) {
- dev_err(&pl022->adev->dev, "no TX DMA channel!\n");
+ dev_warn(&pl022->adev->dev, "no TX DMA channel!\n");
goto err_no_txchan;
}
pl022->dummypage = kmalloc(PAGE_SIZE, GFP_KERNEL);
if (!pl022->dummypage) {
- dev_err(&pl022->adev->dev, "no DMA dummypage!\n");
+ dev_warn(&pl022->adev->dev, "no DMA dummypage!\n");
goto err_no_dummypage;
}
@@ -1093,6 +1093,8 @@ err_no_txchan:
dma_release_channel(pl022->dma_rx_channel);
pl022->dma_rx_channel = NULL;
err_no_rxchan:
+ dev_warn(&pl022->adev->dev,
+ "Failed to work in dma mode, work without dma!\n");
return -ENODEV;
}
@@ -2107,7 +2109,7 @@ pl022_probe(struct amba_device *adev, const struct amba_id *id)
if (platform_info->enable_dma) {
status = pl022_dma_probe(pl022);
if (status != 0)
- goto err_no_dma;
+ platform_info->enable_dma = 0;
}
/* Initialize and start queue */
@@ -2143,7 +2145,6 @@ pl022_probe(struct amba_device *adev, const struct amba_id *id)
err_init_queue:
destroy_queue(pl022);
pl022_dma_remove(pl022);
- err_no_dma:
free_irq(adev->irq[0], pl022);
err_no_irq:
clk_put(pl022->clk);
--
1.7.2.2
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] spi/amba-pl022: work in polling or interrupt mode if pl022_dma_probe fails
2011-05-13 11:54 [PATCH] spi/amba-pl022: work in polling or interrupt mode if pl022_dma_probe fails Viresh Kumar
@ 2011-05-13 13:19 ` viresh kumar
2011-05-19 19:20 ` Grant Likely
[not found] ` <a105605733caadfea25034ce0b8af73eb907fd33.1305287569.git.viresh.kumar-qxv4g6HH51o@public.gmane.org>
1 sibling, 1 reply; 4+ messages in thread
From: viresh kumar @ 2011-05-13 13:19 UTC (permalink / raw)
To: linus.walleij
Cc: armando.visconti, Shiraz HASHIM, linux-arm-kernel,
spi-devel-general
On 5/13/11, Viresh Kumar <viresh.kumar@st.com> wrote:
> diff --git a/drivers/spi/amba-pl022.c b/drivers/spi/amba-pl022.c
> index 08de58e..82b98b8 100644
> --- a/drivers/spi/amba-pl022.c
> +++ b/drivers/spi/amba-pl022.c
> @@ -1063,7 +1063,7 @@ static int __init pl022_dma_probe(struct pl022 *pl022)
> pl022->master_info->dma_filter,
> pl022->master_info->dma_rx_param);
> if (!pl022->dma_rx_channel) {
> - dev_err(&pl022->adev->dev, "no RX DMA channel!\n");
> + dev_warn(&pl022->adev->dev, "no RX DMA channel!\n");
Sorry, this must be dev_dbg
> goto err_no_rxchan;
> }
>
> @@ -1071,13 +1071,13 @@ static int __init pl022_dma_probe(struct pl022
> *pl022)
> pl022->master_info->dma_filter,
> pl022->master_info->dma_tx_param);
> if (!pl022->dma_tx_channel) {
> - dev_err(&pl022->adev->dev, "no TX DMA channel!\n");
> + dev_warn(&pl022->adev->dev, "no TX DMA channel!\n");
dev_dbg
> goto err_no_txchan;
> }
>
> pl022->dummypage = kmalloc(PAGE_SIZE, GFP_KERNEL);
> if (!pl022->dummypage) {
> - dev_err(&pl022->adev->dev, "no DMA dummypage!\n");
> + dev_warn(&pl022->adev->dev, "no DMA dummypage!\n");
dev_dbg
> goto err_no_dummypage;
> }
>
> @@ -1093,6 +1093,8 @@ err_no_txchan:
> dma_release_channel(pl022->dma_rx_channel);
> pl022->dma_rx_channel = NULL;
> err_no_rxchan:
> + dev_warn(&pl022->adev->dev,
dev_err
> + "Failed to work in dma mode, work without dma!\n");
> return -ENODEV;
> }
>
Will resend patch on Monday. Till that time, please see if this patch
with mentioned changes is acceptable or not.
--
viresh
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] spi/amba-pl022: work in polling or interrupt mode if pl022_dma_probe fails
2011-05-13 13:19 ` viresh kumar
@ 2011-05-19 19:20 ` Grant Likely
0 siblings, 0 replies; 4+ messages in thread
From: Grant Likely @ 2011-05-19 19:20 UTC (permalink / raw)
To: viresh kumar
Cc: armando.visconti, Shiraz HASHIM, linus.walleij, linux-arm-kernel,
spi-devel-general
On Fri, May 13, 2011 at 06:49:39PM +0530, viresh kumar wrote:
> On 5/13/11, Viresh Kumar <viresh.kumar@st.com> wrote:
> > diff --git a/drivers/spi/amba-pl022.c b/drivers/spi/amba-pl022.c
> > index 08de58e..82b98b8 100644
> > --- a/drivers/spi/amba-pl022.c
> > +++ b/drivers/spi/amba-pl022.c
> > @@ -1063,7 +1063,7 @@ static int __init pl022_dma_probe(struct pl022 *pl022)
> > pl022->master_info->dma_filter,
> > pl022->master_info->dma_rx_param);
> > if (!pl022->dma_rx_channel) {
> > - dev_err(&pl022->adev->dev, "no RX DMA channel!\n");
> > + dev_warn(&pl022->adev->dev, "no RX DMA channel!\n");
>
> Sorry, this must be dev_dbg
Please fixup and repost. Add Linus' ack while you're at it. :-)
Thanks,
g.
>
> > goto err_no_rxchan;
> > }
> >
> > @@ -1071,13 +1071,13 @@ static int __init pl022_dma_probe(struct pl022
> > *pl022)
> > pl022->master_info->dma_filter,
> > pl022->master_info->dma_tx_param);
> > if (!pl022->dma_tx_channel) {
> > - dev_err(&pl022->adev->dev, "no TX DMA channel!\n");
> > + dev_warn(&pl022->adev->dev, "no TX DMA channel!\n");
>
> dev_dbg
>
> > goto err_no_txchan;
> > }
> >
> > pl022->dummypage = kmalloc(PAGE_SIZE, GFP_KERNEL);
> > if (!pl022->dummypage) {
> > - dev_err(&pl022->adev->dev, "no DMA dummypage!\n");
> > + dev_warn(&pl022->adev->dev, "no DMA dummypage!\n");
>
> dev_dbg
>
> > goto err_no_dummypage;
> > }
> >
> > @@ -1093,6 +1093,8 @@ err_no_txchan:
> > dma_release_channel(pl022->dma_rx_channel);
> > pl022->dma_rx_channel = NULL;
> > err_no_rxchan:
> > + dev_warn(&pl022->adev->dev,
>
> dev_err
>
> > + "Failed to work in dma mode, work without dma!\n");
> > return -ENODEV;
> > }
> >
>
> Will resend patch on Monday. Till that time, please see if this patch
> with mentioned changes is acceptable or not.
>
> --
> viresh
>
> _______________________________________________
> 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] 4+ messages in thread
[parent not found: <a105605733caadfea25034ce0b8af73eb907fd33.1305287569.git.viresh.kumar-qxv4g6HH51o@public.gmane.org>]
* Re: [PATCH] spi/amba-pl022: work in polling or interrupt mode if pl022_dma_probe fails
[not found] ` <a105605733caadfea25034ce0b8af73eb907fd33.1305287569.git.viresh.kumar-qxv4g6HH51o@public.gmane.org>
@ 2011-05-13 14:22 ` Linus Walleij
0 siblings, 0 replies; 4+ messages in thread
From: Linus Walleij @ 2011-05-13 14:22 UTC (permalink / raw)
To: Viresh Kumar
Cc: armando.visconti-qxv4g6HH51o,
spi-devel-general-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
shiraz.hashim-qxv4g6HH51o
2011/5/13 Viresh Kumar <viresh.kumar-qxv4g6HH51o@public.gmane.org>:
> If pl022_dma_probe fails, we can try to transfer data in polling or interrupt
> mode. Also, set platform_info->enable_dma to 0, so that no other code tries to
> use dma.
Sure why not!
Acked-by: Linus Walleij <linus.walleij-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
Yours,
Linus Walleij
------------------------------------------------------------------------------
Achieve unprecedented app performance and reliability
What every C/C++ and Fortran developer should know.
Learn how Intel has extended the reach of its next-generation tools
to help boost performance applications - inlcuding clusters.
http://p.sf.net/sfu/intel-dev2devmay
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2011-05-19 19:20 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-05-13 11:54 [PATCH] spi/amba-pl022: work in polling or interrupt mode if pl022_dma_probe fails Viresh Kumar
2011-05-13 13:19 ` viresh kumar
2011-05-19 19:20 ` Grant Likely
[not found] ` <a105605733caadfea25034ce0b8af73eb907fd33.1305287569.git.viresh.kumar-qxv4g6HH51o@public.gmane.org>
2011-05-13 14:22 ` Linus Walleij
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).