* [PATCHv2 0/4] dw_dmac: few cleanups to the driver @ 2012-10-17 10:31 Andy Shevchenko 2012-10-17 10:31 ` [PATCHv2 1/4] dmaengine: dw_dmac: remove CLK dependency Andy Shevchenko ` (3 more replies) 0 siblings, 4 replies; 17+ messages in thread From: Andy Shevchenko @ 2012-10-17 10:31 UTC (permalink / raw) To: Viresh Kumar, Vinod Koul, linux-kernel, spear-devel, balbi Cc: Andy Shevchenko There are few cleanups to the driver which partialy acked and reviewed. Since v1: - patch 1/4 ("use helper macro module_platform_driver()") is removed from the series: it brings issues rather than cleans up - patch 2/4 ("add module alias") is postponed Andy Shevchenko (2): dw_dmac: change {dev_}printk() to corresponding macros dw_dmac: don't call platform_get_drvdata twice Heikki Krogerus (2): dmaengine: dw_dmac: remove CLK dependency dmaengine: dw_dmac: amend description and indentation drivers/dma/Kconfig | 1 - drivers/dma/dw_dmac.c | 25 +++++++++++-------------- 2 files changed, 11 insertions(+), 15 deletions(-) -- 1.7.10.4 ^ permalink raw reply [flat|nested] 17+ messages in thread
* [PATCHv2 1/4] dmaengine: dw_dmac: remove CLK dependency 2012-10-17 10:31 [PATCHv2 0/4] dw_dmac: few cleanups to the driver Andy Shevchenko @ 2012-10-17 10:31 ` Andy Shevchenko 2012-10-17 10:31 ` [PATCHv2 2/4] dmaengine: dw_dmac: amend description and indentation Andy Shevchenko ` (2 subsequent siblings) 3 siblings, 0 replies; 17+ messages in thread From: Andy Shevchenko @ 2012-10-17 10:31 UTC (permalink / raw) To: Viresh Kumar, Vinod Koul, linux-kernel, spear-devel, balbi Cc: Heikki Krogerus, Andy Shevchenko From: Heikki Krogerus <heikki.krogerus@linux.intel.com> This driver could be used on different platforms. Thus, the HAVE_CLK dependency is dropped away. Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Reviewed-by: Felipe Balbi <balbi@ti.com> Acked-by: Viresh Kumar <viresh.kumar@linaro.org> --- drivers/dma/Kconfig | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/dma/Kconfig b/drivers/dma/Kconfig index 677cd6e..df32537 100644 --- a/drivers/dma/Kconfig +++ b/drivers/dma/Kconfig @@ -83,7 +83,6 @@ config INTEL_IOP_ADMA config DW_DMAC tristate "Synopsys DesignWare AHB DMA support" - depends on HAVE_CLK select DMA_ENGINE default y if CPU_AT32AP7000 help -- 1.7.10.4 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCHv2 2/4] dmaengine: dw_dmac: amend description and indentation 2012-10-17 10:31 [PATCHv2 0/4] dw_dmac: few cleanups to the driver Andy Shevchenko 2012-10-17 10:31 ` [PATCHv2 1/4] dmaengine: dw_dmac: remove CLK dependency Andy Shevchenko @ 2012-10-17 10:31 ` Andy Shevchenko 2012-10-17 10:31 ` [PATCHv2 3/4] dw_dmac: change {dev_}printk() to corresponding macros Andy Shevchenko 2012-10-17 10:31 ` [PATCHv2 4/4] dw_dmac: don't call platform_get_drvdata twice Andy Shevchenko 3 siblings, 0 replies; 17+ messages in thread From: Andy Shevchenko @ 2012-10-17 10:31 UTC (permalink / raw) To: Viresh Kumar, Vinod Koul, linux-kernel, spear-devel, balbi Cc: Heikki Krogerus, Andy Shevchenko From: Heikki Krogerus <heikki.krogerus@linux.intel.com> The driver will be used as a core part for various implementations of the DesignWare DMA device. The patch adjusts description on the top and corrects paragraph indentation in few places across the code. Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Acked-by: Viresh Kumar <viresh.kumar@linaro.org> --- drivers/dma/dw_dmac.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/dma/dw_dmac.c b/drivers/dma/dw_dmac.c index c4b0eb3..c27c125 100644 --- a/drivers/dma/dw_dmac.c +++ b/drivers/dma/dw_dmac.c @@ -1,6 +1,5 @@ /* - * Driver for the Synopsys DesignWare DMA Controller (aka DMACA on - * AVR32 systems.) + * Core driver for the Synopsys DesignWare DMA Controller * * Copyright (C) 2007-2008 Atmel Corporation * Copyright (C) 2010-2011 ST Microelectronics @@ -9,6 +8,7 @@ * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ + #include <linux/bitops.h> #include <linux/clk.h> #include <linux/delay.h> @@ -222,7 +222,6 @@ static inline void dwc_dump_chan_regs(struct dw_dma_chan *dwc) channel_readl(dwc, CTL_LO)); } - static inline void dwc_chan_disable(struct dw_dma *dw, struct dw_dma_chan *dwc) { channel_clear_bit(dw, CH_EN, dwc->mask); @@ -1679,6 +1678,7 @@ static int dw_resume_noirq(struct device *dev) clk_prepare_enable(dw->clk); dma_writel(dw, CFG, DW_CFG_DMA_EN); + return 0; } -- 1.7.10.4 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCHv2 3/4] dw_dmac: change {dev_}printk() to corresponding macros 2012-10-17 10:31 [PATCHv2 0/4] dw_dmac: few cleanups to the driver Andy Shevchenko 2012-10-17 10:31 ` [PATCHv2 1/4] dmaengine: dw_dmac: remove CLK dependency Andy Shevchenko 2012-10-17 10:31 ` [PATCHv2 2/4] dmaengine: dw_dmac: amend description and indentation Andy Shevchenko @ 2012-10-17 10:31 ` Andy Shevchenko 2012-10-17 10:36 ` viresh kumar 2012-10-17 13:09 ` Felipe Balbi 2012-10-17 10:31 ` [PATCHv2 4/4] dw_dmac: don't call platform_get_drvdata twice Andy Shevchenko 3 siblings, 2 replies; 17+ messages in thread From: Andy Shevchenko @ 2012-10-17 10:31 UTC (permalink / raw) To: Viresh Kumar, Vinod Koul, linux-kernel, spear-devel, balbi Cc: Andy Shevchenko Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> --- drivers/dma/dw_dmac.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/drivers/dma/dw_dmac.c b/drivers/dma/dw_dmac.c index c27c125..60b172a 100644 --- a/drivers/dma/dw_dmac.c +++ b/drivers/dma/dw_dmac.c @@ -456,9 +456,8 @@ static void dwc_scan_descriptors(struct dw_dma *dw, struct dw_dma_chan *dwc) static inline void dwc_dump_lli(struct dw_dma_chan *dwc, struct dw_lli *lli) { - dev_printk(KERN_CRIT, chan2dev(&dwc->chan), - " desc: s0x%x d0x%x l0x%x c0x%x:%x\n", - lli->sar, lli->dar, lli->llp, lli->ctlhi, lli->ctllo); + dev_crit(chan2dev(&dwc->chan), " desc: s0x%x d0x%x l0x%x c0x%x:%x\n", + lli->sar, lli->dar, lli->llp, lli->ctlhi, lli->ctllo); } static void dwc_handle_error(struct dw_dma *dw, struct dw_dma_chan *dwc) @@ -492,10 +491,8 @@ static void dwc_handle_error(struct dw_dma *dw, struct dw_dma_chan *dwc) * controller flagged an error instead of scribbling over * random memory locations. */ - dev_printk(KERN_CRIT, chan2dev(&dwc->chan), - "Bad descriptor submitted for DMA!\n"); - dev_printk(KERN_CRIT, chan2dev(&dwc->chan), - " cookie: %d\n", bad_desc->txd.cookie); + dev_crit(chan2dev(&dwc->chan), "Bad descriptor submitted for DMA!\n"); + dev_crit(chan2dev(&dwc->chan), " cookie: %d\n", bad_desc->txd.cookie); dwc_dump_lli(dwc, &bad_desc->lli); list_for_each_entry(child, &bad_desc->tx_list, desc_node) dwc_dump_lli(dwc, &child->lli); @@ -1625,8 +1622,8 @@ static int __devinit dw_probe(struct platform_device *pdev) dma_writel(dw, CFG, DW_CFG_DMA_EN); - printk(KERN_INFO "%s: DesignWare DMA Controller, %d channels\n", - dev_name(&pdev->dev), nr_channels); + pr_info("%s: DesignWare DMA Controller, %d channels\n", + dev_name(&pdev->dev), nr_channels); dma_async_device_register(&dw->dma); -- 1.7.10.4 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* Re: [PATCHv2 3/4] dw_dmac: change {dev_}printk() to corresponding macros 2012-10-17 10:31 ` [PATCHv2 3/4] dw_dmac: change {dev_}printk() to corresponding macros Andy Shevchenko @ 2012-10-17 10:36 ` viresh kumar 2012-10-17 13:09 ` Felipe Balbi 1 sibling, 0 replies; 17+ messages in thread From: viresh kumar @ 2012-10-17 10:36 UTC (permalink / raw) To: Andy Shevchenko; +Cc: Vinod Koul, linux-kernel, spear-devel, balbi On Wed, Oct 17, 2012 at 4:01 PM, Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote: > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> > --- > drivers/dma/dw_dmac.c | 15 ++++++--------- > 1 file changed, 6 insertions(+), 9 deletions(-) Acked-by: Viresh Kumar <viresh.kumar@linaro.org> ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCHv2 3/4] dw_dmac: change {dev_}printk() to corresponding macros 2012-10-17 10:31 ` [PATCHv2 3/4] dw_dmac: change {dev_}printk() to corresponding macros Andy Shevchenko 2012-10-17 10:36 ` viresh kumar @ 2012-10-17 13:09 ` Felipe Balbi 2012-10-17 13:36 ` Andy Shevchenko 1 sibling, 1 reply; 17+ messages in thread From: Felipe Balbi @ 2012-10-17 13:09 UTC (permalink / raw) To: Andy Shevchenko Cc: Viresh Kumar, Vinod Koul, linux-kernel, spear-devel, balbi [-- Attachment #1: Type: text/plain, Size: 2414 bytes --] Hi, On Wed, Oct 17, 2012 at 01:31:17PM +0300, Andy Shevchenko wrote: > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> > --- > drivers/dma/dw_dmac.c | 15 ++++++--------- > 1 file changed, 6 insertions(+), 9 deletions(-) > > diff --git a/drivers/dma/dw_dmac.c b/drivers/dma/dw_dmac.c > index c27c125..60b172a 100644 > --- a/drivers/dma/dw_dmac.c > +++ b/drivers/dma/dw_dmac.c > @@ -456,9 +456,8 @@ static void dwc_scan_descriptors(struct dw_dma *dw, struct dw_dma_chan *dwc) > > static inline void dwc_dump_lli(struct dw_dma_chan *dwc, struct dw_lli *lli) > { > - dev_printk(KERN_CRIT, chan2dev(&dwc->chan), > - " desc: s0x%x d0x%x l0x%x c0x%x:%x\n", > - lli->sar, lli->dar, lli->llp, lli->ctlhi, lli->ctllo); > + dev_crit(chan2dev(&dwc->chan), " desc: s0x%x d0x%x l0x%x c0x%x:%x\n", > + lli->sar, lli->dar, lli->llp, lli->ctlhi, lli->ctllo); is this really critical ? To me it looks more like a debugging message. > } > > static void dwc_handle_error(struct dw_dma *dw, struct dw_dma_chan *dwc) > @@ -492,10 +491,8 @@ static void dwc_handle_error(struct dw_dma *dw, struct dw_dma_chan *dwc) > * controller flagged an error instead of scribbling over > * random memory locations. > */ > - dev_printk(KERN_CRIT, chan2dev(&dwc->chan), > - "Bad descriptor submitted for DMA!\n"); > - dev_printk(KERN_CRIT, chan2dev(&dwc->chan), > - " cookie: %d\n", bad_desc->txd.cookie); > + dev_crit(chan2dev(&dwc->chan), "Bad descriptor submitted for DMA!\n"); > + dev_crit(chan2dev(&dwc->chan), " cookie: %d\n", bad_desc->txd.cookie); now this is critical, indeed. I would suggest using dev_WARN_ONCE() so that it's noisy enough to catch the failing user. > dwc_dump_lli(dwc, &bad_desc->lli); > list_for_each_entry(child, &bad_desc->tx_list, desc_node) > dwc_dump_lli(dwc, &child->lli); > @@ -1625,8 +1622,8 @@ static int __devinit dw_probe(struct platform_device *pdev) > > dma_writel(dw, CFG, DW_CFG_DMA_EN); > > - printk(KERN_INFO "%s: DesignWare DMA Controller, %d channels\n", > - dev_name(&pdev->dev), nr_channels); > + pr_info("%s: DesignWare DMA Controller, %d channels\n", > + dev_name(&pdev->dev), nr_channels); you have a struct device available in platform_device, please use dev_info() or dev_dbg(). > dma_async_device_register(&dw->dma); > > -- > 1.7.10.4 > -- balbi [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 836 bytes --] ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCHv2 3/4] dw_dmac: change {dev_}printk() to corresponding macros 2012-10-17 13:09 ` Felipe Balbi @ 2012-10-17 13:36 ` Andy Shevchenko 2012-10-17 13:53 ` Felipe Balbi 0 siblings, 1 reply; 17+ messages in thread From: Andy Shevchenko @ 2012-10-17 13:36 UTC (permalink / raw) To: balbi; +Cc: Viresh Kumar, Vinod Koul, linux-kernel, spear-devel On Wed, 2012-10-17 at 16:09 +0300, Felipe Balbi wrote: > Hi, > > On Wed, Oct 17, 2012 at 01:31:17PM +0300, Andy Shevchenko wrote: > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> > > --- > > drivers/dma/dw_dmac.c | 15 ++++++--------- > > 1 file changed, 6 insertions(+), 9 deletions(-) > > > > diff --git a/drivers/dma/dw_dmac.c b/drivers/dma/dw_dmac.c > > index c27c125..60b172a 100644 > > --- a/drivers/dma/dw_dmac.c > > +++ b/drivers/dma/dw_dmac.c > > @@ -456,9 +456,8 @@ static void dwc_scan_descriptors(struct dw_dma *dw, struct dw_dma_chan *dwc) > > > > static inline void dwc_dump_lli(struct dw_dma_chan *dwc, struct dw_lli *lli) > > { > > - dev_printk(KERN_CRIT, chan2dev(&dwc->chan), > > - " desc: s0x%x d0x%x l0x%x c0x%x:%x\n", > > - lli->sar, lli->dar, lli->llp, lli->ctlhi, lli->ctllo); > > + dev_crit(chan2dev(&dwc->chan), " desc: s0x%x d0x%x l0x%x c0x%x:%x\n", > > + lli->sar, lli->dar, lli->llp, lli->ctlhi, lli->ctllo); > > is this really critical ? To me it looks more like a debugging message. This one is used in two cases, where one is marked as "error", another - "critical" > > > } > > > > static void dwc_handle_error(struct dw_dma *dw, struct dw_dma_chan *dwc) > > @@ -492,10 +491,8 @@ static void dwc_handle_error(struct dw_dma *dw, struct dw_dma_chan *dwc) > > * controller flagged an error instead of scribbling over > > * random memory locations. > > */ > > - dev_printk(KERN_CRIT, chan2dev(&dwc->chan), > > - "Bad descriptor submitted for DMA!\n"); > > - dev_printk(KERN_CRIT, chan2dev(&dwc->chan), > > - " cookie: %d\n", bad_desc->txd.cookie); > > + dev_crit(chan2dev(&dwc->chan), "Bad descriptor submitted for DMA!\n"); > > + dev_crit(chan2dev(&dwc->chan), " cookie: %d\n", bad_desc->txd.cookie); > > now this is critical, indeed. I would suggest using dev_WARN_ONCE() so > that it's noisy enough to catch the failing user. To this and upper comment, there is an explanation why it's critical. I guess the WARN_ONCE is not good enough, for example if we have more than one user making such noise. > > > dwc_dump_lli(dwc, &bad_desc->lli); > > list_for_each_entry(child, &bad_desc->tx_list, desc_node) > > dwc_dump_lli(dwc, &child->lli); > > @@ -1625,8 +1622,8 @@ static int __devinit dw_probe(struct platform_device *pdev) > > > > dma_writel(dw, CFG, DW_CFG_DMA_EN); > > > > - printk(KERN_INFO "%s: DesignWare DMA Controller, %d channels\n", > > - dev_name(&pdev->dev), nr_channels); > > + pr_info("%s: DesignWare DMA Controller, %d channels\n", > > + dev_name(&pdev->dev), nr_channels); > > you have a struct device available in platform_device, please use > dev_info() or dev_dbg(). Agreed. -- Andy Shevchenko <andriy.shevchenko@linux.intel.com> Intel Finland Oy ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCHv2 3/4] dw_dmac: change {dev_}printk() to corresponding macros 2012-10-17 13:36 ` Andy Shevchenko @ 2012-10-17 13:53 ` Felipe Balbi 2012-10-18 8:15 ` Andy Shevchenko 0 siblings, 1 reply; 17+ messages in thread From: Felipe Balbi @ 2012-10-17 13:53 UTC (permalink / raw) To: Andy Shevchenko Cc: balbi, Viresh Kumar, Vinod Koul, linux-kernel, spear-devel [-- Attachment #1: Type: text/plain, Size: 2324 bytes --] On Wed, Oct 17, 2012 at 04:36:58PM +0300, Andy Shevchenko wrote: > On Wed, 2012-10-17 at 16:09 +0300, Felipe Balbi wrote: > > Hi, > > > > On Wed, Oct 17, 2012 at 01:31:17PM +0300, Andy Shevchenko wrote: > > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> > > > --- > > > drivers/dma/dw_dmac.c | 15 ++++++--------- > > > 1 file changed, 6 insertions(+), 9 deletions(-) > > > > > > diff --git a/drivers/dma/dw_dmac.c b/drivers/dma/dw_dmac.c > > > index c27c125..60b172a 100644 > > > --- a/drivers/dma/dw_dmac.c > > > +++ b/drivers/dma/dw_dmac.c > > > @@ -456,9 +456,8 @@ static void dwc_scan_descriptors(struct dw_dma *dw, struct dw_dma_chan *dwc) > > > > > > static inline void dwc_dump_lli(struct dw_dma_chan *dwc, struct dw_lli *lli) > > > { > > > - dev_printk(KERN_CRIT, chan2dev(&dwc->chan), > > > - " desc: s0x%x d0x%x l0x%x c0x%x:%x\n", > > > - lli->sar, lli->dar, lli->llp, lli->ctlhi, lli->ctllo); > > > + dev_crit(chan2dev(&dwc->chan), " desc: s0x%x d0x%x l0x%x c0x%x:%x\n", > > > + lli->sar, lli->dar, lli->llp, lli->ctlhi, lli->ctllo); > > > > is this really critical ? To me it looks more like a debugging message. > This one is used in two cases, where one is marked as "error", another - > "critical" fair enough > > > static void dwc_handle_error(struct dw_dma *dw, struct dw_dma_chan *dwc) > > > @@ -492,10 +491,8 @@ static void dwc_handle_error(struct dw_dma *dw, struct dw_dma_chan *dwc) > > > * controller flagged an error instead of scribbling over > > > * random memory locations. > > > */ > > > - dev_printk(KERN_CRIT, chan2dev(&dwc->chan), > > > - "Bad descriptor submitted for DMA!\n"); > > > - dev_printk(KERN_CRIT, chan2dev(&dwc->chan), > > > - " cookie: %d\n", bad_desc->txd.cookie); > > > + dev_crit(chan2dev(&dwc->chan), "Bad descriptor submitted for DMA!\n"); > > > + dev_crit(chan2dev(&dwc->chan), " cookie: %d\n", bad_desc->txd.cookie); > > > > now this is critical, indeed. I would suggest using dev_WARN_ONCE() so > > that it's noisy enough to catch the failing user. > To this and upper comment, there is an explanation why it's critical. I > guess the WARN_ONCE is not good enough, for example if we have more than > one user making such noise. then use dev_WARN() -- balbi [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 836 bytes --] ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCHv2 3/4] dw_dmac: change {dev_}printk() to corresponding macros 2012-10-17 13:53 ` Felipe Balbi @ 2012-10-18 8:15 ` Andy Shevchenko 2012-10-18 10:34 ` Felipe Balbi 0 siblings, 1 reply; 17+ messages in thread From: Andy Shevchenko @ 2012-10-18 8:15 UTC (permalink / raw) To: balbi; +Cc: Viresh Kumar, Vinod Koul, linux-kernel, spear-devel On Wed, 2012-10-17 at 16:53 +0300, Felipe Balbi wrote: > On Wed, Oct 17, 2012 at 04:36:58PM +0300, Andy Shevchenko wrote: > > On Wed, 2012-10-17 at 16:09 +0300, Felipe Balbi wrote: > > > Hi, > > > > > > > diff --git a/drivers/dma/dw_dmac.c b/drivers/dma/dw_dmac.c > > > > @@ -492,10 +491,8 @@ static void dwc_handle_error(struct dw_dma *dw, struct dw_dma_chan *dwc) > > > > * controller flagged an error instead of scribbling over > > > > * random memory locations. > > > > */ > > > > - dev_printk(KERN_CRIT, chan2dev(&dwc->chan), > > > > - "Bad descriptor submitted for DMA!\n"); > > > > - dev_printk(KERN_CRIT, chan2dev(&dwc->chan), > > > > - " cookie: %d\n", bad_desc->txd.cookie); > > > > + dev_crit(chan2dev(&dwc->chan), "Bad descriptor submitted for DMA!\n"); > > > > + dev_crit(chan2dev(&dwc->chan), " cookie: %d\n", bad_desc->txd.cookie); > > > > > > now this is critical, indeed. I would suggest using dev_WARN_ONCE() so > > > that it's noisy enough to catch the failing user. > > To this and upper comment, there is an explanation why it's critical. I > > guess the WARN_ONCE is not good enough, for example if we have more than > > one user making such noise. > > then use dev_WARN() I can't see how dev_WARN could be more useful here than the dev_crit. In current message we have channel and cookie to link back to the user. What does WARN add meaningful? -- Andy Shevchenko <andriy.shevchenko@linux.intel.com> Intel Finland Oy ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCHv2 3/4] dw_dmac: change {dev_}printk() to corresponding macros 2012-10-18 8:15 ` Andy Shevchenko @ 2012-10-18 10:34 ` Felipe Balbi 2012-10-18 11:09 ` Andy Shevchenko 0 siblings, 1 reply; 17+ messages in thread From: Felipe Balbi @ 2012-10-18 10:34 UTC (permalink / raw) To: Andy Shevchenko Cc: balbi, Viresh Kumar, Vinod Koul, linux-kernel, spear-devel [-- Attachment #1: Type: text/plain, Size: 1571 bytes --] On Thu, Oct 18, 2012 at 11:15:31AM +0300, Andy Shevchenko wrote: > On Wed, 2012-10-17 at 16:53 +0300, Felipe Balbi wrote: > > On Wed, Oct 17, 2012 at 04:36:58PM +0300, Andy Shevchenko wrote: > > > On Wed, 2012-10-17 at 16:09 +0300, Felipe Balbi wrote: > > > > Hi, > > > > > > > > > diff --git a/drivers/dma/dw_dmac.c b/drivers/dma/dw_dmac.c > > > > > > @@ -492,10 +491,8 @@ static void dwc_handle_error(struct dw_dma *dw, struct dw_dma_chan *dwc) > > > > > * controller flagged an error instead of scribbling over > > > > > * random memory locations. > > > > > */ > > > > > - dev_printk(KERN_CRIT, chan2dev(&dwc->chan), > > > > > - "Bad descriptor submitted for DMA!\n"); > > > > > - dev_printk(KERN_CRIT, chan2dev(&dwc->chan), > > > > > - " cookie: %d\n", bad_desc->txd.cookie); > > > > > + dev_crit(chan2dev(&dwc->chan), "Bad descriptor submitted for DMA!\n"); > > > > > + dev_crit(chan2dev(&dwc->chan), " cookie: %d\n", bad_desc->txd.cookie); > > > > > > > > now this is critical, indeed. I would suggest using dev_WARN_ONCE() so > > > > that it's noisy enough to catch the failing user. > > > To this and upper comment, there is an explanation why it's critical. I > > > guess the WARN_ONCE is not good enough, for example if we have more than > > > one user making such noise. > > > > then use dev_WARN() > I can't see how dev_WARN could be more useful here than the dev_crit. In > current message we have channel and cookie to link back to the user. > What does WARN add meaningful? a dump_stack() -- balbi [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 836 bytes --] ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCHv2 3/4] dw_dmac: change {dev_}printk() to corresponding macros 2012-10-18 10:34 ` Felipe Balbi @ 2012-10-18 11:09 ` Andy Shevchenko 2012-10-18 13:59 ` Felipe Balbi 0 siblings, 1 reply; 17+ messages in thread From: Andy Shevchenko @ 2012-10-18 11:09 UTC (permalink / raw) To: balbi; +Cc: Viresh Kumar, Vinod Koul, linux-kernel, spear-devel On Thu, 2012-10-18 at 13:34 +0300, Felipe Balbi wrote: > On Thu, Oct 18, 2012 at 11:15:31AM +0300, Andy Shevchenko wrote: > > On Wed, 2012-10-17 at 16:53 +0300, Felipe Balbi wrote: > > > On Wed, Oct 17, 2012 at 04:36:58PM +0300, Andy Shevchenko wrote: > > > > On Wed, 2012-10-17 at 16:09 +0300, Felipe Balbi wrote: > > > > > > diff --git a/drivers/dma/dw_dmac.c b/drivers/dma/dw_dmac.c > > > > > > @@ -492,10 +491,8 @@ static void dwc_handle_error(struct dw_dma *dw, struct dw_dma_chan *dwc) > > > > > > * controller flagged an error instead of scribbling over > > > > > > * random memory locations. > > > > > > */ > > > > > > - dev_printk(KERN_CRIT, chan2dev(&dwc->chan), > > > > > > - "Bad descriptor submitted for DMA!\n"); > > > > > > - dev_printk(KERN_CRIT, chan2dev(&dwc->chan), > > > > > > - " cookie: %d\n", bad_desc->txd.cookie); > > > > > > + dev_crit(chan2dev(&dwc->chan), "Bad descriptor submitted for DMA!\n"); > > > > > > + dev_crit(chan2dev(&dwc->chan), " cookie: %d\n", bad_desc->txd.cookie); > > > > > > > > > > now this is critical, indeed. I would suggest using dev_WARN_ONCE() so > > > > > that it's noisy enough to catch the failing user. > > > > To this and upper comment, there is an explanation why it's critical. I > > > > guess the WARN_ONCE is not good enough, for example if we have more than > > > > one user making such noise. > > > > > > then use dev_WARN() > > I can't see how dev_WARN could be more useful here than the dev_crit. In > > current message we have channel and cookie to link back to the user. > > What does WARN add meaningful? > > a dump_stack() How could it be useful? The dwc_handle_error is called from a tasklet that is called from scheduler asynchronously. The tasklet is queued in interrupt handler. -- Andy Shevchenko <andriy.shevchenko@linux.intel.com> Intel Finland Oy ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCHv2 3/4] dw_dmac: change {dev_}printk() to corresponding macros 2012-10-18 11:09 ` Andy Shevchenko @ 2012-10-18 13:59 ` Felipe Balbi 2012-10-18 14:11 ` Andy Shevchenko 0 siblings, 1 reply; 17+ messages in thread From: Felipe Balbi @ 2012-10-18 13:59 UTC (permalink / raw) To: Andy Shevchenko Cc: balbi, Viresh Kumar, Vinod Koul, linux-kernel, spear-devel [-- Attachment #1: Type: text/plain, Size: 2236 bytes --] Hi, On Thu, Oct 18, 2012 at 02:09:43PM +0300, Andy Shevchenko wrote: > On Thu, 2012-10-18 at 13:34 +0300, Felipe Balbi wrote: > > On Thu, Oct 18, 2012 at 11:15:31AM +0300, Andy Shevchenko wrote: > > > On Wed, 2012-10-17 at 16:53 +0300, Felipe Balbi wrote: > > > > On Wed, Oct 17, 2012 at 04:36:58PM +0300, Andy Shevchenko wrote: > > > > > On Wed, 2012-10-17 at 16:09 +0300, Felipe Balbi wrote: > > > > > > > > diff --git a/drivers/dma/dw_dmac.c b/drivers/dma/dw_dmac.c > > > > > > > > @@ -492,10 +491,8 @@ static void dwc_handle_error(struct dw_dma *dw, struct dw_dma_chan *dwc) > > > > > > > * controller flagged an error instead of scribbling over > > > > > > > * random memory locations. > > > > > > > */ > > > > > > > - dev_printk(KERN_CRIT, chan2dev(&dwc->chan), > > > > > > > - "Bad descriptor submitted for DMA!\n"); > > > > > > > - dev_printk(KERN_CRIT, chan2dev(&dwc->chan), > > > > > > > - " cookie: %d\n", bad_desc->txd.cookie); > > > > > > > + dev_crit(chan2dev(&dwc->chan), "Bad descriptor submitted for DMA!\n"); > > > > > > > + dev_crit(chan2dev(&dwc->chan), " cookie: %d\n", bad_desc->txd.cookie); > > > > > > > > > > > > now this is critical, indeed. I would suggest using dev_WARN_ONCE() so > > > > > > that it's noisy enough to catch the failing user. > > > > > To this and upper comment, there is an explanation why it's critical. I > > > > > guess the WARN_ONCE is not good enough, for example if we have more than > > > > > one user making such noise. > > > > > > > > then use dev_WARN() > > > I can't see how dev_WARN could be more useful here than the dev_crit. In > > > current message we have channel and cookie to link back to the user. > > > What does WARN add meaningful? > > > > a dump_stack() > > How could it be useful? The dwc_handle_error is called from a tasklet > that is called from scheduler asynchronously. The tasklet is queued in > interrupt handler. even if it's not useful, it's a lot more verbose and more likely to get user's attention. If someone's passing broken DMA descriptor, it should be a really big fat warning so we can get user reports early enoough. Anyway, it's your call, I don't mind really. -- balbi [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 836 bytes --] ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCHv2 3/4] dw_dmac: change {dev_}printk() to corresponding macros 2012-10-18 13:59 ` Felipe Balbi @ 2012-10-18 14:11 ` Andy Shevchenko 0 siblings, 0 replies; 17+ messages in thread From: Andy Shevchenko @ 2012-10-18 14:11 UTC (permalink / raw) To: balbi; +Cc: Andy Shevchenko, Viresh Kumar, Vinod Koul, linux-kernel, spear-devel On Thu, Oct 18, 2012 at 4:59 PM, Felipe Balbi <balbi@ti.com> wrote: > On Thu, Oct 18, 2012 at 02:09:43PM +0300, Andy Shevchenko wrote: >> On Thu, 2012-10-18 at 13:34 +0300, Felipe Balbi wrote: >> > On Thu, Oct 18, 2012 at 11:15:31AM +0300, Andy Shevchenko wrote: >> > > On Wed, 2012-10-17 at 16:53 +0300, Felipe Balbi wrote: >> > > > On Wed, Oct 17, 2012 at 04:36:58PM +0300, Andy Shevchenko wrote: >> > > > > On Wed, 2012-10-17 at 16:09 +0300, Felipe Balbi wrote: >> >> > > > > > > diff --git a/drivers/dma/dw_dmac.c b/drivers/dma/dw_dmac.c >> >> > > > > > > @@ -492,10 +491,8 @@ static void dwc_handle_error(struct dw_dma *dw, struct dw_dma_chan *dwc) >> > > > > > > * controller flagged an error instead of scribbling over >> > > > > > > * random memory locations. >> > > > > > > */ >> > > > > > > - dev_printk(KERN_CRIT, chan2dev(&dwc->chan), >> > > > > > > - "Bad descriptor submitted for DMA!\n"); >> > > > > > > - dev_printk(KERN_CRIT, chan2dev(&dwc->chan), >> > > > > > > - " cookie: %d\n", bad_desc->txd.cookie); >> > > > > > > + dev_crit(chan2dev(&dwc->chan), "Bad descriptor submitted for DMA!\n"); >> > > > > > > + dev_crit(chan2dev(&dwc->chan), " cookie: %d\n", bad_desc->txd.cookie); >> > > > > > >> > > > > > now this is critical, indeed. I would suggest using dev_WARN_ONCE() so >> > > > > > that it's noisy enough to catch the failing user. >> > > > > To this and upper comment, there is an explanation why it's critical. I >> > > > > guess the WARN_ONCE is not good enough, for example if we have more than >> > > > > one user making such noise. >> > > > >> > > > then use dev_WARN() >> > > I can't see how dev_WARN could be more useful here than the dev_crit. In >> > > current message we have channel and cookie to link back to the user. >> > > What does WARN add meaningful? >> > >> > a dump_stack() >> >> How could it be useful? The dwc_handle_error is called from a tasklet >> that is called from scheduler asynchronously. The tasklet is queued in >> interrupt handler. > > even if it's not useful, it's a lot more verbose and more likely to get > user's attention. If someone's passing broken DMA descriptor, it should > be a really big fat warning so we can get user reports early enoough. I will do separate patch for this. If Viresh and/or Vinoud is okay with it, user will see fat message. -- With Best Regards, Andy Shevchenko ^ permalink raw reply [flat|nested] 17+ messages in thread
* [PATCHv2 4/4] dw_dmac: don't call platform_get_drvdata twice 2012-10-17 10:31 [PATCHv2 0/4] dw_dmac: few cleanups to the driver Andy Shevchenko ` (2 preceding siblings ...) 2012-10-17 10:31 ` [PATCHv2 3/4] dw_dmac: change {dev_}printk() to corresponding macros Andy Shevchenko @ 2012-10-17 10:31 ` Andy Shevchenko 2012-10-17 10:36 ` viresh kumar 2012-10-17 13:14 ` Felipe Balbi 3 siblings, 2 replies; 17+ messages in thread From: Andy Shevchenko @ 2012-10-17 10:31 UTC (permalink / raw) To: Viresh Kumar, Vinod Koul, linux-kernel, spear-devel, balbi Cc: Andy Shevchenko Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> --- drivers/dma/dw_dmac.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/dma/dw_dmac.c b/drivers/dma/dw_dmac.c index 60b172a..7d2b438 100644 --- a/drivers/dma/dw_dmac.c +++ b/drivers/dma/dw_dmac.c @@ -1653,7 +1653,7 @@ static void dw_shutdown(struct platform_device *pdev) { struct dw_dma *dw = platform_get_drvdata(pdev); - dw_dma_off(platform_get_drvdata(pdev)); + dw_dma_off(dw); clk_disable_unprepare(dw->clk); } @@ -1662,7 +1662,7 @@ static int dw_suspend_noirq(struct device *dev) struct platform_device *pdev = to_platform_device(dev); struct dw_dma *dw = platform_get_drvdata(pdev); - dw_dma_off(platform_get_drvdata(pdev)); + dw_dma_off(dw); clk_disable_unprepare(dw->clk); return 0; -- 1.7.10.4 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* Re: [PATCHv2 4/4] dw_dmac: don't call platform_get_drvdata twice 2012-10-17 10:31 ` [PATCHv2 4/4] dw_dmac: don't call platform_get_drvdata twice Andy Shevchenko @ 2012-10-17 10:36 ` viresh kumar 2012-10-17 13:14 ` Felipe Balbi 1 sibling, 0 replies; 17+ messages in thread From: viresh kumar @ 2012-10-17 10:36 UTC (permalink / raw) To: Andy Shevchenko; +Cc: Vinod Koul, linux-kernel, spear-devel, balbi On Wed, Oct 17, 2012 at 4:01 PM, Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote: > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> > --- > drivers/dma/dw_dmac.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) Acked-by: Viresh Kumar <viresh.kumar@linaro.org> ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCHv2 4/4] dw_dmac: don't call platform_get_drvdata twice 2012-10-17 10:31 ` [PATCHv2 4/4] dw_dmac: don't call platform_get_drvdata twice Andy Shevchenko 2012-10-17 10:36 ` viresh kumar @ 2012-10-17 13:14 ` Felipe Balbi 2012-10-17 14:06 ` viresh kumar 1 sibling, 1 reply; 17+ messages in thread From: Felipe Balbi @ 2012-10-17 13:14 UTC (permalink / raw) To: Andy Shevchenko Cc: Viresh Kumar, Vinod Koul, linux-kernel, spear-devel, balbi [-- Attachment #1: Type: text/plain, Size: 1159 bytes --] On Wed, Oct 17, 2012 at 01:31:18PM +0300, Andy Shevchenko wrote: I would suggest adding a commit log, but if maintainer is fine without, I'm fine too :-p > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> looks good: Reviewed-by: Felipe Balbi <balbi@ti.com> > --- > drivers/dma/dw_dmac.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/dma/dw_dmac.c b/drivers/dma/dw_dmac.c > index 60b172a..7d2b438 100644 > --- a/drivers/dma/dw_dmac.c > +++ b/drivers/dma/dw_dmac.c > @@ -1653,7 +1653,7 @@ static void dw_shutdown(struct platform_device *pdev) > { > struct dw_dma *dw = platform_get_drvdata(pdev); > > - dw_dma_off(platform_get_drvdata(pdev)); > + dw_dma_off(dw); > clk_disable_unprepare(dw->clk); > } > > @@ -1662,7 +1662,7 @@ static int dw_suspend_noirq(struct device *dev) > struct platform_device *pdev = to_platform_device(dev); > struct dw_dma *dw = platform_get_drvdata(pdev); > > - dw_dma_off(platform_get_drvdata(pdev)); > + dw_dma_off(dw); > clk_disable_unprepare(dw->clk); > > return 0; > -- > 1.7.10.4 > -- balbi [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 836 bytes --] ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCHv2 4/4] dw_dmac: don't call platform_get_drvdata twice 2012-10-17 13:14 ` Felipe Balbi @ 2012-10-17 14:06 ` viresh kumar 0 siblings, 0 replies; 17+ messages in thread From: viresh kumar @ 2012-10-17 14:06 UTC (permalink / raw) To: balbi; +Cc: Andy Shevchenko, Vinod Koul, linux-kernel, spear-devel On Wed, Oct 17, 2012 at 6:44 PM, Felipe Balbi <balbi@ti.com> wrote: > On Wed, Oct 17, 2012 at 01:31:18PM +0300, Andy Shevchenko wrote: > > I would suggest adding a commit log, but if maintainer is fine without, > I'm fine too :-p Should be there. But i am bored of giving this review comment now :) -- viresh ^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2012-10-18 14:11 UTC | newest] Thread overview: 17+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2012-10-17 10:31 [PATCHv2 0/4] dw_dmac: few cleanups to the driver Andy Shevchenko 2012-10-17 10:31 ` [PATCHv2 1/4] dmaengine: dw_dmac: remove CLK dependency Andy Shevchenko 2012-10-17 10:31 ` [PATCHv2 2/4] dmaengine: dw_dmac: amend description and indentation Andy Shevchenko 2012-10-17 10:31 ` [PATCHv2 3/4] dw_dmac: change {dev_}printk() to corresponding macros Andy Shevchenko 2012-10-17 10:36 ` viresh kumar 2012-10-17 13:09 ` Felipe Balbi 2012-10-17 13:36 ` Andy Shevchenko 2012-10-17 13:53 ` Felipe Balbi 2012-10-18 8:15 ` Andy Shevchenko 2012-10-18 10:34 ` Felipe Balbi 2012-10-18 11:09 ` Andy Shevchenko 2012-10-18 13:59 ` Felipe Balbi 2012-10-18 14:11 ` Andy Shevchenko 2012-10-17 10:31 ` [PATCHv2 4/4] dw_dmac: don't call platform_get_drvdata twice Andy Shevchenko 2012-10-17 10:36 ` viresh kumar 2012-10-17 13:14 ` Felipe Balbi 2012-10-17 14:06 ` viresh kumar
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).