Re: Re: [PATCH v2] i2c: cadence: try reset when master receive arbitration lost

From: sxauwsk@xxxxxxx
Date: Tue Nov 05 2019 - 03:47:33 EST


>Hi Shikai,
>
>On Tue, Feb 19, 2019 at 8:19 AM Shikai Wang <sxauwsk@xxxxxxx> wrote:
>>
>> When the adapter receive arbitration lost error interrupts,
>> cdns_i2c_master_xfer return to the caller directly instead of resetting
>> the adapter which resulted in the adapter being out of control.
>>
>> So when driver detect err_status such as arbitration lost,
>> then try to repair and fix it.
>>
>I am missing the issue that you are facing.
>You are having a multimaster scenario and getting arbitration lost.
>
>the current code would attempt a retry did that lead to any issues?
>
>Can you explain the issue that you are facing?

Of cource, ÂThe following describe my situation.

In my product, ÂTouchscreen connect to zynq-7000 XC7Z010 by i2c bus( Just connect only one i2c-device of touchscreen), Â
when user tap Touchscreen, Touchscreen interrupt send to CPU and notifyed i2c-driver to obtain location data by i2c-bus, Â

when Tap the screen frequently, Âsometimes CPU get interrupt from touchscreen and try to obtain data, Âthen detect arbitration lost,
Although i2c-driver try three times, Âit's useless.
ÂÂ
Actually i2c clock-line and data-line keep high, that mean i2c bus free.
Once this situation occur, i2c-control did't work anynay but cpu receive interrputs still.

I am sorry that I have't found a good solution for this issuse;