Re: [Question] When should a driver issue STOP condition?

From: Masahiro Yamada
Date: Fri Aug 31 2018 - 10:40:13 EST


Hi Wolfram,


2018-08-31 18:53 GMT+09:00 Wolfram Sang <wsa@xxxxxxxxxxxxx>:
>
>> The problem is, my driver is forcibly setting
>> STOP condition unless the next message is read.
>
> This likely is a problem.


Oh, my drivers were wrong from the beginning.

I've sent patches.


> In Linux I2C terminology, a transfer is everything between a START and a
> STOP. A transfer may consist of multiple messages, connected with
> REP_START [1].
>
> So, a STOP should be generated after the last message of a transfer or
> of I2C_M_STOP is set in a message.

I see.
I hope this is documented somewhere if it has not been yet.


> The latter should be super-rare
> because mostly you should be able to use multiple transfers with a
> regular STOP instead.
>
> [1] Slide 8 illustrates this:
> http://events17.linuxfoundation.org/sites/events/files/slides/ELCE17-WSang-I2C-Fault-Injector.pdf

Awesome!

I should follow "When to not use bus recovery" check-list.

Thanks.

--
Best Regards
Masahiro Yamada