Re: [PATCH 9/9 v3] dma: shdma: convert to the shdma base library

From: Vinod Koul
Date: Thu Jul 26 2012 - 07:20:07 EST


On Thu, 2012-07-26 at 15:58 +0900, Paul Mundt wrote:
> On Thu, Jul 26, 2012 at 12:19:21PM +0530, Vinod Koul wrote:
> > On Wed, 2012-07-25 at 12:59 +0900, Paul Mundt wrote:
> > > On Wed, May 09, 2012 at 05:09:21PM +0200, Guennadi Liakhovetski wrote:
> > > > The shdma base library has originally been extracted from the shdma driver,
> > > > which now can be converted to actually use it.
> > > >
> > > > Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@xxxxxx>
> > > > ---
> > > > drivers/dma/sh/shdma.c | 1122 ++++++++++++------------------------------------
> > > > drivers/dma/sh/shdma.h | 44 +-
> > > > include/linux/sh_dma.h | 33 +-
> > > > 3 files changed, 302 insertions(+), 897 deletions(-)
> > > >
> > > Now that this has hit mainline, the sh-sci with DMA enabled build is
> > > broken:
> > >
> > > CC drivers/tty/serial/sh-sci.o
> > > drivers/tty/serial/sh-sci.c: In function 'work_fn_rx':
> > > drivers/tty/serial/sh-sci.c:1413:67: error: dereferencing pointer to incomplete type
> > > drivers/tty/serial/sh-sci.c:1413:81: warning: type defaults to 'int' in declaration of '__mptr'
> > > drivers/tty/serial/sh-sci.c:1413:90: warning: initialization from incompatible pointer type
> > > drivers/tty/serial/sh-sci.c:1413:161: error: invalid use of undefined type 'struct sh_desc'
> > > drivers/tty/serial/sh-sci.c:1419:83: error: dereferencing pointer to incomplete type
> > > drivers/tty/serial/sh-sci.c:1419:101: error: dereferencing pointer to incomplete type
> > > drivers/tty/serial/sh-sci.c:1423:42: error: dereferencing pointer to incomplete type
> > This was in -next for quite some time :(
> >
> It seems we don't have any configs that have this default-enabled under
> -next, so it wasn't noticed before. Still, as Guennadi wrote this code
> I'm surprised it was overlooked.
So did my script :(


I tried checking this, struct sh_desc have moved to struct shdma_desc in
shdma-base.h. But the field partial was dropped, so we need to use
residue here. But, shdma or base doesn't calculate residue for err
transactions, so you cannot use it to start a new one.


--
~Vinod

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/