[U-Boot] [PATCH] SPI: Fix 32 bit transfers in mxc_spi.c

Guennadi Liakhovetski g.liakhovetski at gmx.de
Mon Jan 4 21:04:31 CET 2010


On Mon, 4 Jan 2010, Magnus Lilja wrote:

> Hi
> 
> Magnus Lilja skrev:
> > 2009/12/3 Guennadi Liakhovetski <lg at denx.de>:
> >> On Wed, 2 Dec 2009, Wolfgang Denk wrote:
> >>
> >>> Dear Guennadi,
> >>>
> >>> In message <1257965907-5622-1-git-send-email-lilja.magnus at gmail.com> Magnus Lilja wrote:
> >>>> diff --git a/drivers/spi/mxc_spi.c b/drivers/spi/mxc_spi.c
> >>>> index fad9840..8b5d4be 100644
> >>>> --- a/drivers/spi/mxc_spi.c
> >>>> +++ b/drivers/spi/mxc_spi.c
> >>>> @@ -142,6 +142,8 @@ int spi_xfer(struct spi_slave *slave, unsigned int bitlen, const void *dout,
> >>>>                             *(u8 *)din = data;
> >>>>                     else if (bitlen < 17)
> >>>>                             *(u16 *)din = data;
> >>>> +                   else
> >>>> +                           *in_l = data;
> >>>>             }
> >>>>     }
> >>> Could you please comment ?
> >> Hm, I'm afraid, I broke more than just that. Now that I look at this loop,
> >> looks like I broke not only 32-bit transfers, but also all transfers with
> >> bitlen > 16, and this fix is then incomplete - it doesn't fix cases with
> >> bitlen > 32. Magnus, looks like you also only use single-block (bitlen=32)
> >> transfers? Do you have a chance to test > 32-bit transfers too?
> > 
> > No, I don't have anything suitable on the SPI bus that would allow me
> > to test > 32-bit transfer.
> 
> 
> So, what was the verdict? I can only test SPI with the ATLAS (32 bit xfers).
> 
> Can the patch be accepted even though it doesn't fix all problems or 
> does it have to a "fix-everything"-patch?

I would prefer a proper fix, or an explicit restriction on transfer 
length.

Thanks
Guennadi
---
Guennadi Liakhovetski, Ph.D.
Freelance Open-Source Software Developer
http://www.open-technology.de/


More information about the U-Boot mailing list