Message ID | 1352452005-13789-1-git-send-email-ldewangan@nvidia.com (mailing list archive) |
---|---|
State | Superseded, archived |
Headers | show |
Hi, On 9 November 2012 10:06, Laxman Dewangan <ldewangan@nvidia.com> wrote: > When spi client does the spi transfer and does not sets > the bits_per_word for each transfer then set it as default > of spi device in spi core before calling low level transfer. I like that (not that it counts ... )! > Removing the similar code from spi-tegra20-slink driver as > it is not required. Not sure if this should be part of *this* patch. Also spi-tegra20-slink isn't the only one fixing up the bits_per_word for transfers, so it would be nice if you could remove it from the other drivers, too. In a future patch, maybe even do the same with speed_hz? Regards Jonas ------------------------------------------------------------------------------ Everyone hates slow websites. So do we. Make your web apps faster with AppDynamics Download AppDynamics Lite for free today: http://p.sf.net/sfu/appdyn_d2d_nov
On Mon, 12 Nov 2012 11:03:56 +0100, Jonas Gorski <jonas.gorski@gmail.com> wrote: > Hi, > > On 9 November 2012 10:06, Laxman Dewangan <ldewangan@nvidia.com> wrote: > > When spi client does the spi transfer and does not sets > > the bits_per_word for each transfer then set it as default > > of spi device in spi core before calling low level transfer. > > I like that (not that it counts ... )! > > > Removing the similar code from spi-tegra20-slink driver as > > it is not required. > > Not sure if this should be part of *this* patch. > Also spi-tegra20-slink isn't the only one fixing up the bits_per_word > for transfers, so it would be nice if you could remove it from the > other drivers, too. > > In a future patch, maybe even do the same with speed_hz? That sounds reasonable. Could you craft one up and see how it looks? Thanks, g. ------------------------------------------------------------------------------ LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial Remotely access PCs and mobile devices and provide instant support Improve your efficiency, and focus on delivering more value-add services Discover what IT Professionals Know. Rescue delivers http://p.sf.net/sfu/logmein_12329d2d
On Thursday 06 December 2012 07:45 PM, Grant Likely wrote: > On Mon, 12 Nov 2012 11:03:56 +0100, Jonas Gorski<jonas.gorski@gmail.com> wrote: >> Hi, >> >> On 9 November 2012 10:06, Laxman Dewangan<ldewangan@nvidia.com> wrote: >>> When spi client does the spi transfer and does not sets >>> the bits_per_word for each transfer then set it as default >>> of spi device in spi core before calling low level transfer. >> I like that (not that it counts ... )! >> >>> Removing the similar code from spi-tegra20-slink driver as >>> it is not required. >> Not sure if this should be part of *this* patch. >> Also spi-tegra20-slink isn't the only one fixing up the bits_per_word >> for transfers, so it would be nice if you could remove it from the >> other drivers, too. Just sent the patch to remove the similar code from most of driver. Tested only tegra driver. >> In a future patch, maybe even do the same with speed_hz? > That sounds reasonable. Could you craft one up and see how it looks? > > Ok, I will prepare change and send the patch. Thanks, Laxman ------------------------------------------------------------------------------ LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial Remotely access PCs and mobile devices and provide instant support Improve your efficiency, and focus on delivering more value-add services Discover what IT Professionals Know. Rescue delivers http://p.sf.net/sfu/logmein_12329d2d
diff --git a/drivers/spi/spi-tegra20-slink.c b/drivers/spi/spi-tegra20-slink.c index b8985be..07dc735 100644 --- a/drivers/spi/spi-tegra20-slink.c +++ b/drivers/spi/spi-tegra20-slink.c @@ -727,8 +727,7 @@ static int tegra_slink_start_transfer_one(struct spi_device *spi, unsigned long command; unsigned long command2; - bits_per_word = t->bits_per_word ? t->bits_per_word : - spi->bits_per_word; + bits_per_word = t->bits_per_word; speed = t->speed_hz ? t->speed_hz : spi->max_speed_hz; if (!speed) speed = tspi->spi_max_frequency; diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c index fc0da39..6891a03 100644 --- a/drivers/spi/spi.c +++ b/drivers/spi/spi.c @@ -1193,6 +1193,7 @@ EXPORT_SYMBOL_GPL(spi_setup); static int __spi_async(struct spi_device *spi, struct spi_message *message) { struct spi_master *master = spi->master; + struct spi_transfer *xfer; /* Half-duplex links include original MicroWire, and ones with * only one data pin like SPI_3WIRE (switches direction) or where @@ -1201,7 +1202,6 @@ static int __spi_async(struct spi_device *spi, struct spi_message *message) */ if ((master->flags & SPI_MASTER_HALF_DUPLEX) || (spi->mode & SPI_3WIRE)) { - struct spi_transfer *xfer; unsigned flags = master->flags; list_for_each_entry(xfer, &message->transfers, transfer_list) { @@ -1214,6 +1214,15 @@ static int __spi_async(struct spi_device *spi, struct spi_message *message) } } + /** + * Set transfer bits_per_word as spi device default if it is not + * set for this transfer. + */ + list_for_each_entry(xfer, &message->transfers, transfer_list) { + if (!xfer->bits_per_word) + xfer->bits_per_word = spi->bits_per_word; + } + message->spi = spi; message->status = -EINPROGRESS; return master->transfer(spi, message);
When spi client does the spi transfer and does not sets the bits_per_word for each transfer then set it as default of spi device in spi core before calling low level transfer. Removing the similar code from spi-tegra20-slink driver as it is not required. Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com> Cc: Stephen Warren <swarren@wwwdotorg.org> --- When reviewing the change [PATCH] spi: tegra: add spi driver for SLINK controller it was suggested by Mark and Stephen that we should move the bits_per_word setting to the core as it almost exist in all driver. Creating this patch for doing this. Creating teh patch drivers/spi/spi-tegra20-slink.c | 3 +-- drivers/spi/spi.c | 11 ++++++++++- 2 files changed, 11 insertions(+), 3 deletions(-)