All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sascha Hauer <s.hauer-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
To: David Brownell <david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
Cc: a.paterniani-03BXCEkGbFHYGGNLXY5/rw@public.gmane.org,
	AndreaPaterniani@pogo,
	kernel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org,
	spi-devel-general-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
Subject: Re: SPI controller bugfixes needed (full duplex + DMA, data	corruption)
Date: Tue, 18 Nov 2008 08:52:15 +0100	[thread overview]
Message-ID: <20081118075215.GD9553@pengutronix.de> (raw)
In-Reply-To: <200811151422.32748.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>

Hi David,

On Sat, Nov 15, 2008 at 02:22:32PM -0800, David Brownell wrote:
> Hi,
> 
> We recently turned up a bug in the pxa2xx SPI driver, which
> turns out to also be present in the spi_imx.c and au1550_spi.c
> drivers too.
> 
> Briefly, full duplex transfers are allowed to share the
> same buffer (or partially overlap it), which means that
> the dma mapping operations must be done in a safe order:
> 
>  - first map the TX buffer, so cache data gets written
>    to memory where the DMA will pick it up;
> 
>  - then map the RX buffer, so that cache entries (with
>    soon-to-be-stale data) get removed.
> 
> Doing it the other order, as is done with spi_imx and
> with au1550_spi, causes data corruption by discarding
> data from the cache *before* writing it to memory.
> 
> If you can do it, it'd be good to see this fixed before
> the 2.6.28 kernel ships.

Hm, this is a non trivial fix. I don't have a MX1 based hardware with
something on the SPI bus handy, so this would be a shot in the dark for
me. I hope Andrea jumps in, otherwise we'll have to wait till the driver
works on MX2.

Sascha

-- 
 Pengutronix - Linux Solutions for Science and Industry
   Handelsregister:  Amtsgericht Hildesheim, HRA 2686
     Hannoversche Str. 2, 31134 Hildesheim, Germany
   Phone: +49-5121-206917-0 |  Fax: +49-5121-206917-9

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/

  parent reply	other threads:[~2008-11-18  7:52 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-11-15 22:22 SPI controller bugfixes needed (full duplex + DMA, data corruption) David Brownell
     [not found] ` <200811151422.32748.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2008-11-18  7:52   ` Sascha Hauer [this message]
     [not found]     ` <20081118075215.GD9553-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2008-11-18  8:30       ` Andrea Paterniani
     [not found]         ` <49227D0A.40506-03BXCEkGbFHYGGNLXY5/rw@public.gmane.org>
2008-11-18 22:04           ` David Brownell

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=20081118075215.GD9553@pengutronix.de \
    --to=s.hauer-bicnvbalz9megne8c9+irq@public.gmane.org \
    --cc=AndreaPaterniani@pogo \
    --cc=a.paterniani-03BXCEkGbFHYGGNLXY5/rw@public.gmane.org \
    --cc=david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org \
    --cc=kernel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org \
    --cc=spi-devel-general-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
    /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: link
Be 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.