linux-i2c.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jean Delvare <khali-PUYAD+kWke1g9hUCZPvPmw@public.gmane.org>
To: Laxman Dewangan <ldewangan-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
Cc: w.sang-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org,
	ben-linux-elnMNo+KYs3YtjvyW6yDsg@public.gmane.org,
	swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org,
	olof-nZhT3qVonbNeoWH0uzbU5w@public.gmane.org,
	linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	Mark Brown
	<broonie-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>
Subject: Re: [PATCH V1 2/2] i2c: tegra: support for I2C_M_NOSTART protocol mangling
Date: Tue, 24 Apr 2012 14:32:41 +0200	[thread overview]
Message-ID: <20120424143241.0d66fd2e@endymion.delvare> (raw)
In-Reply-To: <4F967089.3050004-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>

Hi Laxman, Mark,

On Tue, 24 Apr 2012 14:51:13 +0530, Laxman Dewangan wrote:
> The primary use-case here is scatter-gather of multiple I2C messages; 
> the first message will contain the START and perhaps some transfers, 
> then subsequent messages will continue with more data transfers. This 
> removes the need to put all the data transfers into a single message, 
> and hence avoids some copying of commands/data.
> 
> Mark Brown says this is important for regmap. This feature is implement 
> gather support for I2C transfers - the resulting I2C transfer is 
> entirely normal but this ends up being implemented by the controller 
> doing two transfers back to back with no start on the second transfer. 
> To the outside world it looks like a perfectly normal transfer. This 
> behaviour can be emulated by allocating a buffer and coalescing the data 
> into that buffer before sending it to the hardware but this introduces 
> an avoidable and sometimes noticeable overhead.

Please keep in mind that support for I2C_M_NOSTART at the bus driver
level is optional. This means that device drivers are encouraged to not
rely on it unconditionally. Originally the flag was meant to workaround
bogus hardware (the infamous Matrox Maven if memory serves) which
changed the transfer direction without a repeated start in the middle
(which is not allowed by the I2C specification.) It wasn't meant to be
implemented and used widely (as written in
Documentation/i2c/i2c-protocol), which is why it is one of the
I2C_FUNC_PROTOCOL_MANGLING features rather than having its own I2C
functionality flag.

If you want to do scatter-gather for I2C messages, I understand the
benefit and I have no objection, and I agree that I2C_M_NOSTART lets
you do that, but then:
* We should allocate a new functionality flag for it.
* We should update the documentation to reflect the two use cases.

Thanks,
-- 
Jean Delvare

  parent reply	other threads:[~2012-04-24 12:32 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-04-24  7:19 [PATCH V1 0/2] i2c: tegra: 10 bit and M_NOSTART support Laxman Dewangan
2012-04-24  7:19 ` [PATCH V1 1/2] i2c: tegra: fix 10bit address configuration Laxman Dewangan
     [not found]   ` <1335251976-31925-2-git-send-email-ldewangan-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2012-04-24  8:58     ` Jean Delvare
     [not found]       ` <20120424105815.1d9e7d95-R0o5gVi9kd7kN2dkZ6Wm7A@public.gmane.org>
2012-05-03  6:13         ` Laxman Dewangan
     [not found]           ` <4FA221FA.2030305-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2012-05-03  8:18             ` Wolfram Sang
     [not found]               ` <20120503081830.GA9574-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2012-05-03  8:20                 ` Laxman Dewangan
     [not found] ` <1335251976-31925-1-git-send-email-ldewangan-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2012-04-24  7:19   ` [PATCH V1 2/2] i2c: tegra: support for I2C_M_NOSTART protocol mangling Laxman Dewangan
     [not found]     ` <1335251976-31925-3-git-send-email-ldewangan-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2012-04-24  8:55       ` Jean Delvare
     [not found]         ` <20120424105557.7ac07232-R0o5gVi9kd7kN2dkZ6Wm7A@public.gmane.org>
2012-04-24  9:21           ` Laxman Dewangan
     [not found]             ` <4F967089.3050004-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2012-04-24 11:38               ` Mark Brown
2012-04-24 12:32               ` Jean Delvare [this message]
     [not found]                 ` <20120424143241.0d66fd2e-R0o5gVi9kd7kN2dkZ6Wm7A@public.gmane.org>
2012-04-24 12:40                   ` Mark Brown
     [not found]                     ` <20120424124030.GD13747-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>
2012-04-24 13:01                       ` Wolfram Sang
     [not found]                         ` <20120424130118.GD4030-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2012-04-24 13:07                           ` Jean Delvare
     [not found]                             ` <20120424150750.36f8c2fc-R0o5gVi9kd7kN2dkZ6Wm7A@public.gmane.org>
2012-04-24 13:28                               ` Wolfram Sang
2012-05-10 11:24       ` Laxman Dewangan
     [not found]         ` <4FABA585.7090600-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2012-05-10 11:54           ` Jean Delvare
     [not found]             ` <20120510135411.3ba5bb6d-R0o5gVi9kd7kN2dkZ6Wm7A@public.gmane.org>
2012-05-10 12:20               ` Laxman Dewangan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20120424143241.0d66fd2e@endymion.delvare \
    --to=khali-puyad+kwke1g9huczpvpmw@public.gmane.org \
    --cc=ben-linux-elnMNo+KYs3YtjvyW6yDsg@public.gmane.org \
    --cc=broonie-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org \
    --cc=ldewangan-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org \
    --cc=linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=olof-nZhT3qVonbNeoWH0uzbU5w@public.gmane.org \
    --cc=swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org \
    --cc=w.sang-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).