Re: [PATCH resend] spi/amba-pl022: work in polling or interrupt mode if pl022_dma_probe fails
On Mon, May 16, 2011 at 09:40:10AM +0530, Viresh Kumar wrote: 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.ku...@st.com Acked-by: Linus Walleij linus.wall...@linaro.org Merged, thanks. g. --- 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 dae886e..77f90de 100644 --- a/drivers/spi/amba-pl022.c +++ b/drivers/spi/amba-pl022.c @@ -1068,7 +1068,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_dbg(pl022-adev-dev, no RX DMA channel!\n); goto err_no_rxchan; } @@ -1076,13 +1076,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_dbg(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_dbg(pl022-adev-dev, no DMA dummypage!\n); goto err_no_dummypage; } @@ -1098,6 +1098,8 @@ err_no_txchan: dma_release_channel(pl022-dma_rx_channel); pl022-dma_rx_channel = NULL; err_no_rxchan: + dev_err(pl022-adev-dev, + Failed to work in dma mode, work without dma!\n); return -ENODEV; } @@ -2111,7 +2113,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 -- 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 ___ spi-devel-general mailing list spi-devel-general@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/spi-devel-general -- What Every C/C++ and Fortran developer Should Know! Read this article and learn how Intel has extended the reach of its next-generation tools to help Windows* and Linux* C/C++ and Fortran developers boost performance applications - including clusters. http://p.sf.net/sfu/intel-dev2devmay ___ spi-devel-general mailing list spi-devel-general@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/spi-devel-general
Re: [PATCH resend] spi/amba-pl022: work in polling or interrupt mode if pl022_dma_probe fails
On 05/16/2011 04:34 PM, Russell King - ARM Linux wrote: On Mon, May 16, 2011 at 09:40:10AM +0530, Viresh Kumar wrote: 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.ku...@st.com Acked-by: Linus Walleij linus.wall...@linaro.org Shouldn't this go via the SPI people rather than my tree? This can, but i have seen amba drivers patches going through your drivers branch, so sent to tracker. Should i get them through spi-devel?? -- viresh -- 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 ___ spi-devel-general mailing list spi-devel-general@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/spi-devel-general
Re: [PATCH resend] spi/amba-pl022: work in polling or interrupt mode if pl022_dma_probe fails
On Mon, May 16, 2011 at 04:56:59PM +0530, viresh kumar wrote: On 05/16/2011 04:34 PM, Russell King - ARM Linux wrote: On Mon, May 16, 2011 at 09:40:10AM +0530, Viresh Kumar wrote: 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.ku...@st.com Acked-by: Linus Walleij linus.wall...@linaro.org Shouldn't this go via the SPI people rather than my tree? This can, but i have seen amba drivers patches going through your drivers branch, so sent to tracker. Yes, because I authored quite a few primecell drivers, and I continue to maintain those drivers. The SPI driver is not one of those though. Should i get them through spi-devel?? Yes please. -- 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 ___ spi-devel-general mailing list spi-devel-general@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/spi-devel-general
Re: [PATCH resend] spi/amba-pl022: work in polling or interrupt mode if pl022_dma_probe fails
On 05/16/2011 09:40 AM, Viresh KUMAR wrote: 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.ku...@st.com Acked-by: Linus Walleij linus.wall...@linaro.org --- drivers/spi/amba-pl022.c | 11 ++- 1 files changed, 6 insertions(+), 5 deletions(-) David, Sorry for missing you earlier in to list. Can you please push this through spi-devel tree. -- viresh diff --git a/drivers/spi/amba-pl022.c b/drivers/spi/amba-pl022.c index dae886e..77f90de 100644 --- a/drivers/spi/amba-pl022.c +++ b/drivers/spi/amba-pl022.c @@ -1068,7 +1068,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_dbg(pl022-adev-dev, no RX DMA channel!\n); goto err_no_rxchan; } @@ -1076,13 +1076,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_dbg(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_dbg(pl022-adev-dev, no DMA dummypage!\n); goto err_no_dummypage; } @@ -1098,6 +1098,8 @@ err_no_txchan: dma_release_channel(pl022-dma_rx_channel); pl022-dma_rx_channel = NULL; err_no_rxchan: + dev_err(pl022-adev-dev, + Failed to work in dma mode, work without dma!\n); return -ENODEV; } @@ -2111,7 +2113,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); -- viresh -- 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 ___ spi-devel-general mailing list spi-devel-general@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/spi-devel-general
[PATCH resend] spi/amba-pl022: work in polling or interrupt mode if pl022_dma_probe fails
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.ku...@st.com Acked-by: Linus Walleij linus.wall...@linaro.org --- 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 dae886e..77f90de 100644 --- a/drivers/spi/amba-pl022.c +++ b/drivers/spi/amba-pl022.c @@ -1068,7 +1068,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_dbg(pl022-adev-dev, no RX DMA channel!\n); goto err_no_rxchan; } @@ -1076,13 +1076,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_dbg(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_dbg(pl022-adev-dev, no DMA dummypage!\n); goto err_no_dummypage; } @@ -1098,6 +1098,8 @@ err_no_txchan: dma_release_channel(pl022-dma_rx_channel); pl022-dma_rx_channel = NULL; err_no_rxchan: + dev_err(pl022-adev-dev, + Failed to work in dma mode, work without dma!\n); return -ENODEV; } @@ -2111,7 +2113,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 -- 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 ___ spi-devel-general mailing list spi-devel-general@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/spi-devel-general