[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