Message ID | 1373290980-17883-2-git-send-email-sourav.poddar@ti.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Mon, Jul 08, 2013 at 07:12:58PM +0530, Sourav Poddar wrote: > Make spi core calculate the message length while > populating the other transfer parameters. This will > be useful in cases where controller driver need to configure its > framelength field without iterating through the linklist again in the > driver controller. This seems fine but I'm going to hold off on applying it until it's reqired since it'll bloat the structure a little and it's a bit unusual to need it. We should do an audit in case some drivers do need this though...
diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c index 32b7bb1..6a05b3c 100644 --- a/drivers/spi/spi.c +++ b/drivers/spi/spi.c @@ -1375,6 +1375,7 @@ static int __spi_async(struct spi_device *spi, struct spi_message *message) * it is not set for this transfer. */ list_for_each_entry(xfer, &message->transfers, transfer_list) { + message->frame_length += xfer->len; if (!xfer->bits_per_word) xfer->bits_per_word = spi->bits_per_word; if (!xfer->speed_hz) diff --git a/include/linux/spi/spi.h b/include/linux/spi/spi.h index 6ff26c8..d83841e 100644 --- a/include/linux/spi/spi.h +++ b/include/linux/spi/spi.h @@ -575,6 +575,7 @@ struct spi_message { /* completion is reported through a callback */ void (*complete)(void *context); void *context; + unsigned frame_length; unsigned actual_length; int status;
Make spi core calculate the message length while populating the other transfer parameters. This will be useful in cases where controller driver need to configure its framelength field without iterating through the linklist again in the driver controller. Signed-off-by: Sourav Poddar <sourav.poddar@ti.com> --- drivers/spi/spi.c | 1 + include/linux/spi/spi.h | 1 + 2 files changed, 2 insertions(+), 0 deletions(-)