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

From: "[email-masked]" <[email-masked]>
Date: Tue, 5 Nov 2019 16:47:53 +0800

>Hi Shikai,
>
>On Tue, Feb 19, 2019 at 8:19 AM Shikai Wang <[email-masked]> 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;
_______________________________________________
linux-arm-kernel mailing list
[email-masked]
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel