Messages in this thread | | | Subject | Re: [PATCH v11] i2c: virtio: add a virtio i2c frontend driver | From | Jie Deng <> | Date | Fri, 2 Jul 2021 15:15:18 +0800 |
| |
On 2021/7/2 14:56, Viresh Kumar wrote: > On 02-07-21, 14:52, Jie Deng wrote: >> This is not efficient. If adding the ith request to the queue fails, we can >> still send >> >> the requests before it. > Not really. Normally the requests which are sent together by clients, are linked > together, like a state machine. So if the first one is sent, but not the second > one, then there is not going to be any meaningful result of that. > > The i2c core doesn't club requests together from different clients in a single > i2c_transfer() call. So you must assume i2c_transfer(), irrespective of the > number of underlying messages in it, as atomic. If you fail, the client is going > to retry everything again or assume it failed completely.
Then what is the need to design this interface as "return the number of messages successfully processed, or a negative value on error". Just return success or fail is enough.
Here, we didn't break the contract with the interface "master_xfer", so if there is a problem then the contract may be the problem.
| |