On Wed, Nov 25, 2009 at 1:26 AM, Magnus Damm <[email protected]> wrote: > From: Magnus Damm <[email protected]> > > This patch modifies the shared spi bitbanging code > to allow using spi_bitbang_setup() even though the > txrx_word[] callbacks are unset. Useful for drivers > that want to make use of spi_bitbang_setup() but > have their own txrx_bufs() callback. > > While at it, drop the MSIOF driver workaround. > > Signed-off-by: Magnus Damm <[email protected]> > --- > > Depends on the MSIOF driver. > > drivers/spi/spi_bitbang.c | 25 ++++++++++++++----------- > drivers/spi/spi_sh_msiof.c | 11 ----------- > 2 files changed, 14 insertions(+), 22 deletions(-) > > --- 0001/drivers/spi/spi_bitbang.c > +++ work/drivers/spi/spi_bitbang.c 2009-11-25 15:30:45.000000000 +0900 > @@ -176,6 +176,14 @@ int spi_bitbang_setup_transfer(struct sp > } > EXPORT_SYMBOL_GPL(spi_bitbang_setup_transfer); > > +static int spi_bitbang_bufs(struct spi_device *spi, struct spi_transfer *t) > +{ > + struct spi_bitbang_cs *cs = spi->controller_state; > + unsigned nsecs = cs->nsecs; > + > + return cs->txrx_bufs(spi, cs->txrx_word, nsecs, t); > +} > + > /** > * spi_bitbang_setup - default setup for per-word I/O loops > */ > @@ -183,6 +191,7 @@ int spi_bitbang_setup(struct spi_device > { > struct spi_bitbang_cs *cs = spi->controller_state; > struct spi_bitbang *bitbang; > + int mode_mask = SPI_CPOL | SPI_CPHA; > int retval; > unsigned long flags; > > @@ -196,9 +205,11 @@ int spi_bitbang_setup(struct spi_device > } > > /* per-word shift register access, in hardware or bitbanging */ > - cs->txrx_word = bitbang->txrx_word[spi->mode & (SPI_CPOL|SPI_CPHA)]; > - if (!cs->txrx_word) > - return -EINVAL; > + if (bitbang->txrx_bufs == spi_bitbang_bufs) { > + cs->txrx_word = bitbang->txrx_word[spi->mode & mode_mask]; > + if (!cs->txrx_word) > + return -EINVAL; > + }
Hmmm... this smells like an ugly hack to me. It seems to me that if some bitbang backend drivers don't want this code, then it should be encoded into a callback so it can be overridden. Thoughts. g. -- Grant Likely, B.Sc., P.Eng. Secret Lab Technologies Ltd. ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ spi-devel-general mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/spi-devel-general
